At 08:06 17/1/01 -0600, Builds-R-Us wrote: >I've never been involved in an open source project, even at >the periphery as I've done so far. So these observations based >on other projects may not hold... but, for what it's worth...
yep - however most free software projects have a different social climeate than traditional products. More below. >Two generic observations about sucessful software projects: > >1. Truly great software is the result of one person's vision. Call > that person the visionary. Then, a team of developers (the missionaries) > work with the visionary to carry out the vision. Along the way the > missionaries and visionary will have discussions, differences of opinion, > and debate. But the final say is always in the hands of the visionary to > ensure the integrity and consistency of the vision. Of course, as time > passes, the visionary may update and improve the vision as a result > of these interactions with the missionaries. This generally works in traditional development models. The reason is that traditional dev models are linear, have dedicated personal, have time constraints and people are paid to do this. For some opensource software the benevolent dictator is the way to go - but rarely are they also head visionary - more often than not they are the person who judges what is practical/actes as spokesperson and encourages others to do certain things. However at Apache there is a slightly different climate - development while mostly linear is quite common to internal forks/branches to test out ideas. One of the other projects I was involved in had 5 forks over the period of 3 months to try out certain approaches etc. So in this way they are often very non-linear ;) As most committers are not paid to work on projects they also tend to scratch their own itches first. Even if they recognize feature X is useful they are not likely to spend time working on it unless they are interested in it. As the project matures this tends to go away and people work on what needs working on but until then ... ;) Unlike traditional dev models there is zero time constraints. If it takes 6 months or a year to develope does it matter ? In most cases no - as long as it is done the right way ;) There are heaps of other reasons why certain projects work and certain others don't. For example postgreSQL is a completely different dev model than say ... tomcat-dev. Consequently the main developers for postgresSQL have been there for 2 years or more and are quite open and conductive to public (with virtually no flaming). The average lifespan for volunteer developers on other projects (ie tomcat again) tends to be shorter ;) Both have advantages. Tomcat has advanced faster than many other products and is generally very solid design that wouldn't have been possible without the "bright flames burning faster" approach (at least for Catalina - haven't looked at the earlier version). >2. Everyone on the team learns as the project progresses, and the > software is radically re-written several times, if not completely > thrown out and a fresh start made using the team's experience. Consider this the first rewrite based on experience with ant1.x ;) >Having said that... maybe the visionary paradigm doesn't work in open source. But Ant >still needs to have some sort of vision of what it should be, and so far it seems >that the committee approach has not succeeded in achieving a unified vision. >Or if it has, I missed it... Well I may be in the minority but I believe then *general* vision is fairly solid among long time developers/lurkers. I posted a list of points that I think where generally in the mindsphere of most a while back. However I guess we have been fairly poor at formalizing, expressing and communicating the concepts/ideas/vision ;) For the newish ideas (workspaces/multi-project files) these will be discussed when need arises I guess ;) >So, having rambled on philosophically for way too long, what's my point??? > >Well, it appears we have been going through the 'period of strife'. Now >we have to decide whether the missionaries as a whole can define a >vision that they are all happy with, or whether a visionary has to >emerge to define the vision and lead the missionaries. I say we should be capable of evolving a vision. If not we will end up just rolling back the best bits of the "Ant2.0 thought experiment" into Ant1.x and we win anyways ;) I can't see us loosing in the long run. Ant2.x (at least if it positions itself well and satisfies the needs of others - such as embedding and pluggable parts) may even result in a larger, stronger community. I guess time will tell thou ;) Cheers, Pete *-----------------------------------------------------* | "Faced with the choice between changing one's mind, | | and proving that there is no need to do so - almost | | everyone gets busy on the proof." | | - John Kenneth Galbraith | *-----------------------------------------------------*
