NEMUG NewsletterJanuary 2005, ArticlesDownload the full newsletter in PDF format Xtreme Programming/Agile ProgrammingThe 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:
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:
You achieve these by following the "Agile Rules":
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
Links
~ submitted by Aviel Klausner |
For more information about NEMUG, contact: Gardner Trask at gtrasknemug@gt3.com or call him at (978) 774–1338.
Last Updated: 12-July-05