As someone working in technical sales, one of the questions I have been asked hundreds of times is why do we need tools? I mean, we could just code in a text editor or in Emacs or VI, like we did in the old days. Build and deployment can be done with hand written scripts and what’s wrong with using word to manage requirements and a whiteboard to track your burn down? Yes, all that does work. I mean there are companies that have released working software using those non-tools. So what do tools buy me?
Here is my answer:
Tools make any work you do automated, repeatable, scalable and efficient. If you are two coders in a garage making an app (or in today’s day and age, two ‘hackers’ on MacBooks in a latte shop hogging the free WiFi), yes, you can probably hack something together with these non-tools. But hopefully you don’t want to stay there.
Instagram only had 12 employees when it got bought by Facebook, but they served 30 million users. They could not release a bug and ignore it. They could not wait for their sys-admin to patch every server they were using manually, even if the servers were runnnig the Amazon cloud. Speed and hence automation became key. Both for them and for Amazon, their service provider. You have probably read the story of how on the first night of the release of Instagram, Kevin Systrom had to manually reconfigure their self administered Linux server and eventually get a cloud setup on Amazon when he realized what he was doing needed to be automated to just survive, and needed to be made scalable to handle the growth they were unexpectedly experiencing.
And, if you have multiple applications you are building or maintaining, whether you are a team of five or five hundred, every thing you do has to be repeatable. You cannot start from scratch with each new release or bug fix. You have to be able to reuse the assets, code and even practices that you have used before to be cost effective and efficient.
Another reason of tools from a business perspective is to make practitioners fungible. I know it sounds callous to refer to people as being ‘fungible’ like they were some resource, but in reality, they are (what’s the full form of HR again?). You will have turn over in employees; you will have to move people from project to project. A common set of tools allow practitioners to be enabled once and used anywhere. New practitioner’s in the team need to learn only one set of tools. Efficient, cost effective, repeatable and scalable.
Why commercial tools over open source? There is another conversation and more to do with economics and security of your ability to deliver (who do you call when an open source tool goes ‘bust’?), than whether one can do the job better than the other. As my view may appear biased by my being employed by a tool vendor for the last decade and a half, I will leave it at that.
What are your thoughts on tools? Do you think their value is overblown? Are open source tools a ‘better deal’ than commercial? Leave a comment below.