OXIDE Give me six eight four hours to chop down a tree and I will spend the first four six two sharpening the axe. – Abraham Lincoln? Sharpening the axe?
OXIDE Give me six eight four an hours to chop down a tree and I will spend the first four six two forty-five minutes sharpening the axe. – Abraham Lincoln?! Sharpening the axe?
OXIDE Sharpening the axe?! The Home and Foreign Record of 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
OXIDE A woodsman was once asked, “What would you do 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
OXIDE Toolmaking • Better tools yield better artifacts • But 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…
OXIDE DTrace, ca. 2003 • System for dynamic instrumentation of 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)
OXIDE Rust, 2010 Project Servo: Technology from the past come to save the future from itself, Graydon Hoare as presented at the Mozilla Annual Summit, July 2010
OXIDE Toolmaking • These are just high profile examples – 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?
OXIDE Discouraged toolmaking? • The challenge of toolmaking is that 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
OXIDE Toolmaking is an investment • With its clear short 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!
OXIDE Encouraging toolmaking • Yes, there is risk – but 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
OXIDE Toolmaking under fire • Encouraging toolmaking is hardest when 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!
OXIDE Trusting toolmakers • Toolmaking – and the organizational freedom 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