A guiding principle in the software industry, considering the wide range of project scope and constraints, is to “use the processes and tools appropriate to the size, complexity, and impact of your project”.
For instance, each of the following situations demand different approaches to process and tools:
- You are a company that has had to reduce staff and now work with a very tight budget.
- Your company’s recent successes have driven significant growth, but these days project closure is not as tidy as it once was.
- There are strong demands about the level of documentation detail you are required to have in place for each project. You are targeting the European ISO-based market, or your client expects you to develop to the higher CMM standards, or you are developing devices to strict government (eg: FDA) requirements.
- On your large or multi-phase project you find that you are reinventing the wheel each time someone leaves and key information disappears with them.
We are all familiar with templates – applications that create artifacts typically come with a number of them, with more available for download. Templates are provided with such applications to give a user a starting place for something unfamiliar or something that is repeated often. They provide formatting and style to documents or presentations, canned code modules for development, and capture the procedures and organize the data gathered.
Templates and Their Benefits
Documented methodologies and practices typically include:
- Process Guides and Procedures – form an overview of the “how and why” steps in the software development, quality, and project management processes, providing a reference and assistance for bringing new staff up to speed quickly.
- Checklists – succinctly capture the necessary steps to be taken at key points throughout a process, and can be used as safeguards and memory triggers.
- Templates – support standardized formatting and content consistency for each artifact, and can explicitly define what information should be contained in each document via inline guidance text.
Once the templates have been created and the supporting guidance documents are complete and consistent, you can benefit from rapid reusability and ease of customization. Customizing for a new project simply consists of inserting project specific needs and editing out sections that do not apply this time around – a much simpler task than adding information to an incomplete collection of previous examples or creating them from scratch each time.
Within a template you can capture aspects of industry best practices and then make the conscious choice to address them or not for your project. In fact, templates are a strong component of achieving and maintaining CMM Level-2 Repeatable, where the goal is to show the adherence of software products and activities to applicable standards, procedures, and requirements. This goal would be met in part by the adoption of a set of checklists and document templates that can be applied as project standards. Adding a simple web page to your Intranet that outlines the project lifecycle and which templates to use at each stage will make it quick and easy to communicate these artifacts throughout your organization.
If all team members use a common format, it is much easier for the entire team to create the necessary artifacts and interpret and apply the recorded information. When working with 3rd parties or outsource organizations, templates are an excellent vehicle to ensure the consistency of the work produced – to the point where internally and externally produced artifacts should not appear significantly different – and this greatly facilitates the review of these deliverables.
The following are some of the benefits that can be attributed to proper use of templates:
|Project Managers & Team Leaders||
|QA & Test Professionals||
The following is a brief sample from a template that contains guidance text for what information is to be captured in the given section:
1. Project Overview
|Describe the background and context for the project and why it is being undertaken. Speak to the business value of the work being performed. This section can draw from the Project Vision or similar document. (Remove this comment section from final document.)|
1.1 Quality Standards
|List any quality standards that the company or organization has previously defined that this project will follow. (Remove this comment section from final document.)|
Proceed with Caution
A common mistake with templates is to focus on following the structure of the template, rather than allowing the headings and guidance text to function as a framework for quality content. By themselves, process and tools cannot lead a project to success, and a template is just another tool. Appropriate skill and experience in the project team; the ability to collect and analyze information in the context of the project and the team member’s role, are necessary for successful projects.
Matthew Edwards points out in “Basic Test Form Templates” that “…management can direct a test engineer to prepare a test plan, and even provide training and a planning template. But, there’s no guarantee that the plan will be a good one.”
In “Are Templates Dangerous?”, David Gelperin describes the hazard as follows: “Those who understand testing as a game of checkers see test documentation as an exercise in filling in the blanks of a template. Those who understand the chess-like complexities of testing see doc templates as a guide to recording the results of a difficult decision process.”
A template can identify and organize the important elements for a given artifact; however, to capture the intent of those elements as part of an effective project solution requires experience and insight.
Although the ROI from creating and using templates is significantly enhanced when implemented as part of an on-going process improvement initiative, defining templates for critical project artifacts is a good first step on the way to allowing your organization to:
- Define your development, quality and project management processes
- Implement best practices and standards throughout your organization
- Communicate these policies, procedures and standards throughout your software organization
- Create and maintain a single reference point for your entire organization for policies, procedures and standards
Which in turn can lead to:
- Greater control over projects
- More effective change management
- Standardized, streamlined and repeatable processes across your organization
- Managed schedules and predictable project costs
- Increased customer satisfaction