Main Page

Get e-mail announcements

NEMUG Newsletters

NEMUG Services

Become a NEMUG Member

Directions to NEMUG Meetings

NEMUG Corporate Sponsors

NEMUG Executive Board

NEMUG Newsletter

January 2005, Articles

Download the full newsletter in PDF format


Xtreme Programming/Agile Programming

The Xtreme Programming/Agile Programming movement developed as a reaction to the software engineering trend towards more formal "processes" (such as the CMM Model), which tried to make programming more like other engineering disciplines, as a way to solve the so-called "software crisis". It turns out that we should not feel that guilty over the way most of us normally develop software, as the "Agile Manifesto" (www.agilemanifesto.org) states that in developing software we should instead try to emphasize:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

NEMUG invited two speakers to our November meeting to discuss the concepts of Agile or Extreme Programming.

Our guest speaker, Ron Morsicato of Agile Rules (www.agilerules.com) in Lexington MA, discussed the principles of agile programming. Rather than reducing programming to a well defined engineering "process", where entry-level engineers program to pre-defined specifications, agile emphasizes collaboration and use of common sense, similar to the difference between food prepared by cooks and food prepared by a chef.

The XP (extreme programming) principles were presented, covering planning (small releases, creating a "system metaphor", simple design, optimizing LAST, refactoring) and programming (pair programming, collective ownership, continuous integration, 40-hour week, test-driven development, on-site customer, coding standards).

Ron defined the holy grail of software development as "FITNESS for USE". Similar to the way Wal-Mart sees huge savings by using a "pull" supply chain, based on up-to-the-minute store-shelf demand, so should software be developed based on end-user needs, which may be continuously changing, rather than on a predesigned "Spec".

Ron presented the general guidelines of agile programming as:

  • Eliminate waste
  • Amplify learning
  • Decide as late as possible
  • Deliver as fast as possible
  • Empower the team
  • Build integrity in
  • See the whole

You achieve these by following the "Agile Rules":

  • Iterate
  • Communicate
  • Demonstrate

An interesting idea he presented was the "Burndown Chart" - you daily ask each programmer "How many hours of work do you have left to do?", and add these up. Although this measure would not always be decreasing, as one might naively expect, it gives a very good indication of how the project is doing.

Unfortunately, due to a "transportation malfunction", our second guest speaker, Damon Carr, CEO/CTO of Agile Factor (www.agilefactor.com) in New York, was not able to be present at our meeting, and instead he tried to give his presentation and demonstrate his system over the phone/Internet.

Damon discussed the 4 dimensions of software development - cost, time, scope, and quality, and what are the causes of the current "software crisis", where software projects are typically 100% over budget, 25% of them fail or are never completed, causing a loss of 40B$ a year.

The system he demonstrated combines agile programming with "design patterns", and it supports test driven software development, where you write tests first, as statement of intention, and then program to that, continuously integrating the software and running the tests with each iteration.

Admittedly, it was a bit hard to follow Damon's demonstration, which also had to be cut short due to the lateness of the hour. You may want to check out his web site, or read his book which he promises will come out in a few months.

Bibliography

  • Kent Beck, eXtreme Programming eXplained: Embrace Change
  • Ken Schwaber, Mike Beedle, Agile Software Development with Scrum
  • Mary and Tom Poppendieck, Lean Software Development: An Agile Toolkit

Links

~ submitted by Aviel Klausner

back to the top

For more information about NEMUG, contact: Gardner Trask at gtrasknemug@gt3.com or call him at (978) 774–1338.

Last Updated: 12-July-05