Heavy or light: it’s all relative

On the XP mailing list a discussion has been going on recently on how a student at a presentation commented that XP seemed to be fairly heavy. Now, I know that “heavy” and “light” are rather passé terms for describing methodologies these days, but you know, the student was right – for a certain point of view. In the immortal words of Ben Kenobi, “many of the truths that we cling to depend on our point of view.”

In contrast to the “code-and-fix” approach that students normally experience, XP is a heavyweight process. I mean, you spend nearly a third of your time not writing code, and at least half of the time you do spend writing code is actually writing tests. And you have to stop writing that code over and over to run those tests. And you need to stop and explain what you’re writing to somebody sitting next to you all the time. And you probably don’t go more than a couple of days at most without getting your business rep to come over and have a look at what you’ve done. Seesh, how is anyone meant to get any work done with all this chatter?

Compare this to a code-and-fix approach, and it’s very heavy. Interestingly enough, it’s also heavy for someone used to a BDUF approach, at the junior coder level.

BDUF: You, the junior coder, gets tossed a spec. You go away for a couple of weeks of solid coding. You toss the code over the wall to the testers and get another spec. Defect reports come back, you fix them, toss the code over the wall again. Essentially, you spend nearly all the time coding. You don’t talk to the customer (the analyst does that), you don’t talk to the analyst (the senior programmer does that), you don’t talk to the senior programmer (they give you specs), you don’t talk to the testers (you give them code, they give you defects). You just code. All the weight in a heavyweight process is higher up the chain (to the extent that at the top, with the architect, they are so weighted down that they don’t code anymore).

The weight in an Agile process is fairly evenly distributed. This means that parts of the chain carry more weight than before, even though the chain as a whole carries less.

(This also highlights the difference between efficient and effective. The BDUF coder is being very efficient)

Advertisements

Author: Robert Watkins

My name is Robert Watkins. I am a software developer and have been for over 18 years now. I currently work for people, but my opinions here are in no way endorsed by them (which is cool; their opinions aren’t endorsed by me either). My main professional interests are in Java development, using Agile methods, with a historical focus on building web based applications. I’m also a Mac-fan and love my iPhone, which I’m currently learning how to code for. I live and work in Brisbane, Australia, but I grew up in the Northern Territory, and still find Brisbane too cold (after 16 years here). I’m married, with two children and one cat. My politics are socialist in tendency, my religious affiliation is atheist (aka “none of the above”), my attitude is condescending and my moral standing is lying down.

3 thoughts on “Heavy or light: it’s all relative”

  1. Amen to that.

    I am drowning in a sea of analysis paralysis.

    There must be some point in an organisations life, like an anti-epiphany, where the real goals get lost, and people just get busier for reasons that you can’t identify. Maybe it applies to projects of certain sizes/styles.

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