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

Reply via email to