Once you get used to a great tool you don’t want to use anything else. But people who only use mediocre tools don’t even know that they need something better. Or even worse: They don’t like the better tool at first. Let me give you some examples… (This blog posting is somewhat related to Cheap plastic drills).
I love to cook. And I think that great tools can make a difference. So, a couple of years ago, I bought two rather expensive kitchen knives. I loved them right away, but it took some time to really get used to them. And it took some more time practicing to sharpen them with a grindstone (A knife is sharp when you can use it to shave the back of your hand).
Now that I am used to having sharp knives I just can’t stand working with “normal” ones. I rarely use my cheap knives anymore - only for cutting cheese, butter and other “soft” stuff. But when a friend of mine, who likes cooking too, tried my knives he said: “I don’t know, they don’t really feel right. And I don’t need such a sharp knife anyway”. Not only was he satisfied with mediocre tools, he didn’t even like the better tools at first!
I have seen something similar with software tools too. I come from a Java background. I have been using Eclipse and Mercurial for some time. When I started my first .NET project I was shocked how many shortcomings Visual Studio and Team Foundation Server (both version 2010) had compared to what I was used to. It is impossible to operate Visual Studio only with the keyboard. Refactoring is a Joke. You can not search for types. TFS sometimes loses local edits, and offline mode and merging are a pain. And don’t get me started about MSTest. Just to mention a few of my issues…
But my coworkers, who had used both tools for several years, didn’t understand my criticism. They thought that those were minor issues and that one didn’t need those features anyway. They told me that VS and TFS were excellent products, and that all tools have shortcomings. Well, I can not agree with the first part of that sentence.
I am guilty too
I don’t sharpen my my knives often enough. I still use Java for most of my programming. I kinda like Ruby and Python but never learned them well enough so they could replace Java for me. I want to learn Clojure and Light Table but I don’t find the time. I still use Eclipse although I know that IntelliJ has some features I’d probably like.
So, yes: I am guilty too. But I hope to improve one or another of the above in the coming months. What about you?
Read more about how software architecture and design impact your agility in my book “Quick Glance At: Agile Anti-Patterns”: Buy it now!
You might be also interested in:
- Simple Design passes its Tests: How software design and testing go hand in hand.
- Cheap plastic drills: Most people think construction workers should have great tools. A lot of people think paying more than 1000 Euros for an office chair is a waste of money, even for a software developer who uses it 8 hours a day. Good tools are expensive.
- REPL Driven Development and Testing in Clojure: Some ideas how you can use a REPL to drive your design and create regression tests.