cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Fagerstrom <dani...@nada.kth.se>
Subject [RT] The next shiny thing?
Date Sun, 04 Dec 2005 14:15:37 GMT
The main problem with our community, IMO, is the lack of focus and 
persistance. We have so many great ideas, but as large parts of the 
community always are running towards the next shiny thing and have very 
little interest in polishing the design, contracts and implementations. 
We are left with an ever accumulating bunch of half baked ideas with 
prototype implementations that makes it so frustrating to develop Cocoon.

After having been around for a couple of years, I start to recognize our 
development cycle: First a new sexy idea is suggested, and we all jumps 
up and down shouting out our excitement. Then we might start to discuss 
design and implementation, and most people lose interest or maybe drop 
by and complains about that the discussion have become technical and 
that it bire them stiff. After that some people might even implement it. 
And as it often takes a lot of work to design and implement cool stuff 
it takes a while. And when it finally start to get somewhere, people are 
not even remotely interested anymore because there is something new and 
shiny to jump up and down and shout about.

IMO, what I described above is the main source of our problems today. 
Instead of focus on our core ideas and functionalities, and ensure that 
we have real high quality implementations of them, we just add still 
another prototype implementation of something new whithout bothering 
about how it integrates with the rest of what we have. And we as a 
community doesn't take repsonse in getting things smooth and coherent.

                                                --- o0o ---

So I'm sorry, I will not jump up and down and shout together with the 
rest of you this time. I will persist and continue with the work in 
trunk on what I think is important:

* finishing blocks
* make the m2 build system work and become the only one
* binary releases
* strengthen the contracts
* improve the quality
* split up Cocoon in smaller parts
* deprecate things that not are or not should be used anymore
* strive for coherence
* refactoring and rearchitecturing mercelesly
* 2.2 during Q1

This work will continue to be evolutionary and incremental. And when we 
have the block system and have cleaned the contracts and the messy 
implementation of the core, it will be easy and safe to experiment with 
new great ideas. And we are getting rather close to this point, we just 
need to finish what we have started. And for the messines we solve that 
with refactoring.

                                                --- o0o ---

Start a whiteboard prototype if you feel like it, but to me it seem 
quite risky to try to rewrite everything from scratch, although I have 
felt the urge myself countless time while struggling with the messy 
internals. But before you go ahead and rewrite everything from scratch, 
take some minutes and read why Joel Spolesky thinks that rewriting 
software from scratch is the:

  *single worst strategic mistake* that any software company can make

http://www.joelonsoftware.com/articles/fog0000000069.html.

I suggest that we who want a 2.2 during Q1 continue to work together on 
getting there.

                                                --- o0o ---

For the actual functionality that Sylvain proposed I think much of it is 
great and I have argued for things similar to some of them earlier. And 
they can be added in an incremental way.

But even if I would love to discuss the techical details. And how well 
pluggable controllers will fit into the blocks architecture. And how 
cool stuff one can do with pull parsing, especially if we use AXIOM from 
Axis2, there are more important things to discuss right now:

Leaving our core offering and rewriting everything from scratch means 
community and product suicide, don't do it.

/Daniel


Mime
View raw message