Good developers care about their tools
The saying a "A poor craftsman always blames his tools" especially annoys me when used as a way to shut down conversations about process improvement and tooling. I can't remember the last time this phrase was used with good intentions in a professional setting. Unfortunately this is just part of a disturbing broader trend of using idioms and other various linguistic means to stifle progress, language is increasingly being weaponized lately. Given this a quick look into the etymology of this phrase is very informative.
Where did this phrase come from
It's possible that one origin is from an old French phrase mauvés ovriers ne trovera ja bon hostill (in modern French this might be les mauvais ouvriers ne trouveront jamais un bon outil). Which translates to something like "bad workers will never find a good tool". This version of the phrase is very wise and has a timeless feel to it.
Somewhere in the 19th century the English version of this idiom "a poor craftsman always blames his tools" came about. At least initially these phrases might have had the same connotations, but over the years I think the context has changed. Specifically back in the 19th century (or earlier) there was far less availability of quality tools, people were just as smart back then (perhaps even smarter thanks to different diets, provided malnourishment wasn't an issue, and substantially less distractions) and a motivated group of talented people could do amazing things. But certain things were far harder to accomplish back then due to a lack of progress with tools (along with less availability of knowledge). I think this phrase makes a lot more sense in a situation where no good tool is available and can't be made available in the time needed to do the task. Complaining about a lack of tools when no such tool exists tends not to be practical or particularly helpful. Looking at things over a longer time span we have a general trend to make tools if they would make people's lives a lot better and as such progress over time has made more tools available to us. But not every situation lends itself to making the ideal tools.
In the 19th century there simply wasn't the same availability of good tools so compared to now you'd more often be in the scenario where no good tool existed to do your job. For example there was sufficient knowledge for the computing and automation revolution to have started back in that 19th century but the lack of some precision tooling meant it was uneconomical to create those machines. Imagine today that you are on a camping trip and a part of the tent you are using breaks with a big amount of rain on the horizon, this would not be a good time to complain about not having access to a 3d printing machine that could print a perfect replacement part. Sometimes you just have to make the best of a bad situation and make do with whatever substandard tools you have available. But today we do live in an age which has benefited greatly from decades of progress that has given us tools that previously would never have been dreamed of. Courtesy of the efforts of innovators and the tireless work of those who support them we have seen a great deal of progress in the state of the art with many tools along with a trend that has seen huge reductions of cost for some tools. In the modern world we find both that more situations have tools that do exist and also more businesses are working further away from the cutting edge. Put simply in many modern business settings the storm cloud isn't that close and getting the right tool is far cheaper than people realize even if discovery of the right tool is hard.
A big issue I have is when people want to shut down discussions about progress. when this phrase is used as a weapon to shut down discussions about improving processes and tools is that it's often used disingenuously. Lets say you commission someone to make an oil painting. If you then gave them only a bunch of pencils then they could quite rightly turn around and say that it won't look like an oil painting. If the response is to launch into a form of ad-hominem attack weren't you deflect from the poor requirements by criticizing the skills of the practitioner by claiming they are not skilled enough to make a drawing look like an oil painting it would be absurd. Yet this type of absurdity happens in the software industry quite frequently (but is by no means limited to just the software industry). Follow the incentives and a lot of the real reasons this pops up becomes clear.
If you are just looking for a way to get the most our of your situation then paying attention to what sorts of tools your team needs to do the best it can is a great idea. Skilled workers care about their tools. It is likely impossible to get to the highest levels of skill if you don't care about your tools. Talented workers take much pride in being good at their craft and being productive. Experienced developers also know when to hack something together, as obsessing only on tools can easily get out of hand.
The changing economics of tools
Personally a lot has happened in the 3 years since this I started on this draft, I spent a couple of years doing a lot of consulting on process improvement at various tech businesses. A common theme emerged, the modern economy is increasingly being defined by effective usage of tools. Over the last 3 years a very common situation I have encountered when consulting with various businesses is that the estimates of how much good tools cost has tended to be off by a large margin. Strong technological and scientific progress is fundamentally very deflationary in terms of prices, this is sometimes referred to as cost gravity, the idea that costs tend to fall over time for desirable tools. Falling costs for tools can have an accelerating effect over time, cheaper tools allow for the creation of other tools, which in turn makes this deflationary effect even greater. Over time this has meant that many critical tools have either got a lot cheaper or have increased in quality without the price rising.
Not identifying the changing costs of productivity tools is a massive strategic liability for any modern organization. Furthermore the places that have resisted updating their tools and processes have been slowly going out of business. (Cheap debt has kept many of these "zombie" companies in business a lot longer than they would otherwise have survived, but that's the topic for a whole post on it's own)
For the most part I define a "good developer" as someone who is able to leverage their skills in development to bring business value. Good tools greatly improve quality and productivity so therefore good developers must know this dynamic really well and have familiarity with the main productivity enhancing techniques in their domain. This dynamic applies to other forms of work as well, but it just happens to be rather extreme in the development industry.
The secondary effect of good tooling is that it makes the sort of productive employees you want to retain happy. Being able to keep learning newer tools adds greatly to the longer term value that employees can bring and helps keep their careers going strong. Many organizations understand this and even go to the point of hiring people specifically to deal with these matters. At a certain organizational scale it makes a lot of sense to have dedicated staff for creating the tools that will benefit the organization. This virtuous cycle of improving tooling and helping staff be more productive is a great way to attract and retain the sorts of people who are highly productive.
Some people will counter with "but if we got the best tools for everyone all the time we would go broke". This sentiment is another thing that I think is worth revisiting if only because of the bias that can exist behind such a phrase. I don't think anyone would argue in good faith that the most expensive tools should always be procured. What constitutes the "best" will always be subject to some tradeoffs and economic constraints. But one thing that can catch people off guard is that the costs of productivity enhancing tools have fallen dramatically over the last few decades while in many cases the cost of labor has not. Even with the labor share of the economy being far too low we still have a situation where the economics of getting the right tools for highly skilled high-paid employees makes a lot of sense since the opportunity cost of the time you most skilled worker spend on things is very high.
Considering the drop in the cost of various productivity-enhancing technologies vs wages over time you will realize that any tools that save wages tend to be extremely good investments. For example the computer I'm writing this post on cost $2000 but is more powerful than multi million dollar mainframes were from a few decades ago. It wouldn't have made economic sense to have purchased this amount of computational power for a single staff member in 1980, but now 40 years later in 2020 it's an absolute no-contest decision to get a good computer for each staff member. If you are running a business you need to make sure to periodically re-evaluate the balance of costs, because a tool that was absolutely not worth purchasing can quickly turn into one that is extremely profitable without anything have to change internally in your organization. The disruptive manner of technological progress means that costs can shift very quickly. This computer also came with another unexpected example of this principle, when it was bought for work some money was "saved" by getting it 8gb of RAM. It turns out in this age of extreme bloat in software that's sometimes not enough, so sometimes when the RAM gets filled up the computer gets unresponsive and you have to wait many minutes before you can save your work and reboot. Adding up the wasted time and lost work here has easily negated any of the savings from the cheaper RAM configuration. When you are hiring someone you are hiring them because they will make more of a profit than their wages, so every hour that bad tools waste costs you more than an hour of wages, it costs you an hour of productivity and also creates frustrations.
This concept is not new but yet many places go with the overwhelmingly bad false economy option of cheaping out on these things. A lot of these decisions come down to a blind spot that many western managers have where there's a huge disparity in the weight placed on decisions between those that can easily be represented in an accounting line item vs those that cannot. Probably one of the first times I remember seeing an egregious false-economy with investing in productivity of tech workers was companies engaged in graphics work that were not buying second monitors for their staff. Back in the 1990's monitors were much more expensive but were still a small percentage of highly skilled workers yearly wage, and since then the cost of computer monitors has decreased enormously while technological progress has made the quality of these monitors go up. Now many years later much more advanced monitors are frequently in perfectly good working condition on street curbs being thrown out on hard rubbish days.
Being pragmatic with regard to tooling leads to a much more productive mindset. Always consider the impacts of the tools you use and the costs for changing tooling. Also periodically consider the impacts and costs of not changing tooling.
I started this draft in 2017 after talking with a team who was struggling due to management dictating that they must use a variety of substandard tools. The decision makers were getting very annoyed when they are informed that their tools are a suboptimal choice even when presented with overwhelming concrete evidence that their choices are costing the company substantial amounts of money while also increasing employee turnover. There was a conflict here because either resolution to this situation meant that someone's performance review would suffer, a scenario that's indicative of some sort of overall organizational failure. Part of the the underlying issue was upper management was operating by dogma rather than by sensibly reasoning based on evidence, meaning that an evidence based resolution of this conflict wasn't possible. Lately dogma has been on a dangerous rise so we might expect to see more of these anti-scientific decisions being made.
The absurdity that conflicting incentives causes in organizations is perhaps most obvious when no barriers to using better tools are in the way. The adversarial political maneuvering (and the associated toxicity that often goes with it) is impossible to downplay in circumstances where a free tool is better for the organization than an expensive tool that someone has chosen on the behalf of someone else. Frequently in the software space you see situations where a better tool is free software that is better across all metrics (excluding of course power politics considerations as they are usually the real reasons for decisions that would otherwise be insane). Unfortunately "a bad worker always blames his tools" was a common utterance at that company whenever anyone brought up the topic of these tool choices. Management figures turning this phrase into a weapon for political maneuvering purposes might have beeb successful in getting their way in the short term but the morale costs were very real and very damaging in the longer term.
As is frequently the case the management at this company were not stupid, they were just acting on the amazingly misaligned incentives at play. Some middle management figures were able to get kickbacks from a vendor and this was the primary driver of what was chosen. Due to various organizational dysfunctions the people who had to work with the actual clients of the firm were dealing with costs for these bad choices that were made by another department. Siloed departments where the group who is procuring something is not the same group who needs to use the tool is a big factor in many enterprise procurement nightmares. And it's hard to fix this without looking at the business in a holistic manner. The sorts of accounting that look at business units as separate atomic units is a large part of why such degeneracies exist in organizations. But that rabbit hole is best left for another post, in the interim if you are interested in understanding more the politics behind what would otherwise be incomprehensible decisions you might enjoy reading "Moral Mazes" by Robert Jackall.
If there's a sound reason that the best tooling cannot be used explaining why this choice is being made goes a long way for helping keep morale high. You want to keep your best workers happy and being transparent with the decision making process is a great way to do that, especially if a decision is going to make their life harder in some way. Situations like the one described earlier where you have to explain that someone won't meet their targets because another department has decided that your department must use a certain substandard tool in order for them to get kickbacks will not keep morale high. But beyond morale this is a situation where fixing the misalignment of incentives is really what needs to be done, morale can only survive so much misalignment of incentives before the cohesion of a group collapses. Keeping your senior staff informed as to why a decisions is being made that conflicts with their best judgement is critical for keeping up morale and reducing turnover. Then after you have informed those staff members get to work on resolving the issue of the conflicting incentives as quickly as you can. The most successful developers are an intelligent bunch and they tend to have a very small tolerance for organizational dysfunction when those decisions are seen to be illogical choices from an engineering perspective.
If you are managing a tech team having proactive and open discussions about productivity enhancing tools is important, and it is getting more important every year that goes on. If there's issues around tooling it can be a good opportunity to see if it's exposing conflicting incentives in the organization and is a great chance to help mentor your staff. Having conversations about why certain tools are being chosen from the businesses point of view can help prevent unnecessary turnover, especially if those choices conflict with what a good engineering decision would demand. But if you have ongoing conflict with engineering best practices you should strongly investigate if the business decision is actually the wrong one.