Tuesday, January 18, 2011

Stop adding Features - Why open source projects do not have to grow endlessly.

I was busy installing the latest bloated version of some application the other day when it suddenly occurred to me what was wrong with that picture.

Commercial applications need to grow endlessly because they are competing. They're the part of the business that the user has the most contact with, so they embody all the biological strategies for competition.  There's also the problem that software features get cloned by the competition. This is the nature of software in the user and enterprise space. If someone is doing it well, all the competitors need to converge toward the features of the dominant player because the users expect similar functionality.... and there are only so many ways of doing the same job.  Similar with biological competition for food niche's. Everyone ends up with similar strategies to exploit the food resource.

Anyway, the realisation quickly followed that Open Source projects do not have the same imperative(Usually).  True there are some Open Source projects that are trying to compete. Either because they are being driven by a commercial business or some other competitive urge has take over the developers... But the point is that its not an imperative.  An Open Source project can "finish". It can get a set of features that are fine for the job, debug them and get it all squared away... and then stop. Job done. (Ignore the maintenance issues and any residual bugs that come to light, platform porting, updating libraries etc) Conceptually they can stop adding features.

This almost never happens because of the chaotic nature of the development. Developers leave, get distracted by other projects, the platforms change, user expectations push the project in different directions etc.

But it could happen....

No comments:

Post a Comment