Open space on Plone 2020

published Oct 31, 2014, last modified Nov 03, 2014

Open space on Plone 2020 at the Plone Conference 2014 in Bristol.

Led by Philip Bauer and Martin Aspeli.

Roadmap on Plone 2020 was started in Brasilia last year at the conference. Was mostly focused on underlying technology, maybe moving from Pyramid to Zope. Sparked a discussion. Finding common ground. Where do we want to be? Which Python version? Which audience? What are our key strategies to be better?

Take ten minutes, write one or two items on a sticky pad: why are we here? Why are we using Plone? Maybe because it pays the bills, maybe because it does something that no one else does.

[Maurits: 1. Professional and friendly community. 2. It is my job (that I love).]

Martin summarizes.

  • Absolute number one: community.
  • Learn from clever people.
  • Wisdom, shared experience.
  • Zope Component Architecture, technology.
  • Directly usable.
  • Open source managed by a foundation.
  • user friendly
  • jobs
  • out of the box features
  • Allows my customers to do more.
  • Great security track record.
  • I don't know yet, I am new to Plone.

So: if we are going to change Plone, can we please not mess the above up?

Critical mass: lots of people use Plone, so customers do not depend on only you: other companies can take over or assist, if needed. That is good.

Now look to the future. Write down on sticky notes: one or two things that you want to change in Plone in the next five years. Be specific, concrete.

[Maurits: less ways to do stuff, one canonical way, for example plone.api. Confusing for new (and old) developers that you can add something in a skin layer or a browser view or a utility or a tool. The move to storing every config option in the configuration registry is a good example of progress. Have a stripped down Plone with the old ways removed, though still addable as option if you include some extra packages and know what you are doing.]

Martin summarizes and we have a discussion. No one said: use Pyramid.

  • Python api, one canonical way. plone.api mitigates risk. Empower people that can build such an api to get things done, instead of reaching 80 percent of a finished product.
  • Javascript api, embrace javascript, REST, web service. We agree on that it is good to have a RESTful json api. Some don't care, but are not against. It will help enable new stuff.
  • Improve end user experience, better portlet handling, simple, intuitive, beautiful, flexible layout editor, more UX designers in community, fix default pages. Intranet, mockup, mosaic. Target specific audiences. Already Plone is usually only one of the systems that a client is using; someone may have Wordpress as front-end and Plone that does a few pages as well, we should be a good citizen and enable that.
  • Documentation and training, engage computing students, cookbook, single entry point knowledge base, standards to do certain things.
  • Deployment, be on every CPanel like platform, wsgi, mr.bob template engine, improve caching performance.
  • TTW theming and templating, unify theming solutions, theme editor for real use in production, TTW customization export.
  • Simplify code base structure, less methods when I list the methods of an object, legacy removed, only two ways of doing things ;-), reduce number of eggs, do not break if one part breaks.
  • Removing things, cpy/cpt code, remove cmf. It is possible to remove stuff, but that will break things, which means pain. How much pain can we accept? If we get the Python api correct, we will have less pain; it is a step in the journey. Irritating if for every small release a few things might break; better have more breakage in a major release, that is less problematic. Some don't do in-place migration of content with anymore, using transmogrifier. Add-on developers: use plone.api. DeprecationWarnings: can help, but usually they are annoying and ignored until stuff really breaks. We may be able to say to add-on developers: use plone.api and we can protect you from breakage, be stronger about saying what is safe. Be clear about what the correct way is.
  • Forms, merge z3c.form, or kill it.
  • Motivation, less bitching, empower leaders, bring Martin and Lawrence back in the community (twice), more fundraising, help Plone companies market Plone, success stories, bring more people from broader Python community and other communities (js, wordpress, you can put Diazo in front of wordpress too), be more inside the broader Python community.
  • Give Zope some love, roadmap communication.

Plone Open Garden in Sorrento next year may be a good time to have a strategic planning summit. The Plone Foundation may be able to help people get there, with travel stipends. Also: it is good to pay the foundation so they can continue to do that.

Let's continue discussion on mailing lists too. Python and JSON api seem clear winners to work on. Consensus on removing things, but there are risks. Continue the conversation on UX improvements.

This right here is the roadmap team, not some secret group. This is where Plone happens.

Can we put this somewhere in documentation? [Feel free to copy this somewhere and improve it; Maurits.] Communicate it, add a news item. Can we do that? Yes, Eric will sit down with Christina.

Can we somewhere let people vote on ideas? Not just developers here, but users everywhere, without needing to subscribe to a mailing list.