Would you eat at a restaurant run by software developers?

Jun 28, 2024 3:11 pm

Happy Friday!

I think and use a lot of metaphors in my work. None are perfect, but there is one that has been rolling around in my head for years. For those of you who don't know, I like cooking, so I naturally relate a lot of things to food, and this is no exception.

The software developer industry prizes two qualities above all else—speed and problem-solving. These two qualities override almost anything else in day-to-day work. So what would happen if we looked at a restaurant run by developers?

Let's assume the developers run the kitchen since most of their work is invisible to everyone. They receive orders, prepare the food, and send it back out. That holds pretty well for reality.

When an order comes in, the staff quickly gets to work getting the dish done. Now, the staff may organize themselves in lots of ways, but they will organize based on what they like to do and what makes sense to them, which may not be the same as the most effective for getting the best dish out.

The staff quickly produces a dish and lets the wait staff know it's ready. The wait staff takes the dish out.

How many times do dishes get returned, and for what reasons? Well, if the kitchen is run by developers, they are probably going to see a 50-100% return rate. Why is that? Well, when I work with clients and companies, I look at the ratio of bugs/defects to work items. The number of groups producing a bug for each work item is astonishing. But why are the dishes getting returned?

Well, there are lots of reasons. One will be that it isn't the right order. This happens a lot because the kitchen staff made some assumptions about what was on the ticket that wound up being wrong, and they didn't feel like asking. Another reason would be that they couldn't cook the dish the way it was supposed to be, so they compromised without talking about it. Another still will be that they didn't bother with food-safety practices because its slow and impractical. Also, they didn't taste the dish, so it was seasoned poorly, and the flavor was awful.

You might think this is a weird exaggeration, and in some ways it is. Yet, when I look at what development teams are willing to ignore, skip, bypass, or talk around it amounts to piles of issues like this. I didn't even get into the state of the kitchen, and they never got around to cleaning.

Are all teams like this? No! Are all developers like this? No! There are numerous exceptions everywhere, but sadly, they are exceptions and not a rule. I get that there are issues with comparing software development to physical manufacturing, but my point here isn't around the nature of software, it is in the nature of how teams organize, the processes they adhere to, and the things they are willing to avoid.

So, the real question in all of this is, what kind of restaurant are you running? One barely hanging on with a terrible health rating, or a Michelin star-rated restaurant?