![]() |
|
An e-newsletter published by |
July/August 2005, Vol. 2 No. 7 |
| Welcome to Food for Thought™, an e-newsletter from Software Quality Consulting. I've created free subscriptions for my valued business contacts. If you find this newsletter informative, I encourage you to continue reading. Feel free to pass this newsletter along to colleagues by clicking this Forward Email link. If you’ve received this newsletter from a colleague and would like to subscribe, please click this Enter New Subscription link. If you don't wish to receive this newsletter, click the SafeUnSubscribe™ link at the bottom of this newsletter, and you won’t be bothered again. |
In This Months’ Topic,
I discuss the raging debate over Agile Methods…
|
|
Agile Methods - Beyond the Hype Agile Methods came to the forefront with the publication of the so-called Agile Manifesto [1] in 2001. Not since Dijkstra’s [2] classic paper “Go To Statement Considered Harmful” in 1968 where he stated “… the go to statement should be abolished from all ‘higher level’ languages…” has there been such an impassioned debate about software development methodology. There has been so much hoopla about the perceived benefits of “lightweight” vs. “heavyweight” development processes that camps have formed on both sides of this issue, each with their own zealots and their own books… I distinctly remember reading the “manifesto” in 2001. It was the first technical article I ever read that elicited a visceral reaction. It made me mad. My reaction was something like this:
The term “manifesto” evoked visions of the “Communist Manifesto” [3] written in 1848 by Karl Marx and Frederick Engels – the acknowledged beginning of the Communist Movement. Here is a short snippet from an introduction by G. S. Jones [3]: |
|
|
“… the Manifesto sketches a vision of reality that, at the start of a new millennium and against a backdrop of endless chatter about globalization and deregulation, looks as powerful and contemporary a picture of our own world as it might have appeared to those reading it in 1848.” Wow. I immediately started writing a letter to the editor of IEEE Computer. Something I had never done before. My frustration was evident in my letter:
When the December 2001 issue of IEEE Computer, I was surprised to see my letter was selected for publication. Good, I thought, someone needs to speak up for process! I received a few e-mails in response to the letter, all supporting my views. The Four Values Agile Methods are a collection of several methodologies that include:
While each is different, they all share common values as expressed by the “manifesto”. To refresh your memory, the essence of the “manifesto” are the four values:
In the subsequent “endless chatter” about Agile Methods, I unwittingly became the poster boy for the process camp. I was mentioned in an IEEE Computer article written by Barry Boehm and Tom DeMarco: [6]
And a sidebar to another IEEE Computer article written by Barry Boehm [5] stated that:
So much for my five minutes of fame. A short history lesson…
|
|
|
The advent of “structured methodologies” gradually evolved into Object-Oriented (OO) methods, mostly due to the work of the infamous Three Amigos (Grady Booch, Ivar Jacobson, and James Rumbaugh). So, to continue our brief history, OO begat UML which begat RUP (Rational Unified Process), which begat lots of money for Rational from books, Case Tools, and training. For a more complete view of the history of software development, visit Wikipedia. The timeline below is my attempt at putting the Methodology Wars in perspective… Software Development Methodology Timeline
As you can see, many methodologies have come and gone over the past three decades. Having lived through all of these, I’ve become a bit cynical when yet another methodology is purported to be the Silver Bullet because we should remember what Fred Brooks said – there is no Silver Bullet. [8] In looking back over the past three decades, I believe there have been cases where each methodology shown above has performed well and cases where each has failed miserably. This is true for every methodology from Agile Methods to CMM and everything in between. Why has there been so much hype? One of the things I believe the Agile zealots learned quickly was that there’s a lot of money to be made as a result of publishing books on methodologies. Today, amazon.com lists at least 27 books with “Agile Methods” in the title! Anyone remotely affiliated with an Agile project it seems has written a book on the virtues of Agile Methods. The C3 project at Chrysler was the first large project where many Agile principles and methods were applied collectively and intentionally. The small team working on C3 included Kent Beck, Ron Jeffries, Chet Hendrickson and others. What is not so well known is that the project was a failure. In spite of the fact that the project failed to deliver what the customer expected…
I am constantly amazed by the ability of those of us in the software industry to put positive spins on projects that would otherwise be viewed as dismal failures. Consumer advocates constantly remind us that:
This applies to telephone solicitation schemes as well as software development methodologies. My bottom line… |
|
|
Agile Methods can work given a specific set of circumstances. In my opinion, those circumstances are projects where:
Under these circumstances, I believe Agile Methods may work well. But so will other methods. And this is the source of my frustration with all of the hype about Agile Methods. Agile Methods can be effective but so can other methods. For projects that don’t meet the circumstances above, read what Roger Pressman observed:
And for projects that are high-risk or life-threatening, read what Mark Paulk said:
Those Agile Methods like XP that rely on verbal communications rather than written documents appeals to some people. The people this doesn’t appeal to are sustaining engineers. I pity the poor slobs who have to maintain applications developed using Agile Methods. With no design documentation or requirements to refer to, you’re left with only the code. I contend that even incomplete or outdated design documentation is better than no documentation. How many times have you seen cases where maintenance is so difficult because of a lack of design documentation that we decide it would be easier to start over than to figure out how the existing code works? Like the CMM, many Agile Methods include practices that can be applied regardless of methodology. For example, test first design is an XP practice. Test first design is definitely a good thing to do whether you are using an Agile Method or not. Deciding what methodology to use is a difficult task. Before committing to a specific method, become as informed as you can on both the advantages and disadvantages. Remember, there is no silver bullet. Developing complex software is a difficult and challenging task. There are many pitfalls along the way. Use what will work best for the situation you are in. Leverage the skills of the people that will be working on the project. And most of all, do what makes sense. That’s my story and I’m sticking to it… This issue was inspired by a spirited debate titled “Agile Methods Considered Harmful?” held at a monthly meeting of the Software Quality Group of New England between myself and my friend and colleague Scott Andersen. |
|
|
Pay it Forward If you find this newsletter of value, please consider the following:
More information about the Pay It Forward foundation… Some unfinished business… In the June newsletter on Project Retrospectives, I neglected to acknowledge my colleague and bike-riding friend, Mike McGonagle, who introduced me to Norman Kerth and the project retrospective process. My humble apologies Mike. Please note: There will be no issue in August – see you again in September. |
Every month in this space you’ll find additional information related to this month’s topic.
|
Every month, you’ll find news here about local and national events that are of interest to the software community …
|
Software Quality Consulting provides consulting, training, and auditing services tailored to meet the specific needs of clients. We help clients fine-tune their software development processes and improve the quality of their software products. The overall goal is to help clients achieve Predictable Software Development™ – so that organizations can consistently deliver quality software with promised features in the promised timeframe. To learn more about how we can help your organization, visit our web site or send us an email. |
I hope this newsletter has been informative and helpful. Your comments and feedback are most welcome. Send me your feedback… Thanks, |