Founded by custom software development company Atomic Object in 2003 to promote and share best practices of XP and agile software development, the XP West Michigan user group is already starting to attract some nationally recognized speakers.
Industry leader Ron Jeffries recently visited the group to speak on the implications of delivering software early and often.
“One of the things I realized is that the core of agile software development is just shipping software a lot,” Jeffries explained. “When you ship run-tested software on a regular cycle, you learn more about the requirements you’ve been assigned, it’s easier to measure and predict progress, and you see a quicker return on investment.”
Jeffries began practicing the agile development process in 1996, and was one of the first to do so. He was one of the original authors of the “Manifesto of Agile Software Development” and was on-site coach for the first XP project at Chrysler in 1998.
Now an independent consultant, he is the author of several papers and articles on the subject, along with the books “Extreme Programming Installed” and “Extreme Programming Adventures in C#.”
“Most everyone has been on projects that came in late without some of the most important features,” he said. “Projects that came out not fit for general use. In my 30 years of programming, I’ve been on a number of projects like that.”
According to Jeffries, the traditional development process usually works as such: nail down the requirements, design the system, build the infrastructure, add in features and then finally ship.
Jeffries calls this the “waterfall” model of programming, due to the fact that no features are created until the fourth step, when everything is expected to just fall into place. Like a waterfall, this step usually happens at a much faster and violent pace than the rest of the process.
“The idea is that we spend all this time doing work that is fundamentally invisible,” he said. “All these things are fundamentally intangible, there is no value to the customer. It’s just one day we’ll be done getting everything set up and then we can start adding features. But, and I’m misquoting here: stuff happens.
“The design takes too long, the infrastructure takes too long, or you’re not as fast as you thought you’d be,” he said. “Or the worst part of the whole thing: the customer wants to change the requirements.”
Because of these types of situations, results of software development have historically been characterized as being delivered late, missing important features, over budget, low quality and not fit for purpose.
Similar to lean manufacturing concepts, XP in essence proposes the removal of non-value-added steps. Rather than spending six months planning features and building an infrastructure before actually creating a discernable product, XP practitioners begin working on features from day one.
Jeffries suggests that a one- or two-week cycle for software delivery is best. If a feature can be developed each week and delivered to the customer, that end user will have greater control over the requirements of the project.
Not only does this allow designers to find and eliminate any bugs before they are implemented into a larger product, it also allows the customer to determine if the features match what was originally envisioned.
Compare it to checking individual parts of an automobile for quality before installing them and delivering the car.
Additionally, designers will be able to better respond to changes in the original requirements by the customer during the development process. When this is done in the classic model, the process has to nearly start over.
Jeffries also explained how shipping early and often could solve another problem.
“In a lot of projects, there are features that are just plain stupid and worthless,” he explained. “They just waste time and money without adding any value. When a customer sees that, and is able to understand that, they’ll take it off.”
This can be accomplished by an itemization of features. When a customer sees that a package will do what he wants with less features — thus costing less — the customer will likely choose the option with less features.
XP programming also can deliver ROI faster than classic development.
As more features are shipped, those will eventually accumulate into a usable product before the project is complete. If the most important features are shipped first, a customer may see a ROI before a project is even as much as a third complete.
During the second half of the program, Jeffries was joined by another XP founding father, Chet Hendrickson, to demonstrate test-driven development by developing a bowling program using the Visual C#.NET programming language and the NUnit automated testing software tool.
“You write the simplest test in the simplest programming language and then the simplest code,” Jeffries said. “You test it and then keep doing that. Whenever you make a code, you test it again.
“When the test passes the green light goes on, and that can be very addicting. You might find yourself testing things you know work just to see that light come on.”
According to Jeffries, test-driven development has many advantages.
For the user, they know they always have software that works, even if it isn’t complete. For the programmer, it means they can write smaller pieces of code at a time and always have tests that prove it works. They also can safely take a break or handle an interruption without fear of not being able to get back to a deep concentration point.
The two combined to make a crowd-pleasing comedic duo, although understanding both programming and XP was required to understand many of the jokes.
“The reaction was extremely positive,” said Beverly Vesota, Atomic Object marketing director. “Some of the companies that are not doing XP now want to start, and some of the companies that outsource software development are saying they want to work with software companies using XP.”
Atomic Object has used XP since its inception in 2000, and in that time has worked with more than 20 customers on upwards of 100 projects and claims to never have had a project failure — a remarkable statistic when compared to industry standards.
“We wanted to increase the network to get more people interested and share practices and learn how to use XP more efficiently,” Atomic Object President Carl Erickson said of the group. “This can really help West Michigan companies to be more competitive.”
While the group lucked out with its first nationally recognized speaker — Jeffries is from Ann Arbor — Erickson said that plans are in the works to secure sponsorships to fund other high-profile speakers.
“It’s a great opportunity to have someone like Ron Jeffries come in,” he said. “It gives local programmers a chance to come and listen to, learn from and ask questions of somebody who they would normally have to spend thousands of dollars to go to a conference to hear.”
Other local practitioners of XP include Priority Health, X-Rite, and Burke E. Porter Machinery.