“I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.” - Bill Gates
This controversial statement describes software development pretty well. If something can be automated, it will be. As a result, software development is flooded with different tools that have been created by these "lazy" - yet effective - people who want to find the easiest ways.
So, how do you make sure that the tool that has made other organizations more effective is really going to suit your and your organization's needs as well? There are a few things you need to consider, even before you start to search for the perfect tool.
Identify the need
The natural first step is to understand your current bottlenecks. What is the biggest single obstacle keeping you from achieving your goals faster or being more effective? If you are a developer, every day you bump into situations, which could have been solved more effectively. It is your duty to point these situations out to your superiors. As a CIO/CTO/manager, it is your duty to listen to your team, recognise the bottlenecks, and discuss the options for removing the hindrance.
So identifying the need boils down to communication. To understand your organisation's different needs, you must develop a culture of open discussion. Especially if the purchase decisions are made by people who are not the actual users of the tool. If the end-users and the people making the purchase decisions are not interacting effectively, the actual needs won't be recognised. Or even worse, you end up fulfilling the wrong needs.
Now that you have discussed, communicated, and identified the bottlenecks, you finally know what is keeping your software development team from becoming awesome! Time to search for the right solutions, right? Well, not quite yet. Before you start googling, you should ask yourself and your team the following questions:
- What are the must-have features and nice-to-have-features?
- Open source or proprietary software? Or does it matter?
- Do we want to use multiple tools, or should we search for a consolidated solution?
- Do we have the ability to maintain the tool ourselves, or do we need a high level of support?
By asking the right questions, you can narrow down the possibilities and concentrate on the most suitable tools.
Finding the most suitable solution
Often, when I discuss with our clients and prospects about how they find out about new tools, the answer is that somebody in their team has heard or read about it somewhere. That's why the natural first step is to start asking for leads in your organisation. I've noticed that software developers are a bright and curious bunch of people, and they actively follow the latest developments in the software industry. Somebody will most definitely have an idea that could help you.
There are also some pretty neat websites, which makes it easier to ask for other people's opinions and experiences on about everything. I've used mainly Quora and Slant. Somebody may even have asked for recommendations for similar tools that you are looking for.
The point here is to narrow down your options for the evaluation stage. It is impossible to understand how the different software development tools would suit you if you do not test them properly.
When you browse these different software development tools and applications, you must have noted the myriads of different freemium models. Some have a free trial period, some rely on a limited amount of free seats or features, and some use a combination of these. Since the emergence of online sales, you’ll be hard pressed to find software that fails to offer any kind of free trial.
The free trial is a blessing to companies that want to evaluate the tools properly before they decide to commit to a certain tool. Obviously, very few organisations have the luxury to use a lot of time and human resources to evaluate different tools, even though the tools would yield cost savings in the future. However, when you have identified the need that can be solved with a new software, and you have narrowed the options down, you should also invest some time in proper testing.
Those of our customers, who have tested Deveo with an actual pilot project, and have involved multiple users, have gotten the most reliable impression of our product. When we meet after the trial, they have well-grounded views on the tool, further questions, and they clearly know what works and what doesn't work for them. Whether they decide to start using Deveo or not, they can be sure that the decision is the right one.
I listed below some of the universal features you should be focusing on while you are testing a tool:
You should always consider the usability of the tools. Complex tools may let you configure them in hundreds of different ways, but this may result in your developers using their time to maintain the tools instead of focusing on their core competencies. Furthermore, complex UI will prevent your developers from reaching their full potential.
Your development team has been using different tools in the past. The new product may replace some of them, but you'll still be using some other tools daily. That's why it is very important to check how easy the product under evaluation is to integrate to your other development tools.
The number of users tends to fluctuate during the expected life cycle of the tool. Hence, you should also take into account your possibilities to scale the user amount according to your organisation's needs.
Always remember to check how easily you can change this tool to another tool. You don't want to become too dependent on any tool.
Great software development tools make your team more effective. As more and more tools are constantly emerging, it is important to know how you are going to find the most suitable tools among the thousands of possibilities. And with the current trend to automate everything, you should also keep in mind another quote from Bill Gates:
"The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency."
What kind of techniques you use while you are evaluating a software development tool? Please comment below and share!