9 Characteristics of Excellent Software Tools
Updated: Dec 3, 2018
Excellent software requires excellent tools
There are thousands of software tools out there, that help make the software development process more efficient. I have worked with some of them, a few excellent ones, many frustrating ones.
Software tools, just like tools in our shed or sewing cabinet, make our work faster and easier. I believe in the right tool for the job.
Software tools give us massive leverage. And tools today come in at a power and price point that is truly remarkable, compared to even 5 years ago.
Although it made sense 5 years ago, to write your own tools, today there is no need, if you pick the right tool.
Here are the characteristics that I appreciate in AWS and Atlassian in particular. I use these same characteristics to judge any other tools I encounter.
Abstraction layer. We want our tools configured to match how we work, not the other way around. In fact, many of the best tools I have used in the past have been focused and hand written. This has all changed with modern tools who provide a useful abstraction layer. This allows non-programmers to configure the tool the way you need it – and to change the configuration when your business needs change. Brilliant. This is what separates JIRA, for example, from Fogbugz. The abstraction layer in AWS allows complex computer systems to be run without a system operator. Excellent software tools have an abstraction level that allows your implementation to be changed as your team/organization needs change, and allows information in your system to be transformed automatically between teams.
Easy starting point. When you start a company, you don’t have much money to buy tools. One incredible thing about starting a company these days, is you can have access to the best tools in the world, right from the start, because of the starter pricing models. This gives you big productivity leverage. Excellent tool vendors provide a way to get you started cheap when start, and then you pay more when your business increase. AWS offers a free tier for your first year. JIRA can be licensed for 10 people for $10/month.
Vendor pro-actively listen to customers – I have spent much time talking to Atlassian product managers about what I really need their tools to do (see my Atlassian presentation) . AWS, for example, after listening to customers, provided a cost calculator to help you *reduce* your costs.
Vendors go out of their way to share what they have learnt from users, not just about their own products, but also best practices. They feed this back to their customers. AWS hosts events, webinars, and training ( some free, some cost), Atlassian has an online “university”, Nick Pellow’s Masterclass on working in team’s was one of the best reviewed talks at 2014 Canterbury Software Summit because he was not pedalling Atlassian tools – his information was helpful to all teams. The Atlassian Summit is a fantastic place to stay current with all software development cutting edge ideas, not just Atlassian tools.
Marketplace. If your business is growing and changing, you will need more tools in future. Managing the interfaces among multiple, non-integrated tools can be a big time sink as you grow. Of course, you cannot expect one tool vendor to provide all the tools you need. Both Atlassian and AWS solve this dilemma by associating with independent marketplace vendors to provide a simpler buying, install, license and integrating experience for customers. We expect this from our apps world.
Continual stream of new features and bug fixes. If you are stuck with a tool set that is no longer actively supported, you tool will get out of date, and so will what you build with it. I watch the AWS blog and Atlassian blog and am blown away by the rate they continually add new features and fix bugs. This is the sign of a healthy tool set.
Clear and simple pricing. Especially with SaaS products and incremental pricing, and licensing provisions, it can be tricky to figure out what it will cost you to get a working tool feature set. I like pricing that is simple to understand, control and pay. JIRA, for example.Support Tools are incredibly complex and you will eventually need support or bug fixes. AWS provides ( at a cost) the most incredible support I have encountered anywhere. Their support people are talented, patient, courteous and seem to be driven by how pleased you were with the results of your call. And not, for example, by the number of calls they got resolved in a day. I relied on AWS support when implementing a Cloud solution, then stopped support when the system was in production. AWS shows what a good support should be.
Don’t be the tool vendor’s biggest customer. A word of caution. If you are the vendor’s biggest customer, this may give you more leverage to have them add new features. But you may also be the one “discovering” limits of their implementation. Being the biggest customer adds risk.
These are the characteristics I look for in tool vendors. These are the characteristics that have made me such a supporter of AWS and Atlassian.