Andy McKay

Jan 31, 2008

Product or Framework

I'm heading off to the Plone summit next week and a few people have sent me their opinion on what they'd like to see change. Personally it comes down to one simple thing for me.

Every time I hear Paul Everitt at a Plone conference, he asks a question "Is Plone a product or a framework?". A whole bunch of people raise their hand and it rarely ends up being a product. I've always wanted to jump and ask the questions this way: "Is Plone currently a product or a framework?" and "Should Plone be a product or framework in the future?".

For me this is a key question because it then provides a reference to allow decision making. Products focus on easy install, ease of use, documentation. Frameworks tend to focus providing a base for solutions to be built on top of. As consultant I've seen lots of the latter, such as, building large numbers of archetypes for collecting highly stuctured content, something that would be a doddle in say Django. I've seen them because people struggle and come to me for help.

There is a fundamental problem here in that technical computer consultants and specifically the ones providing Plone solutions sell their time. There is little recognition of the time spent setting up and installing Plone, that's so easy. So the money comes from selling the customisations. Making Plone more of a product, alters the source of customisation revenue. It doesn't mean there's no money, it just to be made in different sources such as - analysing a clients needs configuring Plone correctly, maintenance and the like. But the people most keen to make a change, maybe have the most to lose.

Once we've got a focus of which we want to pick, we can then provide a base for questions I would have like:

The web based customisation story for Plone has been a great success. And a great failure.

If it's a product how much web based customisation should be allowed?

If it's a framework that requires a set skill level to go near Plone, how much skill level is needed.

As an example (and this is heresay, I haven't done this in Plone 3) I believe making a portlet in Plone 3 is now a lot more involved. Which way does this move Plone? It's easy to manipulate and configure portlets through the web so score one for a product. It's a saner setup for a backend, so score one for the developers, but I think it's a minus one for a framework. Consultants have a much harder time making portlets (well at least till its figured out). So perhaps portlets have been a win for Plone and moving it to a product.

If we know where we want Plone to go we can start to frame technology decisions. And for the record for many years I've thought of Plone as framework that is getting closer and closer to being a product.

If you have opinions you want me to voice there like, moving it all to JavaScript, then let me know.

Update: changed the sentence "Making Plone more of a product, reduces the customisation money", to "Making Plone more of a product, alters the source of customisation revenue".