It may not be as hair raising as bungy jumping but an Auckland firm has taken the plunge with a new software development technique called eXtreme programming (XP).
Keith Nicholas, software development team leader at Compac Sorting Equipment, which makes fruit sorting machinery, introduced the methodology to his company.
Compac has seven programmers developing the control software the eXtreme way - a process Nicholas describes as lightweight and intuitive. The approach is gaining momentum in the UK where it is used by insurance group Royal & Sun Alliance and is taught at various universities, but has yet to make much impact in the US.
Created five years ago by US programmer Kent Beck, XP calls for pairing developers together, performing automated unit testing and editing code frequently to keep it simple.
“Beck decided to take the good processes of software development to an extreme,” says Nicholas. “For example, testing is a good thing, so in extreme programming we test every bit of code.”
Nicholas, who prior to Compac, worked for Fuelquip, Tait Electronics and Sabre, found out about XP on the web and looked at it for two years before starting to use it 12 months ago.
XP is based on 12 basic principles (see www.xprogramming.com and www.extremeprogramming.org), and Nicholas started out using those he thought were most important, such as unit testing. He says one of the benefits to XP there are no tools other than plain white index cards. “We just write everything on cards and use them for all our planning rather than using a sophisticated project management program.”
Plans are called stories and software is developed in small iterations that are tracked against the story. “It ensures you get feedback about how you’re progressing very quickly. It’s more important to be always planning than to have a plan.”
But the major benefit of XP is its people-oriented nature, says Nicholas. Developers communicate with each other and the customer constantly. In Compac’s case one of the customers works in the same office space as the developers to keep in touch. “We try to always have the customer on hand but I can see that for some people that’s just not practical.”
One of the criticisms of pair programming is that doubling up programmers increases the cost but Nicholas says it leads to higher quality code, which ultimately is more valuable.
“Software development isn’t about how fast you can tap on a keyboard. It’s about design, and pair programming facilitates that. You get higher quality software because you have two people thinking about it and it keeps both more focused. You both have to keep an eye on what you’re doing. You can’t drift off or go and play on the web.” He estimates Compac does about half its development through pair programming.
Another criticism is lack of documentation but Nicholas says through rigorous testing, XP ensures everything is proved to be working. “This is more important than having a piece of paper which says it should work this way but doesn’t actually prove anything.”
Nicholas says he is keen to hear from others doing eXtreme programming in New Zealand. He can be reached at firstname.lastname@example.org.