Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sharpening the Axe: The Primacy of Toolmaking

Sharpening the Axe: The Primacy of Toolmaking

Talk given at P99CONF 2022. Video: https://www.youtube.com/watch?v=_GpBkplsGus

Bryan Cantrill

October 20, 2022
Tweet

More Decks by Bryan Cantrill

Other Decks in Technology

Transcript

  1. Brought to you by
    Sharpening the Axe:
    The Primacy of Toolmaking
    Bryan Cantrill
    CTO of Oxide Computer Company

    View Slide

  2. OXIDE
    Give me six hours to chop down a tree and I
    will spend the first four sharpening the axe.
    – Abraham Lincoln
    Sharpening the axe

    View Slide

  3. OXIDE
    Give me six hours to chop down a tree and I
    will spend the first four sharpening the axe.
    – Abraham Lincoln?
    Sharpening the axe?

    View Slide

  4. OXIDE
    Give me six eight hours to chop down a tree and
    I will spend the first four six sharpening the axe.
    – Abraham Lincoln?
    Sharpening the axe?

    View Slide

  5. 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?

    View Slide

  6. 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?

    View Slide

  7. 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

    View Slide

  8. OXIDE
    “Wisdom is profitable to direct”?
    Translations for Ecclesiastes 10:10, from Biblehub.com

    View Slide

  9. 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

    View Slide

  10. 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…

    View Slide

  11. OXIDE
    Unix, ca. 1969
    The Evolution of the Unix Time-sharing System,
    AT&T Bell Laboratories Technical Journal, Vol. 63, No.8, (October 1984)

    View Slide

  12. OXIDE
    TeX, ca.1977
    Preliminary preliminary description of TeX,
    available as https://www.saildart.org/TEX1[1,DEK]1

    View Slide

  13. OXIDE
    NSELite, ca. 1991
    NSELite README, available as http://mcvoy.com/lm/nselite/README

    View Slide

  14. 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)

    View Slide

  15. OXIDE
    Jenkins (née Hudson), ca. 2004
    Hudson, Kohsuke Kawaguchi as presented at JavaOne, 2007

    View Slide

  16. 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

    View Slide

  17. 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?

    View Slide

  18. 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

    View Slide

  19. 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!

    View Slide

  20. 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

    View Slide

  21. 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!

    View Slide

  22. 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

    View Slide

  23. Brought to you by
    Bryan Cantrill
    [email protected]
    @bcantrill

    View Slide