Friday 5th May 2023 - Getting What You Expect from Your Software Changes


I went shopping for a car a couple of years ago. Now I don’t know much about cars. I knew that I wanted a station wagon and that it had to be comfortable for five and it had to cost a maximum of so much. This limited my choices down to a few marques that I liked or that I had driven and had an opinion on. But when it came down to selecting an actual car, you’re at the mercy of the market. You need to react to an advert quickly, and in reality, you have little time to decide if this one is the one.

After a few disappointments and close calls, I just had to settle for the one that was available to me. In the end, it worked out ok, but I don’t feel that I was very exact about the process, and it probably could have been a better result closer to what I envisaged in the first place.

How often do we feel the same way about software projects? We set out with hope and a glorious idea and end up with a compromise.

We have an idea of some of the elements that we want the system to do but the criteria are often vague and difficult to understand. Why? Because software systems are abstract and illusive - they deliver real business value but between specification and delivery a lot can and will happen. If software were cars then who knows what we’d all end up driving around in.

Unfettered choice is always a poor choice. Saying what we actually want is always the hardest part. If there is a choice we will undoubtedly change our mind until we get to a point where we actually decide on the criteria for making the choice.

What I’m saying is this - it’s all about the context. Context for every situation is vital. Software is no different.

This week’s subject is therefore about getting to know yourself - knowing your requirements better through understanding the reasoning behind your requirements. This week I’ve explored this subject in my blog posts about visualisation and C4 diagram, likewise we touched on this and the use of visualisation in Domain Driven Design in the podcast with Nico Krijnen. It was a really fun episode so please enjoy!

Have a great weekend!

-- Richard


How to Visualise Your Systems

Published on May 5, 2023

In a recent podcast episode, Nico Krijnen and I talked about requirements analysis, especially the use of diagrams – particularly context diagrams and DDD context maps, C4 system diagrams and business process canvases. Understanding, architecting and supporting our systems in a collaborative way is easier when we have diagrams that easily explain what we are… Read More »How to Visualise Your Systems

Read more...

How to Write Good Requirements

Published on May 2, 2023

It is human nature to want to excel at our chosen profession. When given the opportunity, many of us are tempted to show our expertise by listing everything we know on a single piece of paper. Therefore, when we are asked to draw a picture of a system and its interactions, we will put on… Read More »How to Write Good Requirements

Read more...

Podcast: Avoiding Legacy? DDD, Collaborative Architecture and Product Thinking with Nico Krijnen

Published on April 30, 2023

Do you hate legacy or do you love it? Do you accept it or do you want to stamp it out? This time I talk to Nico Krijnen (Lumunis) about the opportunities we have in our legacy codebases to understand our business better, the strategic use of new technologies to make important product improvements, the… Read More »Podcast: Avoiding Legacy? DDD, Collaborative Architecture and Product Thinking with Nico Krijnen

Read more...

Human DevOps

DevOps at is the heart of modern software systems. In my regular newsletter, I dive into the human factors that make successful engineering organizations where teams and platforms thrive at the heart of your socio-technical systems. From leadership to team setup, maximizing performance, tools and techniques.

Read more from Human DevOps
The Human DevOps -  Sunday 10th November - Being Human

The period after the summer holiday is always a busy one. What have you been up to? A lot of what has been on my mind is my mind. And not only my mind but the minds of those around me. There is an increasing neurodivergent component in my family, so for me, it's been really hard to think or read or write about anything else! Against this backdrop, I've been back to working as a DevOps engineer, writing Terraform, Python and Ansible and having design discussions. While I still enjoy it, I...

The Human DevOps -  Sunday 6th October - What is Humane Engineering?

September took me to London to attend a couple of conferences. The first was the Team Topologies-aligned Fast Flow conference , preceded by a workshop with the Team Topologies core team. I also popped into the Design Museum when I was in the area, an inspirational space if you're ever in London. The Design Museum in Kensington, London. As part of the work I do, I sometimes bump into like-minded folks. While I didn't catch up with them at Fast Flow Conf, a few days ago I enjoyed chatting with...

The Human DevOps - Sunday 8th September 2024  - How To Enjoy Software Engineering

How was your summer? Does it feel like it's still happening, or are you already back in the thick of things? It's been a bit of both for me over the last few weeks. I've been in and out of holiday mode. The weather is still hot, but the office is in action. Next week, I'm off to London, where I'll be attending the second edition of the Fast Flow Conference with the Team Topologies organisation and heading to SaaS CTO Conference to meet with tech leaders and find out what's got them worried...