News Stay informed about the latest enterprise technology news and product updates.

Developers sink 'waterfall' in favor of 'sync'

In the world of software development, "sync and stabilize" is hot. "Waterfall" is not. That's the preliminary finding of a study previewed by an MIT researcher.

BOSTON -- In the world of software development, "synch and stabilize" is hot. "Waterfall" is not.

At the XML Web Services One conference on Wednesday, Michael Cusumano, an author and professor at MIT's Sloan School of Management, revealed preliminary findings from a yet-to-be published survey of the latest worldwide trends in software development.

What was clear from the research is that a majority of developers are undertaking projects that use the so-called "sync-and-stabilize" approach, in which members of a development project work on modular blocks and then synchronize their code with other members on a regular basis throughout the life of the project. It also requires that they stabilize, or debug, that work on a continual basis as well.

In a study of 150 software projects conducted jointly by MIT, Harvard Business School, the University of Pittsburgh and Hewlett-Packard Co., 64% of developers worldwide said they worked on projects in modules. A majority also produced "builds" -- or individually coded components -- on a daily basis in the early or middle stages of a project. The rates were 63% in the United States, 57% in Europe and 53% in Japan. The exception was India, where only 27% of developers were in the daily-build habit.

Cusumano said historical data supports sync and stabilize as being more effective than the "waterfall" approach, which calls for a project to be completed in an uninterrupted sequence of events that results in a final product.

"[Waterfall] was a popular design 30 years ago, even 20 years ago," but it's no longer as relevant, according to Cusumano, who said he's seen trends "come and go" in the 17 years he's been studying software development.

As an example of a failed waterfall project, he pointed to Microsoft Corp.'s development of the Word application for Windows in the late 1980s. Originally, Microsoft predicted that it would take 365 days to develop and release the application using a strictly sequential approach. It ended up taking 1,187 days.

Another advantage of sync and stabilize is that it allows for design changes in the middle of a project, such as a Web services initiative. While that may seem like a nightmare to a project manager working on a tight deadline, it actually allows a company to develop software in response to market changes.

"Late design changes can actually be good," Cusumano said. "They don't have to be bad if you have a process in place [to handle them]."

Again, he pointed to Microsoft as an example. It learned from the Word fiasco while developing the Office suite of applications in the 1990s. Using sync and stabilize, Microsoft was able to add an Internet browser to the project, a design change that proved hugely successful.

Not everyone is dumping waterfall completely, however. In Japan, the approach was used by developers in 53% of the projects in Cusumano's study, which will be released in six to 12 months.

Some in the United States haven't given up on the waterfall concept either.

William K.Y. Poon, principal with Emmorpheus Solutions, an information security consultancy based in Dracut, Mass., said both sync and stabilize and waterfall have their benefits.

"Each style, each approach, has to fit with the style of project you're going into," he said. "You have to adjust and move according to what you see."

Poon said that Web-based application projects, which usually require a quick turnaround, play to the strength of sync and stabilize. However, he said that when making changes to an existing project, a waterfall, or sequential style, would work best.

Most of the application-development projects Poon deals with in his consultancy revolve around Web-based identification and authorization. He uses the sync-and-stabilize approach with these because security specifications are constantly evolving.


Article: Best practices for effective software development

Article: breaking XML to optimize performance

Best Web Links: Web services architect

Dig Deeper on Topics Archive