Why can’t software development methodologists speak straight?

Author’s Note: Given that I admittedly don’t have enough experience with software development to adequately compare the practical merits of various software development models, I must note that this criticism relates to the terminology that is used in the field, rather than the actual methods used.

As a programming student, I must confess to sometimes being a bit short-sighted, and thinking of problems in terms of the code rather than the problem it’s meant to solve. As such, learning about software development methodology is a slightly difficult task for me, given that I’m inclined to learn by doing, and unless you’re actually on a software development project, rather than an educational-level programming assignment, it’s rather difficult to get an experience of what software development actually entails. That said, when I recently read an article making suggestions to IT staff for improvements to their curricula vitae, and reading a section on words of a masturbatory nature, I considered this for a moment, and thought, “Why do so many terms in software development methodology fit this description?”

To be fair, some of the older names for various software development methodologies seem reasonably sensible. The “waterfall” and “spiral” models might sound silly, but at least they capture some of the essence of the principles involved. Similarly, the “iterative” model actually sounds very reasonable – it does what it says on the tin, without resorting to buzzword-style name conventions. Unfortunately for those of us who prefer not sounding ridiculous when we’re talking about our prospective jobs, the methodologies with these names have become slightly unfashionable in recent years, and people have been attempting to replace them.

The proposed replacements seem to primarily derive from the agile development community. There’s a silly name if ever I heard one; when I think of the word “agile”, I think of cheetahs and house cats (although that might be because I quite like house cats). I don’t think of software development, where its practitioners spend more time sitting down than standing up. What’s agile about that? Are they practicing the quickest way to get out of their chair when they’re called for a meeting? There are many synonyms and near-synonyms for the word “fast” in the English language that they could have chosen instead of “agile”, many of which would be more appropriate for the situations that one is expected to experience when one is developing software.

Regrettably, the practitioners of agile software development have chosen another of the most inappropriate of these synonyms when discussing the rate at which work is completed. “Velocity” is the sort of term I associate with rockets, aeroplanes and fast cars, again not with software development. All I can think of when I hear the word “velocity” in association with software development is somebody strapping an agile development methodologist to the back of a rocket and manically screaming, “What velocity are you at now?!”

Enough of that, though – the terms “agile” and “velocity” are merely risible when it comes to software development, rather than masturbatory. The real sins come when we consider branches of agile development. There are two which come especially to mind: Scrum and Extreme Programming.

There’s a problem with the terminology even as soon as the name of Scrum is spoken. A scrum, as any followers of rugby will realise, is a way of restarting play after a minor infraction. Therefore, the name of this methodology is a sports metaphor. I think it’s obvious why a sports metaphor is not at all an appropriate name for anything in software development. If “agile” was inappropriate, “Scrum” enters the realms of the ridiculous and absurd.

But wait! It gets worse! One of the main roles in the Scrum methodology is the Scrum Master. Having both (unsuccessfully) played rugby in secondary school, and being a fan of professional rugby, this term sends me into apoplexy. What do they mean exactly? The scrum half? The hooker? The number 8? There is no such role as a scrum master in an actual game of rugby. Even as a back, I could see that the scrum was meant to move as a cohesive unit, and wasn’t driven forward by any particular player. It is my fervent belief that the vast majority of people who consider using the Scrum methodology at all are not rugby enthusiasts, and don’t see anything wrong with their clearly ridiculous terminology. Nobody should be allowed to call their methodology “Scrum” until they’ve demonstrated that they can face off against a pack of mad New Zealanders on a pitch. And all of this is before you get to the daily routine. Oh boy. There’s so much wrong with this that I could go on all day.

Instead of doing that, though, in mind of boring you all to death, I’ll move onto Extreme Programming. Again, the problems start right from the name. Extreme Programming could be the best methodology in the world, extracting untold gains in productivity, and I still wouldn’t use it because of the frankly childish and masturbatory name. Apart from extreme sports, the likes of which can be life-threatening, or extreme conditions of any sort, the only legitimate use of the word “extreme” is in an ironic sense, like “extreme ironing”. Programming, as a general rule, is not life-threatening; indeed, the most likely injuries from most people’s programming efforts are paper cuts and repetitive strain injury. Hardly the stuff that you’ll have a war story about, is it?

The few places where programming can lead to life-or-death circumstances seem to be primarily in the embedded sector, where people are programming controllers for industrial machines, or systems for aeroplanes and rockets, or other projects along this line. I therefore propose that we change the meaning of “Extreme Programming” only to refer to projects where there is actually a risk of death or serious injury, instead of having it as a masturbatory name for a way of developing business software, where the consequences of failure might be to mess up somebody’s day instead of sending them face first into a hill at several hundred miles per hour. I rest my case.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: