Customer Best Practices - Coding and Testing Phase
 
  August 2005 
 
 

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.

Coding and Testing Phase

Once the customer signs off on the design, coding and testing preparation begin.  Many software companies take a hiatus from the customer during this process, as the process is a very technical time period.  However, seasoned software companies take advantage of customer interaction during this time.  If done properly, this can dramatically reduce the amount of bug re-work that is needed during quality assurance testing.

Below are some best practices to aid project management during the Coding and Testing phase:

  • Break into Iterations - Meet with the client and prioritize all the features (Release 1.0, Release 1.1, Release 1.3).  By breaking features into smaller releases, the development team can more quickly deliver the solution to testing so that the client is involved more quickly.  Many times, this will uncover issues that will require less re-work now than if it were found later in the process.

  • Customer Design Reviews - 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. Once the design reviews have been done internally, it is wise to hold a final design review with the customer to ensure that the designs meet the customer requirements.  When holding these reviews with customers, it is critical to present the information in layman terms so that the customer does not get hung up in the technical jargon, but is able to conceptualize the technical approach to ensure it melds with their requirements. 

  • Customer Test Plan Review - Once all the functional specification items have been defined and a Detailed Design has been created, it is imperative to  to create a Test Plan. The 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. Once the test plan reviews have been done internally, it is wise to hold a final review with the customer to ensure that the test design tests all the scenarios they envision. This also doubles in allowing them insight as to how to create their own User Acceptance Testing Plans. 

  • Defect Triage - Once user testing commences, it is wise to have "triage" everyone few days.  "Triage" is simply setting aside an hour or so to discuss all the open defects with your customer.  The customer can help decide the severity and priority of the defects and can offer insight as to why/how the defect affects their user base.  For triage, it is important to use a tool for tracking the defects. The tool should allow filtering of the defects by specific criteria and show allow defects to quickly be updated as the review process is going on. 

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
E-mail:
[email protected]