Tips for Creating Solid Detailed Designs
 
  June 2003 - Pragmatic Software Newsletters 
 
 
Reduce Software Defects by Creating Solid Detailed Designs
In this month's newsletter, we discuss tips for creating solid detailed designs. According to the Standish Group, only 16% of all software development projects are delivered on-time and on-budget. A staggering 31% of projects are cancelled before they ever get completed.   This newsletter will aid you in creating solid detailed designs as to reduce time and cost overruns.
 

Newsletter Sponsored by Software Planner

This newsletter is sponsored by Software Planner: http://www.SoftwarePlanner.com

Software Planner is a project collaboration tool that allows you to manage all phases of your software development. In the initial stages of the project, it allows you to post functional specifications and post project related documents (like meeting minutes, client proposals, etc.). As the project progresses, it allows you to post baseline documents (like detailed designs and project plans). As development proceeds, it allows your project managers and developers to track project deliverables.

The developers can update the percentage complete for all items assigned to them. Once testing begins, it allows your testers to create test cases and track software defects. Developers are automatically alerted, by email, as defects are assigned to them. Team members are alerted as new documents are uploaded or re-uploaded (like project plan updates, etc.). And each person has the ability to control the email alerts they wish to receive. Use the discussion forums to communicate all issues with clients and project team members. Keep your appointments and to do list on-line and updated at all times. Try Software Planner FREE for 2 weeks.

 

Tips for Creating Solid Detailed Designs

To deliver software on-time and on-budget, project managers must be able to understand exactly what has to be delivered to adequately estimate the project.   Once solid customer requirements have been created (see last month's newsletter for tips on collecting solid requirements), it is imperative to understand the effort needed to deliver each customer requirement item.  The most reliable way to do this is to create a "Detailed Design". 

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.  Below are the keys to successfully creating detailed designs:

  1. Document your Architectural Roadmap - If your company has not done so yet, document your architectural roadmap for delivering solutions.  If you wish to see a template for doing this, go to http://www.pragmaticsw.com/Pragmatic/Templates/ArchitectureOverview.rtf.
  2. Create a Prototype - If a prototype was not created during the customer requirements phase, create a prototype for the feature to ensure that your developers and your project manager agree that the technical design meets the customer requirement.  You can quickly create a prototype using Front Page or any other HTML editor.  If there are buttons on the page, explain in detail what will happen (from a technical perspective) as the buttons are clicked. 
  3. Specify the details of each function -For example, if you are creating a detailed design for a logon screen, you should have a section that describes exactly what will happen when the Logon button is clicked.  It may describe that you will call a business object to validate the userid and password and if it is incorrect, an error is raised (specify the exact error message). It may further specify what objects will be used (like common objects to validate email addresses, etc).
  4. Specify "Other Design Considerations" - When implementing solutions based on customer requirements, you should specify if there are design considerations outside of the norm.  For example, you may specify that the software under the current design will work with IE and Netscape versions 6 and higher.  You may also specify that no localization will be done, the user interface will support only the English language.  These are examples of "other design considerations".
  5. Break the Design into Tasks and Provide Estimates - As the developer specifies the design for each feature, a list of tasks that must be performed to complete each technical function must be identified, along with an estimate of how long (in hours) each task will take to complete.
  6. Have a Team Design Review - Once the detail design is complete, have the technical team review the design (and estimates) to ensure that the developer covered all the bases.  Many times these design reviews bring up ideas that allow you to reduce the effort with a more elegant approach.  This approach also allows "other design considerations" to surface and be discussed. 
  7. Get Developer and Project Manager Signoff - Have your developer and project manager sign the detail design document so that you can later refer back to it, showing that both parties agree to the approach.

As you can see, creating solid detailed designs can ensure that your projects are delivered on-time and on-budget, allowing your project manager to document the tasks needed to deliver each customer requirement.  Below are some helpful templates to aid you in creating solid detailed designs:


 

Pragmatic Software Co., Inc.
383 Inverness Parkway
Suite 280
Englewood, CO 80112

 

Phone: 303.768.7480
Fax: 303.768.7481
Web site:
http://www.pragmaticsw.com
E-mail:
info@pragmaticsw.com