KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.62
System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64
User : www ( 80)
PHP Version : 8.3.8
Disable Function : NONE
Directory :  /domains/srakitin/OLD/newsletter/vol2/no7/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/srakitin/OLD/newsletter/vol2/no7/vol2no7.txt
Food for Thought: Agile Methods - Beyond the Hype 
An e-newsletter published by Software Quality Consulting, Inc.
July/August 2005, Vol. 2 No. 7

To view a web version of this newsletter, click on the following link:
http://www.swqual.com/newsletter/vol2/no7/vol2no7.html.

--------------------------------------------------------------------------------

Welcome to Food for Thought(TM), an e-newsletter from Software Quality 
Consulting (http://www.swqual.com/index.html?Intro). 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 th Forward Email link at the bottom
of this email. If you�ve received this newsletter from a colleague and would
like to subscribe, please click this Enter New Subscription link
(http://www.swqual.com/newsletter/Subscribe.htm). If you don't wish to receive
this newsletter, click the SafeUnSubscribe(TM) link at the bottom of this
newsletter, and you won�t be bothered again.

Your continued feedback on this newsletter is most welcome. Please send 
your comments and suggestions to [email protected].

--------------------------------------------------------------------------------

In This Months� Topic, I discuss the raging debate over Agile Methods...

Regular features to look for each month are:

- Monthly Morsels
  Hints, tips, techniques and reference info related to this month�s topic 

- Calendar
  Conferences, workshops, and meetings of interest to software engineers, 
  QA engineers and anyone interested in software development 

--------------------------------------------------------------------------------

*** 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:

  �What were these guys doing? We have been working so hard to improve the 
  perception of software engineering and instill discipline in developers 
  and managers. And then this... Are they nuts?

  And why would anyone use the word manifesto in an article on software 
  development?� 

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:

  �Please excuse my cynicism. But I�ve been waiting a long time for 
  software engineering to become a respected engineering discipline. While 
  progress has been made, it has been painfully slow and frequently 
  impeded by people within the software community.� [4] 

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:

- Extreme Programming (XP) 
- Crystal 
- Scrum 
- Dynamic Systems Development 
- Adaptive Software Development 
- Lean Software Development 

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: 

  �We are uncovering better ways of developing software by doing it and 
  helping others do it. Through this work we have come to value:

    - individuals and interactions over processes and tools, 
    - working software over comprehensive documentation, 
    - customer collaboration over contract negotiation, 
    - responding to change over following a plan. 

  That is, while there is value in the items on the right, we value the 
  items on the left more.� [1] 

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]

  �Those on the pro side�Jim Highsmith and others�argued that the current 
  approaches are broken and should be replaced. Those on the con 
  side�Steven Rakitin, for example�said that agile approaches are just 
  hacking by another name and that we shouldn�t abandon our disciplined 
  processes now that we�re finally getting them right.�

And a sidebar to another IEEE Computer article written by Barry Boehm [5] 
stated that:

  �Although their advocates have used each of these agile methods 
  successfully in practice, critics who prefer process-based methods 
  remain skeptical. In a letter [4] to Computer, Steven Rakitin indicates 
  that, in his experience, the items on the right are essential, while 
  those on the left serve only as easy excuses for hackers to keep on 
  irresponsibly throwing code together with no regard for engineering 
  discipline. He provides �hacker interpretations� that turn agile value 
  propositions such as �responding to change over following a plan� into 
  chaos generators. Rakitin�s hacker interpretation of �responding to 
  change over following a plan� is roughly �Great! Now I have a reason to 
  avoid planning and to just code up whatever comes next.� �

So much for my five minutes of fame.

A SHORT HISTORY LESSON...

The publication of Dijkstra�s article on go to statements [2] in 1968 led 
to what has come be known in software engineering lore as the Methodology 
Wars. (See [7]). People like Ed Coad, James Martin, Ed Yourdon, Tom 
DeMarco, Michael Jackson (no, not that Michael Jackson), and others 
developed and then began pushing their own software development 
�methodology�. Each of these gurus had their own cult following and 
detractors.

  They all promised, �if only those lazy, good-for-nothing programmers 
  would adopt their methodology, all of our problems would be solved�! 
  (Does any of this sound familiar?)

The Three Amigos  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
(http://en.wikipedia.org/wiki/Software_engineering).

The timeline below is my attempt at putting the Methodology Wars in 
perspective...

Software Development Methodology Timeline

[for timeline image, see the HTML version � 
http://www.swqual.com/newsletter/vol2/no7/vol2no7.html]

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
(http://c2.com/cgi/wiki?ChryslerComprehensiveCompensation) 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 (http://c2.com/cgi/wiki?CthreeProjectTerminated).

In spite of the fact that the project failed to deliver what the customer 
expected...

  �By the time C3 was cancelled, XP was well on its way to the phenomenon 
  that it is today... Beck, Jeffries, Hendrickson and others had book 
  contracts in hand.� [9]

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:

  If it sounds too good to be true, it probably is.

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:

  - software is being developed for use solely within the company 
  - a real, live �customer� (end user) is available to the project team 24x7 
  - the risk of failure is low 
  - the project team is highly motivated and led by an excellent leader 
  - long term maintenance of software is not a concern 

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:

  �I contend that software engineering principles always work. It�s never 
  inappropriate to stress solid problem solving, good design, and thorough 
  testing (not to mention the control of change, an emphasis on 
  quality,...). A specific software process might fail because it is 
  overkill, or the work products it requires are unnecessary or 
  burdensome, or a person or team becomes overly dogmatic in the 
  application of the process. But history is on the side of a solid 
  engineering approach.� [10]

And for projects that are high-risk or life-threatening, read what Mark 
Paulk said:

  �Should organizations use XP, as published, for life-critical or 
  high-reliability systems? Probably not. XP�s lack of design 
  documentation and de-emphasis on architecture are risky.� [11]

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: 

  Norm Kerth, a highly respected consultant, suffered a disabling brain 
  injury in an automobile accident. As a result, he cannot work and lives 
  on a limited income. You can help him by sending a donation. Checks can 
  be made payable to Norm Kerth Benefit Fund and sent to Norm Kerth 
  Benefit Fund c/o Process Impact, 11491 SE 119th Drive, Clackamas, OR 
  97015-8778. You can also visit Karl Weiger�s website (Process Impact
  http://www.processimpact.com/goodies.shtml)for more details about contributing
  to the fund. Thanks. 

More information about the Pay It Forward foundation...
(http://www.payitforwardfoundation.org/)

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.

--------------------------------------------------------------------------------

***Monthly Morsels***

Every month in this space you�ll find additional information related to 
this month�s topic.

- References:

  [1] Highsmith, J. and Cockburn, A., �Agile Software Development: The 
  Business of Innovation�, IEEE Computer, September 2001, p. 120-122

  [2] Dijkstra, E., �Go To Statement Considered Harmful�, Comm. ACM, Vol. 
  11, No. 3, March 1968, p. 147-148.

  [3] Marks, K. and Engels, F., The Communist Manifesto, Penguin Classics, 
  2002.

  [4] Rakitin, S., �Manifesto Elicits Cynicism�, Letters to the Editor, 
  IEEE Computer, December 2001, p. 4.

  [5] DeMarco, T. and Boehm, B., �The Agile Methods Fray�, IEEE Computer, 
  June 2002, p. 90-92.

  [6] Boehm, B., �Get Ready for Agile Methods, With Care�, IEEE Computer, 
  January 2002, p. 64-69.

  [7] Software Methodologies: The Battle of the Gurus, Info-tech Research 
  Group, London, Ontario, Canada, 2002

  [8] Brooks, F. P., "No Silver Bullet: Essence and Accidents of Software 
  Engineering," IEEE Computer, Vol. 20, No. 4 (April 1987) pp. 10-19.

  [9] Stephens, M. and Rosenberg, D., Extreme Programming Refactored: The 
  Case Against XP, Apress, 2003.

  [10] Pressman, R., �What A Tangled Web We Weave�, IEEE Software, Jan/Feb 
  2000, pp. 18-21.

  [11] Paulk, M., �Extreme Programming from a CMM Perspective�, IEEE 
  Software Nov/Dec 2001, p. 19-26. 
  
- Books:

  There is a plethora of books on Agile Methods. Just visit your favorite 
  on-line bookstore and search on Agile Methods. Here�s a sampling:

  Books on Agile Methods: 

  - Extreme Programming (XP)

    Beck, K., Extreme Programming Explained, Addison-Wesley, 2000. 

  - Crystal

    Cockburn, A., Crystal Clear : A Human-Powered Methodology for Small 
    Teams, Addison-Wesley, 2004. 

  - Scrum

    Schwaber, K. and Beedle, M., Agile Software Development with SCRUM, 
    Prentice-Hall, 2001 

  - Dynamic Systems Development

    Coleman and Verbruggen, A quality software process for rapid 
    application development, Software Quality Journal 7, p. 107-1222 
    (1998) 

  - Adaptive Software Development

    Highsmith, J., Adapive Software Development, Dorset House, 2000 

  - Lean Software Development

    Poppendick, T. and Poppendick, M., Lean Software Development: An Agile 
    Toolkit, Addison-Wesley Professional, 2003.

  Books critical of Agile Methods: 

  - Boehm, B. and Turner, R., Balancing Agility and Discipline: A Guide 
    for the Perplexed, Addison-Wesley, 2003 

  - Stephens, M. and Rosenberg , D., Extreme Programming Refactored: The 
    Case Against XP, Apress, 2003 

  - McBreen, P. Questioning Extreme Programming. Addison-Wesley, Boston. 
    2003. 

- On-line Resources: 

  - Unbiased information from Wikipedia on Agile Development Methods...
    (http://en.wikipedia.org/wiki/Agile_software_development#References)
  
  Chrysler Comprehensive Compensation (C3) Project Wiki Sites 
  
  - This site provides interesting commentary on the project...
    (http://c2.com/cgi/wiki?ChryslerComprehensiveCompensation)

  - And, after the project was terminated... 
    (http://c2.com/cgi/wiki?CthreeProjectTerminated)

  Sites supportive of Agile Methods: 
  
  - Agile Alliance (http://www.agilealliance.org/)

  - Extreme Programming (http://www.extremeprogramming.org/)
  
  Sites critical of Agile Methods: 
  
  - Software Reality (http://www.softwarereality.com/ExtremeProgramming.jsp)

--------------------------------------------------------------------------------

***Calendar***

Every month, you�ll find news here about local and national events that 
are of interest to the software community ...

- Software Quality Calendar

  There are many organizations that sponsor monthly meetings, workshops, 
  and conferences of interest to software professionals. Find out what�s 
  happening... (http://www.swqual.com/links/upcoming.html)

- Workshops Offered by Software Quality Consulting

  Software Quality Consulting offers workshops in many topics related to 
  software process improvement. Get more info... 
  (http://www.swqual.com/training/on_site.html)

--------------------------------------------------------------------------------

***About SQC***

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(TM) � 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 
(http://www.swqual.com/index.html?AboutSQC) or send us an email ([email protected]).

--------------------------------------------------------------------------------

I hope this newsletter has been informative and helpful. Your comments and 
feedback are most welcome. Send me your feedback... ([email protected])

Thanks,

Steve Rakitin
[email protected]

Food for Thought and Predictable Software Development are trademarks of Software 
Quality Consulting, Inc. 

Copyright � 2005. Software Quality Consulting, Inc. All rights reserved. Graphic 
design by Sage Studio ([email protected]) 

Anon7 - 2021