Exceptions are not normal
TLDR This is a cold hard rant with a splash of preach. There is nothing of technical value in here.
The word Exception conjures fear into the heart of developers and operations teams alike. It means something.

When I see exception appear in a system, it means excluded from the general system and is not a normal state. It’s not part of the rules of the service or product. If software has an exception, the developer might joke about it being a suprirse feature, but joking aside, it’s not a normal operational state. Exceptions in software sometimes cause a crash, due to an unhandled or unexpected state. An Exception in the case of my order would have been maybe a vehicle crash? Would that count? It’s outside of the modelled service, but if it happens, not a total surprise.
The table below is from a delivery service. I ordered a new printer (paper, not 3d) and expected it on a next day delivery. Turns out, an Exception happened. It would seem to me, that missing a delivery deadline is a normal part of a delivery service’s outcome no? Why would this be an exception I wonder?
- Avoid challenges from people outside the business by making it sound bad (bad)
- Developer doesn’t understand the business (bad)
- Manager told the developer to do it (bad)
- A weird SLx state to prevent refunds (bad)
- Explicit state to cover service oversubscription (bad)

Even the fields make little sense here. OK and Exception being the Status? Status of what? The software? The van? The process? Given this is externally viewable data, this could be made clearer and less angering by just removing the first column from the table.
When I was young, I delivered newspapers, pizza and Chinese food. Let’s take my working knowledge and figure out if this was an exception or not. The information in the table has the audience of recipient, so let’s make sure we contain states relevant to the person expecting the goods.
Delivery States
- Delivered
- Attempted Delivery
- Out of time
- No one available to take delivery
- Could not find address
Internal Delivery States
- Got caught out whilst pretending to knock and run
- Dog ate package
- Driver ate package
- Driver destroyed package
- Couldn’t find the house
- Items were stolen
- Items picked
- Items loaded to van
- Driver reached max hours
Note that lack of exception? We could get really silly and add further entries like act of God and act of war, which will be relevant for some countries. Exception in this case is just poor design.
Not receiving a printer is a minor annoyance, but I’m treating this as a great reminder of the aspects involved for creating even the simplest of services or products. A lot of this tends to cross blurry lines into things like Domain Driven Design (DDD) and Agile etc, but the top level discplines worth pinning on a notice board are below.
Design Thinking
A customer-centric process that focuses on understanding the user’s needs. A way to make decisions based on what customers want, rather than on instinct or historical data. A process that helps create products that are profitable and sustainable.
It is NOT throwing the idea at a designer and asking them to do more than throw a crappy sketch together.
Design Delivery
A process that ensures all team members are aligned with the intended design (true cradle to grave). A process that involves product development to turn mock-ups and user insights into a working and acceptable solution.
It is NOT turning your back on the design when it crosses out of your realm. Ensure that the teams in your proximity are aligned. The days of throwing stuff over the wall from development to ops has a not so new name (DevOps of course), but the old habits must die. It’s all our problem.
Summary
It might not be sexy, but dealing with the basics is of critical importance. An exception that occurs as part of normal business is not an exception. Being exceptional is what sets mediocrity from greatness. Make that extra 10% investment and get ahead by digging in deep to what you’re involved in.
// Dave
- Tags: microsaas
- Categories: blog