HomePractices Page 2 - The Art Of Software Development (part 2): Designing For Simplicity
The Best Laid Plans... - Practices
In the first part of this article, you got a crash course inrequirements analysis. Now that you've figured out what your customerneeds, it's time to design it - easily the most challenging and creativephase of the project cycle. Find out more, inside.
Once you've got your customer's agreement on the base requirements ofthe software to be developed (and, hopefully, an advance payment), it'stime to put together a software development and management plan. Thisplan serves as the controlling document for the project, and it definesthe processes, responsibilities and priorities for everyone associatedwith the project. The person in charge of the project uses this toassign appropriate roles and responsibilities to all stakeholders in theproject, both customer and vendor.
Typically, this software development plan (also sometimes referred to asa project implementation plan) is split into several large sections,each of which is discussed below:
Introduction: This section leads off the plan, providing an overviewof the project, a list of the deliverables, a list of references anddefinitions for terms and acronyms used within the document. It may alsoinclude a cheat sheet of the important milestones, the project scheduleand the resources or departments assigned to the project.
Project organization: This section discusses the organizationalstructure of the project, providing a hierarchical overview of therelationships and interfaces between different departments. It alsodiscusses the responsibilities of different teams, the reportingmechanisms between and within them, and the person or people responsiblefor each activity.
Managerial processes: This section discusses the goals andpriorities of the project management team, including information on themonitoring and notification mechanisms to be used for the project; thesemechanisms serve as early alerts in the event of cost or time explosion.It also lists the assumptions of the plan, and lists dependenciesbetween the various elements of the plan. A list of the project risksshould also be included at this stage, together with ideas on how toreduce the impact of each; this risk list should be updated on a regularbasis by the project manager.
Technical processes: This section provides an overview of the toolsand techniques used to implement the project. It includes information ondevelopment tools and languages, version control techniques, codingstandards, and testing processes. It also includes a list of all thedocumentation that is to be developed during the project cycle,including information on the reviews and approvals needed at each stage.
Quality assurance processes: This section provides information on thequality standard and processes followed to ensure that the final productis in conformance with the specifications agreed to by both parties. Italso includes information on test procedures, problem reportingmechanisms and resolution processes.
Schedules and resources: Detailed information on the project scheduleand major milestones is described in this section, together withinformation on the various types of staff needed to execute the plan,and their allocation over the plan period. Schedules may be expressed ineither absolute ("10 June 2002") or relative ("start date + 20") terms,depending on the amount of flexibility you need to give the customer (oryourself).
The end result is a clear outline of expectations at both sides of thetable, and a concise snapshot of the project path and developmentactivities needed to achieve the goal.