The seven-person Napa team was working on a client/server desktop application. The application would be used by 600 employees of the company; it wouldn’t be sold or used outside the company. Users were located in three cities, one of which was also home to the entire development team. The idea for the product began as a technology update of an existing system that had become expensive to maintain. However, due to changes in the company’s core business, a great deal of new functionality was planned in the project as well. The project had been estimated to take thirteen months, but the company’s rapid growth was creating pressure for an earlier release, even if it included only a subset of the desired functionality.
For the Napa project, the team chose four-week iterations. We knew that the project would last at least six months, so even four-week iterations gave us plenty of opportunities to bring the software to a potentially releasable state so that we could put it in the hands of real users. The project had a fair but not excessive amount of requirements and technology uncertainty. The developers were all experienced in the technologies being used (C++ and Oracle). And even though the new application would have features taking it well beyond what the current application did, we had the current application as a basic model of what was needed.
The project team was collocated with many of the intended users of the system. Most of the users were eager to participate in discussions about what would become their new system. However, the company was growing so quickly that access to these users was partially restricted. We had to be careful not to use too much of their time. Four-week iterations worked well in this situation. Showing them new versions every two weeks would have been too much in this environment. By making a new version available every four weeks, we were able to get more of the users to experiment with the software in a sandbox we had set up for that purpose.
As this was an entirely new application, there was very little overhead of iterating, so that wasn’t a factor in the decision. This project was critical to the continued success of the company and had extremely high visibility from the CEO down. For the most part, we were able to establish and maintain priorities for four weeks. Even with four weeks, however, a sense of urgency was maintained because the team remained aware of the need to get an initial release into users’ hands as quickly as possible.