Home About Eric Topics SourceGear

2005-07-27 16:20:40

Thoughts on development methodologies


Part 1: The silly and contrived introduction

I actually do like living here in the Midwest, so I suppose I should stop poking fun at Champaign.  But I just can't help it.

It's all Newsweek's fault.  Back in November 1998 they ran a feature story giving their list of the ten "Hottest Tech Cities".  Champaign was on the list, alongside places like Boston, Austin and Seattle.   It was nice to get the attention, but this story was ludicrous.  Any honest technology person in Champaign can tell you that in no way does our fine city deserve to be on a list with such elite company.

But that doesn't mean the recognition was completely without merit.  We've certainly got more interesting high-tech people and stuff here than any other farming community in the Midwest:

This last bullet reminds me to check out Brian's blog and see what he's up to.  Aha!  He's actually not in Champaign at this moment, but rather, in Denver at Agile 2005 where he is one of the keynote speakers.

Which reminds me -- It's time for my annual peek into the world of development methodologies.

Part 2: Me and methodologies

I have never strictly followed any methodology, but I like to read about them, in part because I prefer not to criticize things of which I am ignorant, but also because I like to learn.  I'm leading a development team now, so it wouldn't kill me to expose my mind to some ideas from other people.  Besides, I already finished the latest Harry Potter book so I need something else to read.

Unfortunately, despite my natural interest in the topic of methodologies, I have a reputation around SourceGear as someone who hates process and structure:

Positive spin:  I prefer to think that I am simply more of a leader than a manager.  :-)

More seriously, I don't think my approach to development is all that terrible.  I'm not saying I'm the greatest project manager ever, but I actually do have a method to my madness.  People who use no process at all are accused of using the methodology called Code and Fix.  My approach just isn't that bad.

But when people ask me which methodology I use, I can't point to any one documented approach. 

Perhaps I should just create my own methodology?  All I need to do is write a good description of all the practices I tend to intuitively follow and give the result a catchy name like Scrum.  Then I can publish my book and recruit thousands of disciples to follow my particular doctrine of development.

But if I did this, I'm pretty sure I would end up creating yet another methodology which would fit squarely under the heading of Agile Software Development

Part 3: Agile Software Development

I wish that I too was at Agile 2005 this week.  The concept behind Agile Software Development is so very appealing.  It all started with a bunch of people who had each developed their own methodology.  Somehow they all realized that they had a lot in common, so they got together and identified their common ground.

#ifdef irrelevant_tangent

Why can't more people do this?  Like, for example, protestant churches?  Or even, dare I say it, the US Senate?  Good things happen when we focus on our common ground instead of on our differences.


This "common ground" called Agile is expressed in four basic values:

These values make a heck of a lot of sense to me, except of course for that bit about tools not being very important.  As someone who works for a developer tools vendor, I believe that developer tools are the answer to all of the world's problems, and I don't want people believing otherwise.  ;-)

Anyway, I don't see myself adopting a whole new methodology right now, but I'm still enjoying some of the material I have been reading:

I've read some of this stuff before, but it's been a while.  Maybe I'll learn something.

Or maybe I'll find that one of the existing methodologies happens to exactly describe what I already do.  :-)

Part 4: The obligatory crabby remark

One thing is already clear:  I'm pretty sure the Rational Unified Process (RUP) is just not for me.  Every time I investigate methodologies I run across RUP.  This time I even bought a book about it, but the following snippet from the preface scared me away before I even got started:

"This book is not the complete Rational Unified Process.  Rather, it is a small subset to introduce the RUP."

This "introduction" is over 300 pages long!  Sorry, but I can't get myself interested in anything that heavy.  I see some excellent principles when I scan those pages, but I am inclined to think that any process that large is inherently not very agile.  Like I said, I don't like to criticize things I don't understand, but in this case I'll have to make an exception.  :-)