Software systems are vital in businesses - little works without them - but we don't always stop to think about their objectives. Systems often have multiple objectives as the recent issues at NATS illustrate. This article explores business system objectives and their importance, particularly during the design phase.
Software systems are the oil that enables modern business to work smoothly. Often, it’s when things go wrong that we realise just how important they are. Only last month the UK headlines were dominated by air traffic control problems. Queues in airports, people sleeping on the floor, questions in the House. It wasn’t good.
Any mention of NATS in the news catches my attention. We built a system for NATS and worked closely with some of their engineers. The people we worked with were dedicated and thoughtful about how to improve systems and information flow.
Whilst all software can contain defects, not all software has to manage safety in quite the way that air traffic control must. The preliminary investigation report from NATS revealed a defect in a legacy system, hidden until a very specific timing issue caused data corruption. This resulted in systems behaving as they should under these circumstances, requiring air traffic controllers to manually undertake some tasks. This reduced the air traffic service that could be delivered, resulting in cancelled flights, delayed flights, and headlines across the news.
They had procedures in place to manage the situation. These had already been practised and were followed when needed. In an imperfect world, safety was maintained, which was the key objective.
Although businesses use many different systems, they all have objectives. Whilst the UK’s air traffic control system might be atypical, it too has objectives, including safety. But safety isn’t the only objective. Their systems also have to be efficient and accurate.
Software systems can help you to get things done faster, cheaper, and better than your competitors, and understanding a system’s objectives is part of that. Had NATS prioritised efficiency and cost over safety, the headlines could have been very different.
When we stress the importance of thinking carefully about the business objectives for a new system, it is with good reason. Objectives may not be obvious, but careful thought in the early stages will pay dividends later.
Seven system objectives
- Time. Reducing the length of time a process takes.
- Cost. Reducing the resources consumed, such as staff time or money.
- Quality. Improving accuracy and reducing errors and omissions.
- Consistency. Making sure the process is carried out the same way every time.
- Visibility. Consider who needs information, how current and accurate the information needs to be, and how it should be presented.
- Risk/safety. The definition of risk or safety depends on the business.
- Flexibility. Accommodating exceptions, unexpected circumstances and planned changes. The degree of flexibility required can affect other system objectives.
Systems may have more than one objective, and sometimes objectives conflict. Being clear about what is most important can have a bigger impact on the success of a system than many people realise.
Recognising that trade-offs are sometimes required helps everyone understand the impact of their decisions, particularly during the design phase of a new system. For example, increasing the flexibility of a system can add to costs and complexity. Improving consistency may reduce flexibility. This depends on how a system is designed, of course, but still needs to be considered.
In the age of AI, understanding risk, safety, automation, and when people need to intervene will only become more important. Drop your ideas in the comments about systems objectives, and when they support business goals. Or not.
And if you think one of your systems needs some attention, get in touch for a preliminary chat. It costs nothing but might make a difference.