Don't be a Fool, Choose the Right Tool

Tools can be a powerful productivity enhancer in any software development organization, but they can also be a swirling vortex of wasted time and money. Choosing the right tool can seem like a daunting task, but careful planning creates a win-win for you and the entire organization.

The first step in selecting your tool is to answer the question of why you need a tool.  What problem are you trying to solve?  A statement like "we need a version control tool" is weak.  It's very important to have a strong understanding of what your needs are before you venture out into the uncharted waters of tool web sites and vendor reps.  Don't let those who are eager to take your money define your needs, because if you don't know what you want, that's exactly what will happen.  Some slick salesman will do a dog and pony show for your management, and you will be left with an expensive solution everyone hates.  That is why it is essential that you should first go to the most important group of people in your organization.  And who would that be?  If you answered "the end users", you are correct!  Give yourself the afternoon off.

Before you go to the users, however, it is a good idea to define the boundaries of the solution you seek, and to give some ideas on what features are available.  This should be part of your high level problem definition.  Some questions to answer here could be:

    • How much capital has been budgeted for this purchase?
    • Will you need to share information with other vendors, or different geographic locations (i.e., will you require a web interface, access from outside the firewall, etc.)
    • If you are in a regulated environment, consider possible restrictions (e.g., use of electronic signature, restricted access to different types of information, etc.)
    • What tools do you use already? Do your require integration with these tools? What about business partners? Do they have integration requirements?
    • What is your current IT platform? Windows, UNIX/LINUX, or both? Know what skills your IT staff has to offer (e.g., Oracle, SQL, high scores for Mine Sweeper...)
    • What are other organizations in your industry using?

Next, schedule a brainstorming session with all the people who will use the tool (bring plenty of donuts and bagels to ensure full attendance, and don't skimp on the cream cheese).  Have everyone voice their opinion on what they feel is important.  What features would help them do their job better?  Include all groups of people who will be affected.  Depending on the scope of the tool and the number of potential users, you may want to have different sessions for different groups (e.g., users who will input information versus users that will review output information, such as management). Not only will this process help you determine the best features, it will increase user acceptance of the tool because they were part of the process.

After you have compiled a list of features, enter them in a spreadsheet and divide them into logical groups.  Which items are essential versus mere luxuries?  Opinions on this will vary, of course, which is why key users should also be involved in the ranking process.  Other possible items to add could include online reviews and user ratings, or if the tool has been ranked by any professional organizations.  Weigh outside opinion appropriately - how important is that to you?

The final prioritization of features can be accomplished by using a score for each feature, and weighting them according to their importance.  The scoring should add up to a set number, such as 100, and you can choose to divide this figure up amongst the features any way you want.  You will never find a tool that has a perfect score, but it provides the basis for comparison.  This gives you the ability to differentiate between different tools on a feature by feature basis instead of trying to compare entire tool sets against one another.  This method can be used to choose many things, such as a house, a car, or even a spouse (don't tell my wife I said that).

With a full understanding of what you want, you are ready to start your selection.  Your high level requirements (such as cost and platform) should do a good job of weeding out most tools and give you a manageable group to review. The initial phase, therefore, can be performed by a single person or small group.  Once you have identified a group of 4 or 5 tools to work with, then return to key users to help with the ranking in their areas of expertise.  Once again, this gives you the ability to focus on features, preventing any strong sales pitches from clouding your judgment.

After ranking your tools using your spreadsheet, you should have a clear winner.  If you don't, you need to dig into the detail for the top scoring tools and see where they are different.  Have the group examine their rankings for the two tools and reevaluate.  If you still can't reach a conclusion, take a vote, or settle the dispute with a spirited game of office paint ball.

A Note Regarding Licensing
If you choose a tool that requires concurrent/floating licenses, it can be a real challenge to choose how many you really need.  These license types are typically very expensive, and it is easy to purchase more than you need.  This decision will have a direct effect on the cost of the tool, so it needs to be considered during the tool selection process.

Determining your license needs is different for every environment and tool set.  The ratios will also change depending on the total number of users.  To determine how many you need, first identify your core users.  These are the users that will use the tool the most, and you need to decide what the consequences are if any of these users are denied a license when they need it.  Next, identify your casual users, or those that might require a license only a few times a week.  You can use a liberal ratio here, depending on the tool, cost and expected frequency of use.  Whatever you decide, it is always best to estimate on the low side.  The reason is that you can always buy more licenses, but you can't give them back!  Even if you are offered a great deal to buy more then you need, don't forget that many of these tools also have annual maintenance costs, which can eventually erode those quantity savings if you have more than you need.

In order to select the right tools, you need good planning, a solid understanding of your needs, and involvement from all effected users in order to maximize your success.  If done properly, you will have a much better chance at successfully implementing the new tool into the user environment (a different subject worthy of a different article), and you'll be one step closer to a cubicle near the windows.

Matthew Johnson has over eleven years of experience in the Configuration Management field, with expertise in administrating enterprise level configuration management tools in the medical device industry.  He lives in Southeastern PA with his wife, two little boys and a yellow labrador that is really just a furry stomach with four legs and a head.

About the author

StickyMinds is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.