I started wearing glasses a few years ago, entering in to that cycle of a new prescription every few years to renew my focus.

Thinking about that today, I think about the lenses I’ve worn over the years looking at my field of software development.

The lens of Patterns helped me see that the shapes that form in our code can be named, and thus I could see the borders between areas in my code more clearly. I learned that by strengthening those borders I could benefit more directly from those patterns, and others would understand more about my code’s intent.

The lens of Extreme Programming helped me look at how I worked with my team members differently. I saw how pair programming could be a real time peer review, the value of a co-pilot when coding, the insight from being a co-pilot.

The lens of Scrum helped me see the long cycles I was stuck inside, and helped me to shorten them. I found ways to sketch out my code before the fine details were needed.

The lens of Lean Software Development helped me see how I was making decisions too early in my code. I found ways to delay making those decisions to buy myself time to learn more about the work that needed to be done, and make better decisions later.

The lens of Software Craftsmanship helped me find balance between making things that work and making things that I considered beautiful. I re-found the practices I’d long ago learned from Extreme Programming and took more opportunities to help others practice them.

The lens of Kanban helped me see that the smaller cycles I sought in Scrum could be smaller still, and could happen concurrently. I found new ways to explore cohesion on a team, and to deliver software continuously rather than at Sprint intervals.

The lens of Theory of Constraints helped me see that unlike the resource constraints we see in manufacturing, the constraints we find in software are more often understanding. I found new ways to subjugate to and elevate those constraints.

How many more lenses will I wear in my career? I have no idea. But I look forward to the added clarity each new pair brings.

Categories: Developer