Architecture

What I learned at the last O’Reilly Architecture Conference

You already voted!

Right before the Covid lock down, I went to the O’Reilly Architecture conference in NYC with the intent on recharging my batteries and learning about some new and innovative architectures and tools that could aid Diligent. This wasn’t my first time attending the conference and, in fact, the last time I went I was introduced to Apache Kafka, which inspired a project for a real time trading analytics tool (a topic for a subsequent blog post perhaps). Looking at the speaker list, I was very excited to see that Martin Fowler was one of the keynote participants. Martin writes a pretty famous blog (http://martinfowler.com ) that I’ve found indispensable in defining patterns and architectures in ways we can relate to.

Martin Fowler on stage during the O’Reilly Architecture conference in NYC

“This may look easy but it isn’t. I’d really prefer to be in the dentist’s chair than giving a talk.” -Martin Fowler

The above quote was part of Martin Fowler’s opening monologue and gave me a glimpse into the person whose blog I had been reading for the past ten years. He continued the rest of his talk not about “Kubernetes, CQRS, micro this or monolithic that,” but instead on what often goes overlooked – asking what’s the business value of what we’re considering. This was a surprise coming from the guy who introduced me to micro services, micro-frontends, CI/CD, the gang of four, and many other ideas.

“There’s no legitimate reason to do any work in software without first defining what the business value is,” Fowler argued. I completely agree, but also realize I’ve been as guilty as anybody in sometimes forgetting to frame considered work in this manner. Thinking in terms of business value is paramount because if a new feature/work item doesn’t give us value in some way, it’s really not worth doing. We’re all here to do meaningful work that’ll help us as a team succeed in providing value to our customers. We need to ask and revalidate with ourselves that the work we’re doing is helping move that ball towards that goal.

Understanding that value should be our highest priority question when evaluating work. It’s important to note that value does not have to translate into revenue dollars or even money at all; business value can also be measured in other ways, for example:

  • Customer retention (not finding value in our software)

  • Customer delight (keeping customers engaged and interested)

  • Reducing toil (freeing up our people to do higher value work)

  • Employee engagement and happiness (Happy techies make productive techies)

  • Failure impact reduction (keeping our commitment to high availability)

Overall, I walked away with Martin’s presentation refreshed and grounded again but not in a way I expected. Yes, maybe we want to take a big monolith and containerize it or add a service mesh to our Kubernetes cluster. The key thing is we need to ask ourselves why and make sure that there is value in doing that in a way we can articulate to others.

Me and the authors of Fundamentals of Software Architecture, Neal Ford and Mark Richards. This picture was taken about 1 week before NYC shut down due to Covid-19

Come join our team! Diligent is hiring!