The terms project and product are used with continued confusion. Both open source and agile methods are particularly bad offenders, leading people astray. Adapted straight from the textbooks:
- A project is a human undertaking with the goal of creating an artifact. Its life-cycle is determined by a start date and an end date.
- A product is a human-made artifact for a market of customers with an open-ended llfe-cycle. It is born with no end date in sight.
Not always, but typically, a project is used to create a custom artifact, while a product is (by definition) made for a market, that is, many different customers.
Obviously then, the term open source project is confusing. True community open source is a collaborative undertaking and hence competitively non-differentiating. Thus, the output of an “open source project” is not an artifact for a customer (nor a product for a market). Rather, to use better terminology, an open source community develops an open source component. No project here.
Maybe, but only maybe, you can argue that a component release equals a finished project. Then, you view the process of component evolution as a sequence of projects. However, open source communities simply don’t work like that, so this is just stretching it beyond belief.
It is agile methods, where it gets really bad. Coming up next: How project vs. product confuses agile methods terminology.