Customer Best Practices - Design Phase
 
  July 2005 
 
 

Customer Best Practices - Design Phase

According to the Standish Group, the primary contributor for project success (projects delivered on-time and on-budget) is great customer involvement.   Knowing that, it makes sense to define best practices for dealing with customers.  In the coming months, we will look at best practices for customer involvement that deal with all phases of the software life cycle:

  1. Planning - Getting the customers involved in the planning process is critical.  Gathering, analyzing and evaluating requirements is key to ensuring that your project meets the needs of your customer. 

  2. Design - Good designs are key to ensuring that changes the client requests require minimal changes to your framework. 

  3. Iterative Coding and Testing - Customers play a major role in Quality Assurance and User Acceptance testing prior to production releases.

  4. Production - Having good release management and support ticket management procedures in place will ensure quality releases and great customer support as issues arise.

  5. Post Mortem - Upon completion of projects, it is of paramount importance to involve your customers in the project review process.  Post Mortem reviews can aid in discovering and document common issues that arose during the project and allows for others to better plan for those risks in upcoming projects.

Design Phase

Good designs are key to ensuring that changes the client requests require minimal changes to your framework. The Design Phase is used to determine the technical solution and to provide preliminary estimates for delivering the solution. For the project manager to provide correct estimates, the development team must spend time architecting a technical solution that meet the demands of the functional specification. Additionally, the testing team must develop a Master Test Plan as to allow them to estimate their effort. Upon completion of this phase, a project plan may be developed which details the costs, effort and timeframes in which the solution may be delivered. As a final step, the client may decide to add, omit or delay functionality to fit within their timeframe and budget.

Below are some best practices to aid project management during the Design phase:

  • Create Detailed Designs - The detailed design document allows your development team to thoroughly think through the development approach, and to determine the effort involved in delivering each functional specification item. Without a detailed design, you can not create accurate estimates. 

  • Create Master Test Plans - Once all the functional specification items have been defined and a Detailed Design has been created, it is imperative to understand the effort needed to test the application. The most reliable way to do this is to create a "Master Test Plan". The master test plan allows your testing team to thoroughly think through the testing approach, and to determine the effort involved in providing adequate test coverage for each functional specification item.

  • Design Database and Object Models - Once your development team has created a detailed design, it is time for them to begin determining what database tables are needed to match the design and how those database elements will be managed in a reusable manner. 

  • Create Project Plan and Get Signoff - Once the functional specifications have been gathered and the detailed design is complete, the project manager can begin laying out the project deliverables and the calculating the budget for the project. Upon completion of the project plan, the deliverables and feature set is prioritized and scrubbed and the client and project team should sign off on the project. 

 

About the Author
Steve Miller is the President of Pragmatic Software.  With over 20 years of experience, Steve has extensive knowledge in project management, software architecture and test design. Steve publishes a monthly newsletter for companies that design and develop software.  Steve's email is
[email protected].


 

Pragmatic Software Co., Inc.
1745 Shea Center Drive
Suite 400
Highlands Ranch, CO 80129

 

Phone: 720.344.4846
Fax: 720.344.4847
Website: www.Pragmaticsw.com