Monday, October 03, 2005

Software development is like..

I've heard it proposed that software development projects are no more "repeatable" than is a movie product. And that, in fact, software projects are more like a movie production than the engineering efforts that CMM attempts to model.

This doesn't sit well with me, not because it's not a good point, but because it implies that this is the most accurate analogy for a software project. The irony is that the argument against "one size fits all" in CMM is the same argument that scuttles the movie production analogy. That is, many software projects are not like a movie production either.

I've come across another anology, this time on managing IT, by Chad Dickerson.

Good analogies, both. The danger here is that if one thinks about these analogies too deeply, one risks applying the wrong principles to the project.

In reality, software development is like.. software development. There are are two dimensions that perturb the principles of management of analogous efforts. First, the permutations of stakeholder interest, technology, market, talent, time, and money make every software project different than every other. Like people, software projects have genes--the permutations of which make every one unique.

Second, the patterns that are implicit in software projects combine many contradictory forces. Two examples are art and engineering. Practical necessities of software projects often require that we leave detailed design up to individual developers--making them craftsmen as much as engineers. In this mode some part of the individual is motivated by aesthetic imperative and results in emotional investment in their work. An engineering perspective does not typically respect these forces, and conflict ensues.

In the end, software projects are an expression of the combined styles of many individuals, that require the flexibility and ability to adapt to change that only thinking humans are capable of.

Update:

Since this post originally aired, I saw that Eric Evans posted something on his web site along the same line of thought. See Software is (not) like that. What he said.

0 Comments:

Post a Comment

<< Home