Crafting vs Untangling

One of the things I think a lot about during my day job is what motivates people to passion, particularly software developers working on a large integrated system. I’ve certainly learned a lot over the years about the differences between people’s worldviews and styles, and met many developers who derive their satisfaction from technical work in all kinds of ways that never would have even occurred to me.

The most interesting axis of differentiation I’ve run across is the spectrum between engineers who like to craft, build, and own new things on the one hand, and engineers who like to unravel deep and intricate mysteries on the other. These are not mutually exclusive, but I’ve found that everyone has a comfortable spot somewhere on the continuum where they can derive maximum joy from their time spent at work.

Build from scratch

Engineers who are fundamentally crafters have a┬ásimilarity to the stereotype of a “startup developer” – the desire to be in on the ground floor, see the fruits of your labor, and have a big hand in the direction of a product. Pride of ownership is a big part of job satisfaction, and being publicly viewed as the creator of something is a deeply satisfying ego boost for these folks. They tend to enjoy demoing their feature and working with customers to implement it, even when those become long tasks that take them away from future programming.

Reveal the mystery

On the other hand, engineers who are problem solvers at heart find pride in their ability to understand what no one else can, and dig to the heart of an existing issue more quickly than other people. They can thrive on pressure and get their joy from the “aha” moments that happen in private, as another layer of the puzzle falls away and they reach deeper understanding. These folks can easily be happy doing systems programming on a large codebase, where there is complexity by the truckload for those with the desire to untangle it.

Be true to yourself

My (limited) experience has been that the majority of programmers fall into the first camp. The desire to craft brand new seems to spring naturally out of the engineering mindset, so this tends to be the comfortable mode of working for computer science students and new graduates. The ability to self-identify on this spectrum and choose work that best fits your personal bent is an under-appreciated talent that more software developers should spend time honing. I expect that reaching a better understanding of this concept would be helpful for most developers’ job satisfaction and avoid burnout or boredom that might otherwise be unexplained.


Leave a Reply