Don't Just Break Software. Make Software

Better Software Magazine
Volume-Issue: 
2004-06
Summary:
What if, instead of using tests to try to break software, we used tests to make software? That's the vision of storytest-driven development. We spoke to people who spend each day turning wishful thinking into working products. Find out how they do it.

StoryTest-Driven Development (STDD) Is an extreme programming practice. The basic premise is that before any code is written, a team takes a story (or rough idea of a requirement) and fleshes out that story by producing an executable "storytest." Opponents say that STDD is "cowboy coding," or "snake oil," or just "a hindrance to real work." Proponents argue that STDD produces the simplest system possible and is the wave of the future, the new frontier.

Everyone Gets A Say
With traditional acceptance testing, developers would create an entire system, declare it finished, and then submit it for acceptance testing. This mostly manual testing tended to get bogged down in paperwork and occurred so late in the development lifecycle that any mistakes were very expensive to fix. Even if the system met all of the stated requirements and passed through acceptance testing with flying colors, the customer, who hadn't seen the system since the requirements meeting, often was left feeling like he had not gotten what he wanted. STDD makes it possible to formalize the expectation of the customer into an executable and readable contract that programmers have to obey if they want to claim a working system.

"STDD gets the right people collaborating at the right time," says Joshua Kerievsky, XP coach and founder of Industrial Logic, Inc. STDD brings together the customer, developers, and testers before any code has been written. They collaborate to identify a specific piece of functionality, or "story," to be worked on. Customers and testers then specify criteria to validate that the story works and create an executable document that can be accessed by anyone on the team.

Upcoming Events