NanoIndex Team 3 Final Report

Author: Jeff Townsend, Producer

Project Evaluation

Overall the NanoIndex team’s effort succeeded on both the technical and managerial levels. The delivered product almost exactly satisfies the negotiated user requirements and very nearly matches the low-level design specifications. The project was completed on time and under budget, at least in the sense that it required no extraordinary last-minute effort or sleep deprivation to complete. We largely followed our original schedule with two exceptions. First, the prototype and implementation phases were much less distinct than we had originally foreseen; we presented only an interface prototype to the client. Second, the viewer module implementation and testing depended almost entirely on the client’s modifications to the existing nano program; these were delayed beyond our client’s original estimate.

The project’s manageable size contributed in large part to its smooth completion. Our client was unwilling to accept the risk of an incomplete product and, hence, had very conservative requirements. Early and hard feature pruning prevented delays in the implementation stage of the project and allowed time for testing and documentation. In particular, delegating the nano modifications to the client group cut the scale of the project at least in half. Choosing not implement a web searchable index in the basic version of the product further simplified our task.

Team roles were well matched with individual strengths and there was overall consensus on major design or implementation issues. Tasks and action items were assigned to volunteers and no team member felt unfairly burdened with either overly time consuming or uninteresting tasks.

Lessons Learned

The two primary project management lessons are the importance of client feedback at early stages of the requirements writing process and value of early prototyping. As mentioned previously, the client’s role in shaping requirements was essential to controlling the size of and assuring the completion of the project. Having an experienced, computer science department client greatly benefited our team and the product. We proposed three interface prototypes; the final version reflected a much clearer understanding of the user requirements and led to a substantial change in implementation that was invisible to the user but simplified the code.

Our most productive meetings were well planned and conducted away from the distractions of the Sitterson lobby. We appreciate the need for good meeting records and the need to confirm meeting schedule changes with both the client and team members. We discovered the limits of email collaboration, especially with our clients. Our most productive time with the client was in person, often sitting at the computer in the graphics lab.

Dependence on outside parties was more difficult to manage but inevitable. Delegating nano program modifications to the client made implementation simpler and scheduling harder. To a lesser extent, locating and incorporating an existing image converter was more challenging than we initially imagined.

Technically, the NanoIndex project provided team members the opportunity to become more proficient with Unix, AFS permissions, Java APIs, csh profiles, image formats and conversion, as well as jsp servers and makefiles. The last two are not reflected in the final product but were the result of prototype investigations and the requirements writing process.

Successful Aspects of the Project

Team roles matched well with individual strengths. The core technical group, consisting of the director and quality assurance head, was both technically strong and motivated. Our librarian and webmaster had extensive HTML experience that was a benefit to both the team web site and the HTML component of the index pages. Efficient communication among team members meant we had productive team and client meetings.

We took full advantage of our client’s involvement and used timely feedback to quickly define requirements and specifications. This led to the early pruning of requirements that minimized schedule slips. Schedules were generally met; we delivered documents and prototypes as planned.

Possible Changes and Improvements

Due to the scale of the project, the two-person technical team did the bulk of the coding; a different partition of programming tasks might have led to better distribution of coding effort. However, even in retrospect the director does not see an obvious way to do so. Because of this, the quality assurance role might have been better shared with the producer, who could have insulated himself from coding enough to be an impartial tester.

Coding before the acceptance of final user requirements led to unnecessary effort, in particular over 20 hours investigating JSP for the web search feature that was culled from the user requirements. We might have done a better job of specified the interface with the modified nano program. There was ambiguity about how the index option should behave and the exact form of its output.

Client Satisfaction

Our client is clearly quite happy with the product, having declared so to the team, the boss, and the audience at the final presentation. We are gratefully for his role in the project and its successful completion.