Knowing when to create a factory

January 5th, 2011
[ Software Development ]

I dabble in home renovations and low end woodworking when I’m not stuck at a keyboard. The commonality being that I seem to enjoy building stuff, whether the raw materials be 1′s and 0′s or pine.

One of the skills both require is developing the wisdom to recognize when you need to build a factory and how much to invest in a particular factory. In this context, factory refers to a setup to allow you to repeat a particular task well several times.

In a woodworking context we’re talking about tweaking your workbench or building a full-on jig or template. A recent example that comes to mind are some built-in dressers I made for our bedroom. There were 10 shelves to be built so taking some time to setup a system to easily build 10 of the same thing was worth it. I wasn’t building 100 but 10 is enough to spend some time. In other cases I’ve built jigs for projects I’ve only created one of because there was simply no other way to do it well.

In the programming sense, we’re talking about all the supporting tools around your tasks such as an IDE, build tools, scripts, unit tests, plugins etc. In both cases, you need to assess the time required to build the factory balanced against how long that factory will exist and the time it will save you over the life of the task.

Developing and honing your judgment as to when you should be spending more time building a factory can increase both your productivity and the quality of your work. It’s also a very valuable skill to have in a team lead and mentor.