Task: Select and Acquire Tools |
|
|
This task describes how to select and acquire tools that support the Development Process for the project. |
Disciplines: Environment |
|
Purpose
The purpose of this task is to:
-
Select tools that fit the needs of the project.
-
Acquire the tools for the project.
-
(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
Roles | Primary Performer:
| Additional Performers:
|
Inputs | Mandatory:
| Optional:
|
Outputs |
|
Main Description
Many of the steps in the 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. The Concept: Supporting Tools gives a brief overview of the different kinds of supporting tools that a project needs.
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 implementation of the process in the organization.
See Implementing a Process in a Project for more details.
|
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 decide to
employ an iterative delivery process, it is necessary to automate the tests, since you will be testing several
times during the project.
-
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 the development effort. Tools support large organizations more or less well.
-
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.
Tool Features and Functions
Create a list of features and functions for the type of tool you are studying. In most cases the tool vendors provide
such lists. The table below shows a fraction of a list for configuration management tools.
Features & Functions
|
Versions all file system objects
|
Versions directories
|
Mixing of file types
|
Compresses text and binaries
|
...
|
Tool and Vendor Criteria
Collect information about each tool for the following criteria.
Tool
Criteria
|
Comments
|
Features &
Functions
|
The functionality that tool provides. This should be the overall conclusion of the 'Tool Features'
table.
|
Integration
|
The level of integration with other tools. How is information transferred between different tools? How
well does the tool fit with your existing tools, and other tools that you are evaluating. Level of
integration is often more important that features. Well integrated tools are more likely to be easier
to use and maintain.
|
Applicability
|
How well the tool support your delivery process. Do you have to change the way you work in
order to use the tool? Can you accept the trade-offs? Lack of applicability means that you may
have to change the way you work, "design-to-tools". But, this may be worth considering if the tool
has other strengths.
|
Extendibility
|
The ability to extend and customize the tool. Extendibility, is good since it means that you can
adapt the tool to your needs. However, make sure that it doesn't take too long time to configure the
tool, to make it work.
|
Team support
|
The ability to support a team of users. Does the tool support a team that is geographically
distributed?
|
Usability
|
The ease of learning and using the tool. Focus on the most common ways to use the tool. How long time
does it take to be productive using the tool? Is the tool suitable for people who will use it
infrequently? Be sure to look at the most commonly used functions. The fact that some rarely used
function is difficult to use, can often be ignored.
|
Quality
|
Depending on the kind of tool, the quality of the tool will determine the quality of the product you
are building. Quality is important, especially when if have direct impact on the product you
develop. For example, a compiler that produces slow code, or an HTML editor that produce bad
HTML.
|
Performance
|
The total effectiveness of the tool, including capacity, accessibility, and response times. Bad
performance may be acceptable if it affect functions or capabilities that are seldom used.
|
Maturity
|
The tool's level of maturity. Some organizations would not buy a version 1 of a tool from a new vendor,
regardless of how good the tool is supposed to be.
|
Vendor
Criteria
|
Comments
|
Stability
|
You risk your future on the future the vendor. How long has the company been in business? How stable is
the company? Are they investing in the tool? Is the tool in the main line for the company, or is it a
sideline?
|
Support availability
|
What support is available from the vendor, and/or potential partners? You may need help to install and
configure the tool, and continuous support for the users.
|
Training availability
|
What training is available from the vendor, and/or potential partners?
|
Growth direction
|
How well the tool supports the direction where your development is going. Consider what direction your
development is going. Will the tool support that direction, and other direction that you may want to
go?
|
Cost
The costs associated with acquiring and owning the tool, includes acquisition costs, implementation costs and
maintenance costs. Decide how many users you have and for how long period of time, you want to calculate the
cost.
Cost
|
Comment
|
Acquisition cost
|
The cost to purchase the tool.
|
Implementation cost
|
The cost to have the tool installed and integrated with your existing development environment. This
includes cost of training the users of the tool, both the users and people that will administer the
tool.
|
Maintenance cost
|
The on-going cost to make sure that the tool work and is used. This includes both the cost to
administer the tool, to handle upgrades, and the on-going training cost for both the people that
administer the tool, and the users of the tool.
|
|
Compare Tools
To combine the factors and select the best tools is not a trivial issue. To help you make a decision we recommend that
you create a table for the features.
Compare Features and Functions
Using the list of features and functions, decide how important each feature or function is for you. The following
ranking can be used:
-
'Must'. The tool must have this feature.
-
'Nice'. The feature would be nice to have, but it is not critical.
-
'Not required'. It does not matter whether to tool has the feature or not.
Indicate for each tool whether it has the feature or not using the following symbols:
Symbol
|
Description
|
+
|
has the feature
|
-
|
lacks the feature
|
Document all features and functions in a table, and rank how important they are. Indicate for each tool, whether it has
the feature or not. The table below is a fraction of a comparison between three configuration management tools.
Features & Functions
|
Rank
|
Tool 1
|
Tool 2
|
Tool 3
|
Versions all file system objects
|
Must
|
+
|
+
|
-
|
Versions directories
|
Must
|
+
|
+
|
+
|
Mixing of file types
|
Must
|
+
|
+
|
+
|
Compresses text and binaries
|
Nice
|
+
|
-
|
-
|
...
|
...
|
...
|
...
|
...
|
Compare Tool and Vendors Criteria
You need to compare the tools in all other factors, except the features. To get an overview of the tools, we recommend
that you document the overview in a table, such as the table below. Briefly describe your needs and constraints for
each factor. Give each factor a weight to indicate how important this factor is to you. For example, use a scale from 1
to 5, where 5 means that the factor is very important.
Grade each tool (and vendor) in the following criteria. You can use a scale from 1 to 5:
-
Useless in this area
-
Weak or has some serious shortcomings.
-
Adequate in this area.
-
Better than average in this area.
-
Excellent in this area.
Document the comparison in a table such as the following table.
Tool Criteria
|
Comments
|
Tool 1
|
Tool 2
|
Tool 3
|
Features &
Functions
|
|
|
|
|
Integration
|
|
|
|
|
Applicability
|
|
|
|
|
Extendibility
|
|
|
|
|
Team support
|
|
|
|
|
Usability
|
|
|
|
|
Quality
|
|
|
|
|
Performance
|
|
|
|
|
Maturity
|
|
|
|
|
Vendor Criteria
|
|
|
|
|
Stability
|
|
|
|
|
Support availability
|
|
|
|
|
Training availability
|
|
|
|
|
Growth direction
|
|
|
|
|
Compare Cost
Compare the cost of each tool and document it in a table, such as below. Grade each cost as 'Low', 'Medium' or
'High'.
Cost
|
Comments
|
Tool 1
|
Tool 2
|
Tool 3
|
Acquisition cost
|
|
|
|
|
Implementation cost
|
|
|
|
|
Maintenance cost
|
|
|
|
|
|
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 is often very costly.
|
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.
|
|
© Copyright IBM Corp. 1987, 2006. All Rights Reserved.
|
|