the Presbyterian Church in the United States of America, Volume 7, Number 1 (January 1856), Sermons for the Times: No. 2: The Dull Axe as cited in Quote Investigator, March 29, 2014
if you had just five minutes to chop down a tree?” He answered, “I would spend the first two and a half minutes sharpening my axe.” - C. R. Jaccarde Sharpening the axe! Objectives and Philosophy of Public Affairs Education, Increasing Understanding of Public Problems and Policies (1956), as cited in Quote Investigator, March 29, 2014
the tools themselves are entirely invisible to the user – and are often not even present in the end product • Even though we know that toolmaking is important, we do not explicitly encourage it – it feels like a distraction • Many consequential developments in software history were in fact groups seeking to develop better tools for themselves…
production systems developed at Sun Microsystems, ~2001-2005 • Informed by 5+ years of trying to understand performance of systems • Put a bright light on the hidden innards of the system, exposing many (many!) glaring performance problems • Many of those problems were much further afield than we envisioned! • DTrace not only helped debug current issues, it greatly accelerated the development of software that came after it (e.g., ZFS)
many more are never heard of • There are commonalities across all of these cases: ◦ Toolmakers were building for themselves ◦ The tools that they were building did not have immediate value on their own – their value was in delivering better artifacts ◦ Toolmakers retained the responsibility for the underlying artifacts • But why would toolmaking be discouraged?
the payoff is often at a distance from the investment – both in terms of time and use • But the cost of toolmaking is immediate and clear: time spent making the tool is time not spent making the underlying artifact! • Toolmaking feels like it’s stealing time – it lurks in the shadows • But while it’s (in principle?) possible to spend too much time on tooling, it is unlikely to be the wrong use of time – just more difficult to quantify
term costs and potential long term gains, toolmaking is best thought of as an investment • As with any investment, aggressive time horizons (e.g., days/weeks or small number of months) will result in overly conservative decisions • And like the best kind of investments, toolmaking also tends to be compounding: gains early in the lifetime result in more investment that yields yet more dividends • If toolmaking is always paying off, you may need to take more risk!
the downside is bounded to time spent • Indeed, the most common failure mode in engineering is not building too many tools, it is building something that no one wants • But in building a tool that one needs, at least one person wants it! • This is why toolmaking has in fact saved companies (e.g. Flickr, Slack, Docker): the tooling proved to have more interest than the thing! • When engineers wish to make tooling, they should be encouraged
deadlines are tight and opportunity cost seems high… • …but engineers themselves are cognizant of these constraints! • So when these constraints are present and engineers see a need for purpose-built tooling, that tooling should be prioritized • This is especially true for tools that improve the artifact by improving understanding: the best time to develop a debugger is when debugging!
that engineers need to engage in it – ultimately requires an essential ingredient: trust • In creative endeavors, trust must be the organizational binding force! • To encourage engineers to engage in toolmaking is saying: you are trusted to use your time wisely – and your future time is valued • To build an organization that values toolmaking, start by building trust