Art vs. Engineering

January 14, 2013

A friend recently asked what I thought of a recent Techcrunch article on the practice of pair programming. The fundamental question is of whether the task at hand requires an artist or an engineer.

Exploration

children-playing

I often hack alone on personal projects, where I want to explore, have fun, and find new and interesting solutions to problems. These sessions have a profound impact on my professional development as well. Not only do they reveal new ways of thinking about problems, they also reveal the flaws in many of my more creative ideas.

Construction

turbine

While on a client’s dime, however, I very much approach the problem with an engineering mindset and process:

  • I pair on the problem with a coworker.
  • I write tests before I write code.
  • I ask for code reviews and confirmations before pushing to production.
  • I report my progress regularly and reliably through standups and other tools.

While these processes arguably limit my creativity, they produce a system that’s reliable, maintainable, and easy to understand. That is much more important while trying to maintain velocity on a project than whether or not I thought of an interesting solution to the problem.

A friend of mine used to refer to code that was more art than engineering as “clever.” It wasn’t a compliment.

Thoughts? Discuss this article on Hacker News