At a glance
- Impacting change through software design improvements isn't a race, it's a journey
- Understanding the incremental stages through which your company needs to evolve is central to realising your ultimate goals
- Strive for the linearity of flow; it's far better to be reliable than it is to be flashy
When it comes to designing our software, we think that it’s important to think in increments. Everybody, ultimately, is focused on some sort of end goal. They look at the way that their processes are currently working and know that everything could be working better, quicker, smarter. But it’s important to remember that change isn’t something that should be rushed; it’s a process.
Knowing the end goal is important. When we design, we think of complete automation as the ultimate marker of ease and efficiency. No company is yet at a stage where they can automate everything; so we don’t design for full automation. Put simply, it’s just not useful yet. Software is only really useful to people in the real world, right now, and not people who might exist in a shaky future.
So we take a step back. From knowing what perfect automated processes should feel and look like, we think about how these processes work when humans are added in. And we keep working backwards until we get to the point which people are currently working from. Know what the ultimate goal is; know which steps need to be taken in order to get there.
A rational approach to software design
Any improvements in efficiency need to make sense. When you think about the whole fulfilment process - from a sales order coming in to the point that the order is picked up by a carrier - you need to think about how each small change is going to benefit the whole. Because if it’s going to make no difference...then, ultimately, what’s the point?
It’s like when you take a flight. You could choose to use a meet-and-greet service, instead of parking further away from the airport. You could choose to fasttrack the security queue inside. You could choose speedy boarding. You could choose a seat that’s right next to the door. But if you’re stuck at baggage claim and all of the people who didn’t choose to speed up each element of the journey get their bags before you, then all of those improvements are ultimately null and void. Useless. They feel good in isolation, but there’s no greater purpose.
Don't rush; focus on what's actually useful
So when we look at designing software, we focus in on improving elements that will benefit the whole. We look at which points in the fulfilment process should be sped up, and which should be left alone for the time being. It’s possible to move too quickly. It’s possible to introduce incredibly flashy upgrades that look good on paper, but offer little use. It’s possible to end up being useless.
Focusing on being useful in the real, living, working world is far more important. What we typically try to do is to balance improvements to efficiency across all of the different processes within the warehouse. That way, we aim to create a constant flow of improvements that encourages a gradual move towards an end goal without harming the reliability of your resources. We strive for the linearity of flow, for useful improvements.
Knowing where you want to be is great. But remember; it’s always going to be a journey. It’s working out how you’re realistically going to get there that’s the most important thing.