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

About the author

AgileConnection is a TechWell community.

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