The rise of the Internet and the software-and-services industry has forced programmers to speed up and radically change the way applications are tested and developed, according to a new study. New software development techniques that involve continual feedback from a wide range of beta testers can spell success for software projects, but also can leave programmers deluged with work, according to the Harvard Business School’s Alan MacCormack, who conducted the study.
Prioritizing feedback, careful selection of beta testers, and the willingness to tap younger programmers are some of the techniques that can help software development projects, MacCormack advises.
“Testing software is the unsexiest job in the world. It’s boring, hard and very repetitive,” said MacCormack, whose study appears in the MIT Sloan Management Review’s winter edition, distributed this week.
Under the currently popular development technique, sometimes called the “evolutionary-delivery model,” constant user input is a primary feature, MacCormack notes. While the data generated may be hard to digest, the method is more democratic compared to the earlier “waterfall” model, he said. Under the waterfall model, first an analysis of a customer’s software requirements was carried out to create a basic specification and architecture — which laid the roadmap for the software coding, MacCormack notes in the study. The actual coding, testing, and integration of the software followed. No step could be jumped.
The waterfall model was introduced to deal with large software development projects with customized specifications, requirements and functionality, said MacCormack, who is professor of technology and operations management at Harvard Business School in Cambridge, Massachusetts. The model gave developers enough time to complete, test and implement software for a customer, he said.
Over the last 30 years, according to the study, the waterfall development model disappeared slowly, making way for the new “evolutionary-delivery” model. The emergence of this model was sparked by the Internet’s arrival, which has increased the demand for custom-made and reliable software on a very timely basis, MacCormack said.
The evolutionary-delivery model blurs the lines between the distinct steps specified in the waterfall model, according to MacCormack. “The steps in the (evolutionary-delivery) model are more like mini-waterfalls within themselves,” he said.
Under the newer model, a macro project is broken up into a number of micro projects. All the micro projects go ahead simultaneously, which helps expedite the process of developing software, according to the study. The model requires ongoing requirement analysis, specification, design, coding, testing and implementation based on feedback from beta-testers
The study cites as an example Microsoft’s successful application of the evolutionary-delivery cycle to the development and release of Internet Explorer 3 (IE3). The first step in the development cycle of IE3 was evaluation of the Internet industry and related technology, then dominated by Netscape Communications Corp. and Yahoo Inc. After putting together the browser specifications, a target ship date for the software was decided upon. At certain intervals, Microsoft released small bits and pieces of the browser for the beta-testers to chew on. They first released beta 1, which was about 50 to 70 percent of the final IE3, collected feedback from the beta testers and ironed out bugs, which lead to the release of an improved beta 2, with about 80 percent functionality of the final product. There was no third beta; the final version of IE3 followed, boasting improved functionality and 100 percent of the features. Internet surfers gladly lapped up the browser.
Netscape Communications Corp. used a similar cycle in developing Netscape Navigator 3.0, according to the study. Netscape released six beta versions of the browser, each version boasting ramped up software code and new features based on user requests and customer needs.
However, too much information or user feedback can be a drawback of this model, said MacCormack, as each user has different requirements. Since all the features requested cannot be added to the software product, the developers need to prioritize the features that are to be included in the final product.
A good selection of beta testers who can point out the relevant bugs and provide innovative input is very important to ensure success, said MacCormack. “A company needs to proactively decide on the beta testers, approach and manage them directly. They need to sell beta customers the concept that it is a win-win situation (for the developer and the beta tester), and that they have a chance to influence the core design of the end product,” he said
Depending on the target market, companies look for beta testers who can test performance in terms of speed, reliability and security, said MacCormack. “The idea is to discover the interaction of your stuff with what the user is operating on his/her desktop.”
According to the research, “a youthful development team is not necessarily one that lacks relevant experience.” A software developer with little experience would be quicker to adapt to the evolutionary-delivery model, when compared to developers from the waterfall era, who are used to outdated software development cycles, according to MacCormack.
But experience does help, and in the end it comes down to “being able to identify new opportunities in coding and integration.” Instead of being given a roadmap for the development of software, like in the waterfall model, under the new evolutionary-delivery model, developers should start a project with no pre-conceived notion of “where the software development was headed and what was going to be delivered.”
The MIT Sloan Management Review can be viewed online at http://mitsloan.mit.edu/smr/.