Hi, back from holidays with an open mind and fresh ideas! While riding along the French canals it came to my mind, that eZ Components reached a major milestone and that it could be time to look back. Sorry, that I couldn't make it to the conference to discuss these points face to face.
As always I beg your correction and criticism. Around 2006 eZ Systems needed to update eZ Publish to PHP5. The conclusion was drawn that the best way would be to first extract and recreate independent components from the eZ Publish core. These components were meant to become the building blocks for a new eZ Publish. So a team of 10 developers and eZ employees, most of them full time, started to develop the old "core" components: * Cache * Configuration * ConsoleTools * Database * EventLog * Feed * ImageAnalysis * ImageConversion * Mail * PersistentObject * Template * Url * Workflow All of these components have prototypes in eZ Publish functionality and I do consider all of them to be great and usable. Now comes the historical turning point: In the last months, components were developed, which did not have prototypes in eZ Publish, namely Search, MvcTools, Tree and Document. The many problems I had with the Search component are a warning flag for me, that something is wrong with the development process. *The beta phase is too short* (for components without prototypes). Components are planned, coded and, after a very short beta phase of a few months, frozen in "backwards compatibility" mode. Although no public information exists, whether a component has already been used and tested in a real world application, no backwards incompatible fixes may be done to the components. But you can not plan all use cases. Many problems with design decisions are discovered only when a component is really used. The reason, why there are so few problems with the above "core" components is, that there were prototypes in eZ Publish and the experience of many years to learn from. It makes sense to have the strict process we have, if you can base yourself on a prototype and the experience of many years, projects and developers. But the development process is easy to fail, if you develop something new, without a prototype, without experience to learn from. Then it'd be better to have an evolutionary development process which allows to try and err. I think this is the reason, why I lost a lot of my former enthusiasm for eZ Components: For the first components, the development process matched. But now, as new things get developed, it doesn't fit anymore and should be adapted. Also think about the changes in the team: When there were still 10 people working on the components, many errors could be caught already in the design phase. Now, when there are only 4 people payed (part time) to look over requirements and design documents, more and more errors can pass into the final code. Best regards, Thomas Koch, http://www.koch.ro -- Components mailing list Components@lists.ez.no http://lists.ez.no/mailman/listinfo/components