|go ahead... be a heretic|
OpEd: Programming is not Team Sportsby sundialsvc4 (Abbot)
|on May 25, 2012 at 14:53 UTC||Need Help??|
There is always another Silver Bullet. Another guy or gal who writes a book to tell us how the reason why we experience problems in software development and deployment is because we’re doing it the Wrong Way. Lately, the popular analogs for The Right Way seem to come from team sports and video games (as those who sit upon couches envision them to be) ... Agile, Scrum, Quake.
The common thread in each of these, it seems to me, is that “we are being paid to Write Code, therefore let us Write Code constantly.” Let’s go from Something We Can Release to Something Else We Can Release every few hours. Let’s put something new quickly in front of users’ faces to see if they like it, and they will surely say O What A Good Boy Am I.
I’d like to offer the observation that, when we build houses and bridges and other Big Heavy Things, we don’t do these things. (Heck, even professional sports teams don’t actually do these things.) What do they do? They plan. They plan absolutely everything, and they do it well in advance. They present the customer with alternative designs on paper, and, before anyone is actually engaged to build anything at all, they can tell you that “We will need 1,381 feet of No. 14 electrical wire ... 768 #14 2-1/2" bolts with 1,000 pounds tensile strength; ... ” Then, having done construction projects so many times before, they can lay out a schedule with contingencies and keep it, and, when they have done so, the building stands.
Given that the software which we build might be several times more expensive than one of those buildings, maybe we should pay much more attention to how they’re going about their entire process.
I think that too many developers derisively dismiss The Waterfall Model as being somehow oldy-moldy and out of fashion. But perhaps we shouldn’t. If we actually did seriously put our efforts into mapping out in detail what we were about to do before we actually did it, “actually assembling the thing” would become a very routine procedure that mostly championed accuracy ... like following a set of blueprints, or pouring a concrete slab in the proper way. We would not be presenting the client with a partially constructed building when we asked him if he does or does not like that bedroom being at that particular location. I submit that we tend to think that our particular mental madness plays by different rules, and that we invent all kinds of self-justifying strategies and strategems solely to justify that notion. Maybe it ... doesn’t. Maybe the people who make their living constructing very big physical things have had the right idea all along.
That’s my 2¢ ... What do you think? What has your experience been, and why? Please be specific ...