Published on

We build our own tools

Authors
  • avatar
    Name
    Chris Armstrong
    Twitter

It's unusual for any worker to create their own tools, but most of us do it all the time in software development, which seems to set it apart from other industries.

It's not uncommon as developers to:

  • customise our own editors
  • write code generators to automate repetitive or boilerplate code
  • cobble together scripts to manage infrastructure or development processes (like CI/CD pipelines or unit testing)
  • write small applications for assisting with testing or validation

You could even go further and argue we create our own materials, like software libraries or frameworks that we literally incorporate into the software we build and deploy.

But I don't think it's unusual for our industry, or necessarily for us as humans. It's specifically human to create our own tools and use them to shape our environment (at least to the extent that we are able to as a species, compared to others that make primitive tools).

My father was a bricklayer and boatbuilder, and I grew up watching him create little gadgets and jigs to help him make his work easier or more efficient. It might be something to cut bricks easier for a very particular corner section, or a steaming device to curve wood. Like software developers, he'd prototype too, like building a kayak before building a boat with the same techniques.

Some of things he'd make would border on inventions, but would lack the generality needed to bother patenting or distributing them, as they were often designed for the task at hand.

Reflecting on this, I don't think what we do as software developers is unusual. We're more likely to create our own tools that are specifically ours and don't live in other developer's workflows due to the mallebility of software. We're also more likely to give them away and share them because the ease of doing so is usually just copying some files and maybe writing some instructions.1

Not all developers do this, but I think its a good habit for developers to get into. It shapes a certain frame of mind that encourages independence and giving unfamiliar things a go, especially when you're not an expert or have access to the expertise to try.

Footnotes

  1. Not to mention that software developers don't value their own time very well.