This document discusses the future of Plone and improving the Plone developer experience. It notes that Plone 4 focused on modernizing the user experience and architecture. Plone 5 aims to modernize the developer experience by simplifying APIs, documentation, and processes. The document advocates for initiatives to attract and retain happy Plone developers through improved usability, performance, and community engagement.
1. Plone as a
Development Platform
By
[ a highly opinionated talk about the future of Plone from a Framework Team member, developer, project
manager, consultant, loud mouth, and general advocate of change aka ]
Elizabeth Leddy
2. WARNING
Although this presentation seems to be filled with factoids, it is actally filled
with lazily validated stats, graphs that are extrapolated far beyond
mathematical reason, and pirated imagery. It is highly likely that I have
misinterpreted historical results or became so blinded with anger about
certain things that I did not Google sufficiently or give good thoughts to
decent alternatives. Except any statements about Grok. I’m confident there.
More importantly, this is a very opinionated piece. Officially, much of this is
addressed by the Roadmap, which provides you with the important fluff you
need to sell Plone to your customers, clients, and neighborhood dentist. In
the theoretical future, the roadmap will direct “official” processes and
people will cheer and eat cake. For now: anarchy.
In the meanwhile, I can only assume that I will firmly disagree with whatever
comes out of this because I am an asshole by nature and go full steam ahead
with the contents of this presentation. There is no intention to ruffle feathers
or miscommunicate. I encourage all of YOU to get up and talk/blog/vlog
your vision for Plone, controvesy and all. Be loud, be proud, be Plone.
4. 4.[1,2,3] Feature Trend
‣ Modernizing the User Experience ‣ Modernizing The Architecture
4.1
‣ Commenting ‣ Performance++
‣ Theming (Diazo) ‣ Repackaging Party
‣ Search ‣ Keep up with Zope releases
‣
‣
Collections
Content type creation
4.2 ‣
‣
Standardizing APIs
HTML 5
4.3
(Dexterity ) ‣ Python 2.7
‣ Events
..... .....
5. New Processes
PLIPS Releases
45
Only YOU can make this
4.3*
smaller!
30 4.2
4.1
15
4.0
0
4.0 4.1 4.2 4.3 4.4* 0 100 200 300 400
Proposed Accepted Days from Last Release to Alpha
Merged Incomplete Days from Alpha to Release
* PLIP monster wants PLIPS
6. Ticket Cleanup Process
1132 Open Tickets
8 per core contributor
3.4 new tickets/day
s
Attainable Goal: 4 Tickets per Contributor
7. Breakdown of Bugs
(color coded by how irritated I
Feature Requests
376
am that they are open)
Bugs Ongoing
PLIPs 24
729 Future
25
230
4.x
603
Distribution of Tickets
(color coded by how much
attention they get)
Ticket Status
8. In January 2012, Add Ons
29 new add-ons 2012*
were registered
on Plone.org. 2011
That is almost
2010
one new add-on 0 125 250 375 500
per day. New Updated
15. ‣ Deco/Tiles
‣ Usability
meh dog says...
‣ Performance
‣1 content type to blah blah blah.
RULE THEM ALL! GLITTER+PONIES
= UNICORNS
=== Plone 5
2007
16. 2010?
Deco Light? 2011?
???
2012?
CMSUI?
The #1
framework of
Grok? post apocalyptic
times?
Whatever the release manager says it is?
2012: Facing Reality
17. In order to reach ‣ plone.org/roadmap
where we are going ‣ Short Term
Vectors of Influence for Plone 5 ‣ Improved calendaring and
Community collections
Realized
Path ‣ Improved content development
Excitement
Direction experience
(Roadmap)
Beer TextMedium Term
‣
Dedication
‣ CMS-UI & Deco Lite
Bitterness
Resistance to change
‣ WSGI & Ajax
Plone 4 ‣ CMF forms -> Browser Views
we must forgive
where we have been
Roadmap
18. Does the steep learning curve pay off? Is
this complexity still justified today?
I need a platform. Customers need a CMS.
You can't just start and say "If you want
to see the complexity of Plone,
you have to ask for it" when you don't
know the system good enough to plan.
Plone 3 Introduced Regression
19. Framework Core Values
‣ XML Configuration ‣ Code next to config
‣ Easy debugging ‣ Syntactic Sugar
‣ Extensibility/Pluggability ‣ The custom folder
‣ 100% test coverage ‣ Happy end users
‣ Best in class code ‣ Clear and simple APIs
‣ More documentation ‣ Better documentation
.....
Hard things easy ‣ Easy
.....
things easy
‣
21. Teaching
Python Web
‣ Task: Make a TODO list
‣ Audience: New to Python
meh dog says... ‣ 3 frameworks, 3 hours
per framework
‣ web2py, flask, Django
Interfaces? I’ll just use PHP then.
22. @route( /contact )
@render( contact.pt )
class Contact(View):
def getContactInfo(self):
return {phone= 999-999-9999 }
@route( /support-request )
def ProcessSupport(View):
# submit to 3rd party here
return redirect(url_for(ThankYou))
Simple Syntax
23. Using Recommended Practices:
‣ Getting the site root
‣ 6 files and 20 lines of code to add a
new stylesheet
‣ Touching so many files and modules:
impossible to move quickly without
referencing documentation
constantly
Hypoglycemia
26. Developer Driven
Development
‣ Think about the API first
‣ Obsess about developer
efficiency
‣ Use documented examples/
recipes to prove ease of use
‣ Contribute shortcuts from your
everyday process and share
them with coworkers and
Make documentation less community
important with intuitive code!
27. Plone 5 has the potential to make
Happy Developers!
28. ... makes hiring
A thriving community
of happy developers... easier
‣ Plone will never be hip: move on
‣ Dangerously high levels of
frustration in the blood
‣ Foster interest in long term
career achievement
‣ At least it s not Java
plone means getting hands dirty and
drinking away your sorrows
once you finish the day
supton, #plone, January 2012
29. ‣ Plone developers cost much more
than the competition because they
are highly skilled + scarce
‣ Ramp up is too time consuming ($$$)
‣ Clients have the right to a saturated
developer market should they move
on to a different company
‣ Developers have the right to feel
prepared to move on within PLONE
‣ Diversity in quality of developers
A large community
of happy developers...
... makes firing
easier
30. ✓ Internationalized
✓ Unit tests
✓ End-user documentation
✓ Internal documentation
✓ Existed and maintained for at
least 6 months
✓ Installs and uninstalls cleanly
✓ Code structure follows best
practice
✓ Usable by Spanky
Spanky Certified
31. Who does Plone work for?
"If you want a platform to be successful, you need
massive adoption, and that means you need
developers to develop for it. The best way to kill a
platform is to make it hard for developers to build on
it. Most of the time, this happens because platform
companies ... don't know that they have a platform
(they think it's an application)." Joel Spolsky
33. Plone Pain Top 10 Update
plone.api
Planned in
plone.api
Planned for
Plone 5
(ping esteele
to help)
34. Plone Pain
Dev docs in core,
trac removed.
Guidelines started
then stalled - help
requested!
Part of CMF
templates
rewrite, new
code validated
PLIP Requested:
ping esteele
35. KSS, inline editing
pulled out. Lots
more too do
Debug tools in
plone.api
planned
PLIP Requested:
ping esteele
2 new tutorials
made, return of
tutorial focus
36. ‣ Make Archetypes Optional
‣ Widget parity*
‣ Default Plone types in Dexterity*
‣ Continue to factor out unnecessary
packages
‣ KSS
‣ Archetypes
‣ Javascript date formatting*
‣ plone.api*
‣ Move all config settings to the registry*
*: Needs PLIP-lementors
Initiating release sequence...
Plone 5 TODOs Plone 5 released.
37. Summary
‣Plone 4 ‣Plone 5
Modernizing the Plone Modernizing the Plone
user experience developer experience
..... .....
39. Committing
Not Just for Developers
‣ Decide to commit to Plone the community. Too
many people sitting on the fence results just leaves
us with a busted fence.
‣ Commit your project or company, no matter how
small, to just 1 internal Plone culture improvement
proposal this week. Can t code? Even better.
40. Resolve to Initiate
‣ Policy: All employees sign up for Plone on day 1
‣ Paperwork: Contributor agreement, plone.org account
‣ Persist Plone culture (e.g. pre-install IRC)
‣ Training: teach new developers how and when
to file bugs and properly contribute fixes
‣ Mentorship: it s not just for finding the bathroom
41. Resolve to Travel
‣ Host a sprint. Ploners LOVE to travel. It s science.
‣ Send 1 [non-technical] person to a conference
‣ Level Up: Let them stay to sprint
‣ Bonus Round: Present a case study of your work
‣ Form an alliance (or two). Explain projects,
frustrations, share contacts. Meet their team in
person.
42. Resolve to Encourage
‣ Test new versions of Plone. Stage, don t deploy.
Upgrade and run your tests. Report back.
‣ Make a policy to stop forking! It s a short term fix
with long term problems. Enforce it.
‣ Set aside time for a company sponsored PLIP
43. Resolve to Sprint this Weekend!
‣Beginner ‣Advanced
Finish Plone Contributor Goodbye cpy!
Agreement process
..... .....
44. !MAGIC
Plone has the potential to make
happy developers, but only
you have the power to make
Plone
47. Get Educated
‣ Plone Roadmap
‣ Plone API Roadmap
‣ HOWTO: Getting Started Developing with Plone
‣ Tutorial: Hello World
‣ Tutorial: Basic TODO List
‣ HOWTO: Contributing to Plone Core