Task: Select and Acquire Tools
This task describes how to select and acquire tools for the organization.
Disciplines: Software Capability Improvement
Purpose

The purpose of this task is to:

  • Select standard tools to fit the needs of projects across the enterprise.
  • Acquire the tools for the enterprise.
  • (Optionally) Develop special tools internally to support special needs, provide additional automation of tedious or error-prone tasks, and provide better integration between tools.
Relationships
RolesPrimary Performer: Additional Performers:
InputsMandatory:
  • None
Optional:
    Outputs
      Main Description

      Many of the steps in a defined process can only be efficiently carried on with the proper tool support. Tools need to be selected that fit the particular needs of an organization, based mostly on specific tasks or work products necessary for the process.

      Sometimes special tools have to be developed internally to support special needs, provide additional automation of tedious or error-prone tasks, and provide better integration between tools. This tool development may proceed with a lighter weight delivery process than the one used for developing the product.

      Selecting and acquiring the tools is done in hand-in-hand with the definition and implementation of processes in the organization.

      Steps
      Identify needs and constraints

      Identify what the needs for tool support are, and what the constraints are, by looking at the following:

      • The delivery process. What tool support is required to effectively work. For example, if the organization decides to employ an iterative delivery process, it is necessary to automate the tests, since you will be testing several times during the project.
      • Operational objectives. How can tool support help you meet these objectives?
      • Host (or development) platform(s). 
      • Target platform(s).
      • The programming language(s) to be used.
      • Existing tools. Evaluate any existing and proven tools and decide whether they can continue to be used.
      • The distribution of the development organization. Is the organization physically distributed? Development tools generally support a physically distributed organization differently.
      • The size of development efforts.
      • Budget and time constraints.

      The Development Organization Assessment provides some good input for this step. 

      Collect information about tools

      Collect information about the candidate tools and their vendors. Some of this information is data that can be collected from the vendor, or from independent reviews.

      See Template: Tool Information for a simple method of documenting tool information as it is collected.

      Compare tools

      To combine the factors and select the best tools is not a trivial issue. Compare tool features, functions, cost and vendor information.  See Template: Tool Comparison.

      Select tools

      Select the tools that best fulfill your needs, and can fit within your constraints. Do not fall into the trap of comparing features and functions only. The other criteria are equally, or more important. Unless the choice of tool is obvious, we recommend that you test the tool (or tools) that you have found to best suit your needs, before you decide to acquire it. 

      If there are any doubts about the tool, the best is always to test the tool. You can also try to find other companies that are using the tool, and ask them if they can evaluate the tool. You can also ask for reference customers from the vendors; other customers who are using the tool. There is also information available on the Internet, where for example online magazines publish their reviews.  

      Once you have made the choice, stick to it. To change tool in the middle of a project or capability improvement program is often very costly.

      Document your specific tool recommendations in the recommendations section of the Artifact: Development Organization Assessment. This will be a refinement of high level recommendations for tools documented during the organizational assessment.

      Acquire tools

      To acquire tools is a non-trivial issue, which involves legal matters as well as financial matters. Tool acquisition is not covered in any detail here. The following areas should be considered:   

      • Installation. How much assistance do they offer to set up the tools?
      • Support. What kind of support do the vendor offer? Many tool vendors offer several grades of support to choose from. The more you pay the better support you get. 
      • Vendor commitment. How committed is the vendor to you as a new customer? If you run into problems with the tool, what kind of help can they offer? In what time-frame and to what cost?
      • Influence. What influence will you have on the future of the tool? How will your need be prioritized?  
      • Maintenance. How does the vendor handle bugs in the tool? Are there planned "service pack" releases? 
      • Training. What training do they offer? What is the availability of training courses? 
      • Product future. Is there a plan that describes the future evolvement of the tool?
      • Licensing. Should you buy one site license for all project members, or should you buy one tool per individual? Some tools offer "floating" licenses, which sets a limit to the number of concurrent users in an organization.
      Key Considerations

      Tools are only as good as the process they automate. And, they are useful only in the hands of skilled people. When teams do not have the proper training to make the best use of tools, projects are often hindered rather than helped.

      Consider adoption and deployment issues carefully when selecting tools for capability improvement. Ensure cost does not outweigh the benefits.