Date

Over the course of my career I’ve found my opinions swing back and forth between two extremes. I call these pendulums and it’s a useful exercise to identify pendulums in your own career. Here are a few that I’ve experienced:

  • The pendulum between static and dynamic type systems
  • The pendulum between unit and integration tests
  • The pendulum between prototyping and perfection
  • The pendulum between solo development and teamwork
  • The pendulum between monolith and microservices

At a given moment I find myself on any number of positions along the spectrums above. Currently I’m swinging away from static type systems and towards dynamic ones, towards unit testing and away from integration testing, and towards microservices and away from monoliths.

The exact positions I hold aren’t important. What’s important is identifying the dialectic. With each swing I gain a more nuanced appreciation of the approaches and learn where to apply their strengths. There is nothing shameful in changing opinions. It is healthy to question how you’ve done things in the past, and equally healthy to try new things which might not work out.

In some cases a developer’s pendulum will never swing. Their views are fixed, perhaps from experience with a particularly nasty codebase, or from the software culture that surrounds them. And those lessons are valuable, but perhaps it is more valuable to swing between the poles.

(Note: Pendulums are not a great metaphor for this concept. Oh well.)