---------------------------------------------------------------------------
This is a shared scratch pad/note taking area created for the Plone planning & organising sprint held at Amterdam, The Netherlands from july 30th to august 1st.
These are not finished guidelines, proposals or whatever definitive things, but live minutes to help with discussing various planning and organising issues, problems, ideas and tasks for the Plone Community.
Present at the sprint location in Amsterdam:
- Alexander Loechel
- Christine Baumgartner
- Fred van Dijk
- Paul Roeland
- Sven Strack
- Maurits van Rees
Additional Remote Sprinters that was present at some time:
- Philip Bauer
- Kim Nugyen
- Stefania Trabucchi
- Dylan Jay
---------------------------------------------------------------------------------------------------------
P&O Sprint saturday july 31st. Make a more extensive list of non programming tasks
that we could do this weekend, also so that remote sprinters can pick smaller tasks. Loosely
followed from the topics written on the sprint page at coactivate.
Non developer/programming tasks that could be done
planning, what could we do today/saturday/tomorrow?
analyse add'on story- plone.org
- doormat cleanup on plone.org
- evaluate plone.org related sites listing
downloads section is confusing.There are open tickets. In geeneral make it easier for people to find stuff.
Security hotfix pages are confusingsorted alphabeticallyanalyse further improvements
- documentation on badge-system, how to assign them etc.
- lifelong badges, alumni badges
- listing of the community people with their badges? Not there yet
- getting the stats working? What is needed to make it work?
- number of pull requests
- number of open issues?
- stackoverflow rewards
- design fun other metrics to show community activity?
- plone.com and plone.org miss a top bar redirecting to the other sites (docs, com, org. community)
- docs.plone.org
- does somebody has a clear idea on elasticsearch search for sphinx to improve search?
- writethedocs has hosted support from elastic itself, but no public info
- In general website presence
- Identify Pages on Plone.org and Plone.com and other Plone Portals that need some love
- make a list of providers/sites where you can get a hosted plone
- free & paid hosters (heroku, flyingcircus
- plone.net -> old.plone.org -> plone.com
- steve mcmahon or Martior.
- plone.com
- Should/ do we want a geographical map for the provider listing?
- Should providers have tags for vertical markets or other classifications that fit into isotope?
- make the listing more useful for potential customers without forcing providers into too narrow classification
- links from provider detail page to success story detail page?
- training.plone.org
- front page? Need nice descriptions? <- Philip
- content on docs.plone.org vs detailed training descriptions on training.plone.org. ...
-------------------------------
P&O sprint friday morning 30-07, listing of all teams
Plone teams (both 'formal' and informal):
- Plone Foundation Board of Directors
- Plone Foundation Membership Committee
- Framework Team
- Security Team
- AI-Team
- Documentation
- Training Team
- Communication
- Release Team (releases the software packages, see tasks)
- Build-Team
- Testing-Team
- Usabilty-Team
- Accessibilty-Team
- Plone.org Team
- Plone.com Team
- i18n-Team
- Ploneconf Team
- Launch Team (New Plone 5 release)
- Interest Groups
- Plone Suites
- PloneIntranet (Quaive)
- CastleCMS
- elevateIT
- VNC
- Bika LIMS lab info mgmt system
Plone Domains in use
- plone.org castaway
- plone.com
- docs.plone.org
- training.plone.org
- jenkins.plone.org
- community.plone.org
- dist.plone.org
- ploneconf.org
- plonesymp.org
- planet.plone.org
- dev.plone.org
- archive.plone.org
Tasks that are unassigned or where the process is unclear
* response and coordination of bug reports (non-criticals, non-security relevant) for all Plone packages.
* managing incoming pull requests (non-PLIPables)
Documentation gaps:
- plone.org 'badges' process: how to give them out, who gives them out, do team badges get removed if people are no longer on a team or do they get 'alumni' status?
List of persona's/ target groups so we are using the same (temporary) definitions during the discussions/brainstorming:
----------------------------------------------------------------------------------------
P&O Sprint friday 30th july afternoon. listing of target groups/umfeld for which the plone community creates software/information/value.
We found out that we sometimes mean different things under the same name, for example what an integrator or a solutions provider is. So we created this list to avoid misunderstandings during the sprint.
Decision Maker
- I need an Information system to solve a problem. Can I use Plone for That?
-> features
-> description of how Plone is developped and can be used
A deicision maker could/might turn into:
----------------------
Plone end user:
- use a provided Plone system
Plone Administrator
- Webmaster, have through the web manage access
- Configure Add'ons
- help end users with using Plone
Plone integrator: someone who knows how to:
- Administrator
- install Plone
- Configure/webmaster plone
- Add some add'ons and use them
Plone themer:
- customise Plone Look and Feel
- knows a bit about the development process
Plone developer
- integrator +
- Develop plone-add'ons, do custom code modification
- Work on Plone Core
Plone solution provider:
- Sell integrator and/or developer and/or theming services to other internal or external customers.
-------------------------------------------------------------------------------
Friday afternoon july 30th:
Are these persona's / target groups happy at the moment or not and why? We do this to identify things that are missing for these persona's?
-------------
Try to write down a processes to get a feeling for them.
Release Process (bugfix release 5.0.X)
- http://docs.plone.org/develop/coredev/docs/release.html
- release manager gets feeling there are enough fixes in the core packages to do a release
- look at the coredev sources.cfg and for every package that's in there, make an official release (< release team)
- tag, test
- release
- upload to pypi
- make a pending release set on dist.plone.org (< release manager)
- community members test the pending release and provide feedback
- community members suggest more packages that need releasing, add them to sources.cfg, go back:
- move pending release to official production soft-release (release manager)
- Trigger installer/build team to build a new release (< build team)
- wait for official installers being ready, upload them
- Update version support information and hotfix pages (< security team
- Create announcement for new release and update links to the latest release (< communication)
What's not in the current proces:
- check if the documentation is still up to date
- Check if the robot-screenshots break (identifies UI changes)
- New features should be documented
semver versioning. bugfix releases should not contain any functionality changes.
minor release could contain functional changes/additions
---------
Release Process (Minor Release) 5.1)
What should be added compared to the bugfix release
- new features should be sanctionned and trigger by the framework team for a set of new features
- The documentation team has to review documentation for added functionality
- push out new version of the docs (new branch)
- The communication has to be involved to create higher level release info, press releases, social media messages
Try to come up with mechanisms to sync these involvements? Can the documentation stop a PLIP if the docs are missing? can the release manager release a minor version if the press release is not ready?
Major releases: (Plone 6)
- Have more frequent releases (not 3-4 year of waiting) so not everything is changed in one big major release -> sticking to Semantic Versioning makes this mandatory
- If we do major releases, create a project(team) for this release and have a member of each normal team in this project team to coordinate the release
---------
On saturday we found out these proceses are in some form written down in release notes in the github repository of the buildout.coredev account at https://github.com/plone/buildout.coredev/blob/5.1/docs/release.rst , but this much more an extensive technical checklist and some of the interactions from/to other teams are missing. (which could be a cause of some of the quality control issues we have).
The Framework Team's PLIP process is written down quite extensive on Plone.org, (link needed here, it was shown), but parts of it seem not be be followed anymore.
------------------------------------------------------------------------------------------------
Written by a remote contributor friday/saturday july 30/31st. . Is this a 'should be' process, or an 'as is' process? Or a mix?
Roadmap process
- never written down.
- seems to involve having a confernce. having a discussion. Listing out what everyone has on their minds as features/major changes they would like to see or neccessary based on their own ideas.
One way it could work. Based on idea that we can be all things to everyone eventually but there is a limited amount of resources and some activities will help a community achieve its goals quicker than others.
1. Pick a vision of the community in 2020. How popular. specific numbers for each of the defined user types. Not what Plone he product will look like but what the community will look like.
2. Determine which users types need to be targeted first to achieve this goal. This is the most strategic part. For example, should integrators be the most important because they will choose the technology and end users often don't get a say? Should core developers be put first, since without them development will stop and everyone else will suffer?
3. Take the list of features/ideas/changes, For each feature determine which user type is affected and how they are affected using these categories.
- [wow] Something this user might switch to plone for. A USP. Something that demos well or makes a good headline. There won't be many of these.
- [doh] Something competitors have for that user type, that we don't have and its a deal breaker.
- [tick] Features that aren't used so otten but are normally on lists of things when decision makers and evaluating products and could negatively affect the decision to buy
- [smooth] features that are harder to describe or sell but make it easier to use. Things users can only appreciate once they are a user but will help in them recommending the product to others. Reduces support queries
- [power] features that you have to be a deep power user appreciate but can help those users enormously. There is normally a harder existing way to achieve this.
- [scale] features that increase performace or help with problems encountered when you run a very big site, or lots of sites.
4. Determine a priority of feature categories to achieve your goals. If community growth is the goal then it should probably be in the order above.
5. Sort the lst of features. Promote and publizes the priority order in the community. Help use that priority order to determine which sprints to make strategic.
6. Brainstorm missing features that fall into those categories.
At the end of this you will have a proper roadmap listed in priority order. Which is not to say thats how it will happen in reality, but at least everyone will know what the joint goal is and what the strategy is to get there.
----------------------------------------------------------------
Plone community processes continued discussion saturday morning:
- Continue with the process descriptions of the community
- only release process, or also security processes, community processes
- Flesh out the major release process more
- How are we going to publish land this weekends sprint result up for further discussion in the community?
- release process
- we identified more teams that should be involved?
- discuss solutions to fix quality issues
- (plip cannot be approved before there's a documentation scaffold)
- teams vs. adhoc teams vs. projects
- plone.com minus design people should have been merged into communication team by now
- communication team is responsiable for plone.com
- merging of teams?
- accessibility with usability (do they really overlap? usability is often not about fine adjustments to exisitng features, but rather choose between 2-3 very different features requests to achieve the similar user goals. It's deciding how plone works. UX is not the default theme, or picking icons, or making something work with a screen reader).
- plone.org team will be resurrected to finish functionality and implement results of long discussions
- ask testing & release team if they consider to merge
- 'launch' team shouldn't be a team but a project-team that oversees the major release process
- project-team - task force / permanent-team / team- need to find some terminology for this.
- relabel AI-team -> admin team? (Artificial Intelligence)
- Are there tasks that are missing, not done but don't belong to any team?
- vetting of incoming reports of users. Move issues to the correct repository?
trac should become read only but also invisible for most users -> history team!- distill 600 valid tickes from trac?
- ask admin team to give a trac copy to someone to extract these tickets
- Why are we not eating our own dog food and have a Plone dms space for storing sprint discussion results and other community produced documents?
- Not 'official' curated written documentation guidelines, but all the intermediary documents that are still interesting for posterity & process
- Create a sprint content type to stop the 'create a sprint on coactivate' thing.
Generation of new features process
- PLIPs are toward the end of this process. Where does it start?
- Maybe it should be documented
---------------------------------------
P&O Sprint friday morning 30th july. After creating the list of teams, what are the tasks that we currently know of that these teams are doing?
What is every team doing officially and unoffially?
Difficulties here:
-> What were they doing, what are they doing, what should they doing, what do we think they are doing?
-> We should validate this list in some way.
Plone Board:
- Brand
- Budget
- Conference selection
- Identifying Strategic sprints
- Intellectual property of the code / licensing
- Leading Marketing effort
- Plone Foundation Organisation
- Sponsorship for the central activities
- Liaison to Framework, Marketing and Security Teams
Membership committee:
* Evaluate new member applications
* Recommends membership to the board
Framework Team:
* Evaluate and vote on PLIP's (PLone Improvement Proposals).
* Coach PLIP proposers to improve PLIP documents before they are accepted.
* Delegate proposer to other teams like UI/UX or Documentation.
* Review PLIPs with heavy impact on Plone
* Decide when to include a PLIP (Major, Minor, Bugix) - stick to semantic versioning as good as possible.
* Technically Merge the PLIP branch into the code repository
* PLIP process documented here: http://docs.plone.org/develop/coredev/docs/plips.html
* Discuss incoming Pull Requests if they need to go through PLIP process or not.
* push release manager to do releases, coordinate releases with PLIP merges.
* coordinate with release manager to cut new branches for Plones next minor/major releases (this is the most complex task and needs coordination with testing team and documentation team, the exact process of this is not defined).
* helps release manager with new-features list on major releases
Training Team:
* Developing training material
* Organising the PloneConf Training days
Communication Team aka Marketing Team:
* Manage Plone social media accounts
* Write Press releases
* Create Physical Marketing Material (Tshirts, flyers, posters, booklets )
* Write Plone.com content
Documentation Team:
* Manage docs.plone.org technical setup
* Managing the release of Documentation Versions
* Writing guidelines on how the documentation should be written
* Documentation Quality Control
* Advise on Documentation Present
Installer Team:
* Create the universal Installers for Plone
* Maintain Docker/Vagrant setups for Plone
* Ansible playbooks?
Testing Team:
* manage the testing software servers (Jenkins Server),
* Give guidelines on what testing software should be used, best practices
Release Team:
* Release and push all the software packages on pypi that comprise Plone the Product
* Tags on github for each repository of the plone core packages
* Managing the coredev buildouts
* Coordinate with or assume the duties of the Launch Team?
Security Team:
* Issue patches for security issue in Plone
* Evaluate incoming Security issues/ Bug reports
* Do code evaulation on Plone Core and 'selected' add'ons
-> (which add'ons are 'selected?)
Admin and Infrastructure (AI)-Team:
* Manage Plone Infrastructure, the servers on which the official sites run
* the mailinglists.
* RC-Channels.
* community.plone.org software install & updates
I18n Team:
* manage plone.app.locales
* manage Transifex account (?)
Usability Team (formar aka UX team):
* Design and decide on end user experience of Plone the product
-> Both Visual and Textual
-> Some overlap with accessibility Team
* Audit the Official Plone theme (Barceloneta) for responsiveness, mobile, browser Support
djay: deciding end user experience effectively means deciding on features and its not clear how that works in practice. Plips are done by those that care. How can the UX team tell people what to do? More thought needs to be put into roadmap, features and how stuff really gets decided in plone to come up with something more pragmatic.
Accessibility Team:
* Audit Plone for accessibility Issues
* Maintain a resource list on Accessibilty documentation & best practices
Plone.org Team:
did:
* design the new plone.org visual theme and features
does:
* Develop functionality for the plone.org website
* Writes some of the 'framework' content that doesn't change
* structuring of the content
-> Most of the content should be community generated
Partly efforts are ad-hoc. / Overlap with documentation team
Plone.com Team:
* Was an adhoc team to create the new plone.com website.
* Mostly merged with the Marketing Team
* Develop functionality for the plone.com website
Launch Team: (adhoc, not really a team, trying to bundle other teams)
* Coordinate docs, training, marketing, and release of software
Ploneconf "Team"
*
=====================
Brainstorm Stuff:
Teams we should have:
* Onboarding team
* history-team
* Process troll team (we are!!!)
--------------
Who is managing?
* The Slack channel? (Kim, Jean Jordaan)
* Planet.plone.org? (that's clear: it's a github repository, just open a pull request to have your blog added)
* paragon (once we have the new add-on thing going, it can go to the big /dev/null in the sky)
* ploneconf.org and subdomains (AI team)
* plonesymp.org and subdomains (AI team?)
* YouTube Plone channel?
-----------
Saturday afternoon, discussion on the add'ons story (aka paragon, aka PSC replacement)
How to find add'on on plone.org
* only link is in doormat on the start page (https://pypi.python.org/pypi?:action=browse&c=589)
* the big blue 'add-ons' text below the hero banner isn't clickable ...
The link in the doormat links to pypi, but the pypi trove classifiers cannot discriminate between core plone packages, buildout or framework/testing packages and 'real' user addable add'ons.
We might need an extra trove classifier for 'genuine' Plone product add'ons.
then you can search for :
Framework :: Plone :: AddOn
&& (union)
Framework :: Plone :: 5.0
Or we could use an existing general trove classifier like: "Environment :: Plugins" . All classifiers: https://pypi.python.org/pypi?%3Aaction=list_classifiers
Other useful trove classifiers:
Development Status :: 5 - Production/Stable
We have to ask all plugin releasers to add the Plugins classifier to their pypi packages.
* You have to put it in the setup.py
* It's possible for owners to add classifiers on already released packages as well.
* Add the classifier to bobtemplates
Ask for warehouse to be able to AND trove classifiers. Warehouse already looks much nicer.
Support curated lists? Can we add hand picked ad'ons on top of the pypi trove classified full list?
ideas behind orginal paragon:
- opionated. not have a public voting on popularity
- not be exhaustive, max 50-60
- to specifically not include low level developer add'ons.
- add tags for classification
- entry barrier: README, some documentation
- bonus points for including screenshots and other meta info when submitting an add'on
Target groups for paragon info:
* Newbie Plone administrators/integrators that want to test/add some add'ons to their Plone site for the first time. This should be as seamless as possible.
* Long time Plone users that come back to Plone in a new version and are looking for 'new' Add'ons to extend their site.
KISS principle? Start with a normal Plone page where we list the add'ons? Already is there but doesn't work, cannot present information like Plone versions. and tags/categories.
------------------------------------------------------
We probably want curated tags. Have some selected 'categories' as tags.
Add minor single dot versions. 4.3, 5.0, 5.1
name of the package
nice description
* Should descriptions be pulled from the pypi information or be hand crafted/separate and editable. <> Then you can ask a copywriter to improve the description.
* Pull other info from pypi like docs link etc. Alexander will look into this
----------
Create a page that can dynamically pulls in a list of add'on packages from pypi and put it in a datatable of some kind with pagination and selectable classifiers.
djay: alternative is using automated phone home system to get stats on what is used in production and what is compatible with which plone version. Helps add tags to plugins on plone.org on which is plone 5 compatible.
Another alternative would be phone home system in travis builds to record when a plugin passes for plone version X and display that as a tag on plone.org.
- idea is to not rely so much on individual
-----------------------------------------------------------------------------------------
P&O Sprint saturday afternoon july 31st.
Discussion of the plone.org download and hotfix pages. (see task list at the top of this doc)
Plone.org downloads page & download directions on the homepage
homepage
* 'Older releases' directly throws you off the Plone site to launchpad. It should link to a subpage (probably downloads page) where we have an 'older releases' section where we explain why you might need to download Plone instead of the preferred Plone 5.
* The download page has two similar Call to Action buttons for Both Plone 5 and Plone 4. We want prospects to download Plone 5!. We should move the 4.3 button down the page to a separate section where we explain why people would want to try out Plone 4.3 (Because their organisation still uses Plone 4.3 sites and they want to experiment.
Below the Plone 5 button we can put a line with a link to the 4.3 section.
* Link to the plone-announce mailinglist. Can we also add a @plone-announce twitter account where officeal release and security announcements are made?
For end/first time users it might be confusing and scare them to have big hotfix banners on the download page where they haven't even installed the product yet. And we could make these banners dynamix because we know when a hotfix is needed for which release. -> Alexander will look at this, Installer team will discuss releasing updated installers when bugfixes come in so latest 'stable' and 'oldstable' have all relevant hotfixes included.
Another idea: it's not that hard to add hotfix releases to the universal installer, then we don't need these warning on the most recents (supported) Universal installer downloads at all. -> see one paragraph up
If you think of three Plone target groups/persona's like
* newbies, want to try out plone
* beginning/intermediate user, is there an update for my system
* expert user, I install Plone form source.
And then look at the downloads/hotfix pages, sometimes one of these persona's is undervalued/not catered for. Many pages have little newbie info or guidance, and are overly complex.