Remaining Construction Phase Iterations


The remaining iterations in the Construction phase followed the pattern of the three already discussed. We observed a phenomenon that is typical of software projects as they get closer to their release date: The number of new features you add at each iteration decreases and you spend more of your time fixing defects and fine-tuning the code (see Figure 8.14). Regardless of the process you follow, this seems to be a recurring pattern. The actual shape of the curves will change, but the pattern occurs.

Figure 8.14. New functionality vs. fine-tuning as project progresses

graphics/08fig14.gif

Table 8.1 shows the features we added in each iteration after the third iteration. We identified and fixed approximately fifty defects in these iterations. Only a few of these defects caused the program to be unusable, for example, by causing the program to "hang" and become unresponsive . None of the defects caused a loss of data. We feel that data loss is the severest type of defect because there is no good workaround for it. Most of the top-priority defects identified something missing in the database schema.

Most of the iterations shown in Table 8.1 are small. Yet, many of them represent a significant improvement in the user 's experience. Gary and Russell used each iteration to track their own work and quickly returned feedback to the developers. We were fortunate that our customer wanted to participate in the development process. Russell says he was lucky to work with a team that wanted his participation.

Table 8-1. Features added in Construction phase iterations 4 through 12

Iteration [*]

Functionality Added

C4

Incorporated activity time and defect entries. Also implemented activity timer that updates the database directly. Implemented ability to update task summary information directly from the task summary panel.

C5

Added line counter tool to the program. Improved login dialog. Removed need to run with a Cloudscape database server.

C6

Installed database schema changes and automatic database upgrade mechanism. Added the Database Properties dialog box.

C7

Added basic export function. Made user information editable.

C8

Added program size and estimation tab.

C9

Added ability to delete a task.

C10

Delivered a self-extracting archive that unpacked the required files into a target directory and removed dependencies on the user's environment.

C11

Fixed defects. Released an initial User's Guide .

C12

Added an executable program for Windows that launched PSP Tools. Users no longer needed to run a batch file, and extra windows no longer appeared on the user's task bar.

[*] We identified our iterations by a letter representing the phase (I=Inception, E=Elaboration, C=Construction, and T=Transition), followed by the iteration number within that phase. For this project, only the Construction phase had more than one iteration.

We want to stress again how important it is to work closely with your user throughout the project. Gary once reviewed a book that described a development method in which there was a certain point "beyond which customers are no longer welcome to actively participate in the process." We strongly disagree with this approach. We want our customer with us, shoulder-to-shoulder, from the start to the end of the project. We want few or no surprises for both the customer and the rest of the team. We are one team, with one common goal defined in our vision.

Table 8.1 doesn't reveal a significant fact, one that is impressive when you remember that we worked on this project part-time . Sometimes we didn't work on the project at all when our real jobs took precedence. We delivered iterations four through seven in the span of sixteen days! That's one iteration every four days ”developed, tested , and packaged. During this period, we worked at peak efficiency. [11] Imagine what your team can accomplish when working on a project full-time and operating at peak efficiency.

[11] To be fair, this period was during the Christmas holidays, so we had a little more time to work on the project.

Iteration C5 was a significant milestone for the project. Until this point, you had to run a batch file to start the Cloudscape database server program. This was necessary to allow simultaneous access by multiple users. But Russell told us that each member of his staff would have his or her own database. This represented a change from the initial vision, proving once again that customers can ”and will ”change their minds. Gary did a little research and figured out how to access the databases in a single-user mode. He wrote very little code, less than twenty lines, to implement the change, and provided another delighter.

The export capability we added in iteration C7 was minimal. It simply added the ability to export user data to a comma-separated value file (CSV file) that could be read by Microsoft Excel. Our vision for this feature was grander, but Russell decided he didn't want to wait for us to implement a more elaborate solution. This is a reasonable tradeoff to make ”request faster delivery of a product with a reduced set of features.

We followed the guidance in RUP: We removed the feature from the first release and moved it to an unspecified future release. With Rational RequisitePro, it took about a minute to make the change to the appropriate requirement attribute in the database. We always want to see where we stand with the planned work, and also see the work that has been scoped out of the current release. Change management doesn't have to be complex, but it does have to " be ."

Gary finally addressed Jas's concerns about installation in iteration C10. The self-extracting archive satisfied Jas and the people he knew who wanted to try the software. Looking back, Gary can't believe how hard he resisted making it easy to install PSP Tools. In fact, creating a self-extracting archive required no code changes . Gary used one of the many available programs to create the archive for the Windows environment. To paraphrase a current commercial for a major credit card: "Total time: less than five minutes. Value to the customer: priceless."

Iteration C12 was the last iteration for the Construction phase. Russell and the rest of the team felt the software was ready to deliver to a wider group of customers. We made PSP Tools a real executable program on Windows platforms. Gary asked Chris to write the program that would replicate runPSPTools.bat . By making an executable, we avoided extra windows appearing in the user's taskbar.



Software Development for Small Teams. A RUP-Centric Approach
Software Development for Small Teams: A RUP-Centric Approach (The Addison-Wesley Object Technology Series)
ISBN: 0321199502
EAN: 2147483647
Year: 2003
Pages: 112

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net