Scalable custom software: what the design decides and how to assess your supplier

A large new client, a second location, a campaign that takes off, an integration that doubles your data traffic: growth rarely arrives on the schedule you planned for it. Does your software grow with you, or do you discover in the busiest week of the year that the system is full? By then that answer has long been settled, in choices made at the start of the project.

You don’t need to make those choices yourself. You do need to be able to check whether they were made. So first, what in the design determines whether software grows with you, then the questions to ask a supplier, the answers that build trust and the signals that point to risk.

Scalability lives in the architecture, not in bigger servers

The first instinct when a system slows down is a bigger server. That helps for a while, but it changes nothing about how the software itself is built. It’s that architecture, the way an application is divided up and how those parts work together, that determines how expensive growth becomes later. If everything is tangled together, every growth spurt means renovating while the traffic keeps flowing.

Four design choices do most of the work here. A modular structure lets components work independently of each other: add a customer portal later, and the planning module doesn’t need to be opened up to fit it in. A well-considered database design keeps the system fast, even with millions of records instead of thousands. Cloud infrastructure makes capacity flexible: extra processing power at peak times, scaling back once things quieten down. And a well-designed interface, the API, determines how easily you can connect other systems later, from accounting software to a webshop; without a well thought-out API, every new connection becomes a project in its own right.

More users is a different question than more features

Scalability has two sides that often get mixed up in conversation. Technical scalability is about volume: handling more users, more data and more traffic without performance dropping off. Functional scalability is about change: adding new features and modules without breaking what’s already there.

A system can score well on one and stall on the other. An application that handles ten times as many users, but where every change affects three other screens, slows your organisation down just as much as a slow one. Thinking about growth means looking at both, and asking your supplier about both.

Growth happens in steps, not with the heaviest technology

More technology isn’t automatically better. Microservices, where a system is split into separate services that can scale independently, sound impressive, but the maintenance burden they bring only pays off at real scale. For most organisations, a well-structured application built as a single whole is the wiser starting point; when that trade-off does tip the other way is covered in our article on microservices.

In practice, good custom software grows the way an organisation does: step by step. You start with a core that solves today’s biggest question and expand once the next need becomes concrete. That spreads the investment, and it stops you betting on requirements that have already shifted by the time the system goes live. For how a first version like that relates to a complete system, read the difference between an MVP and fully built-out software.

The questions that sharpen the conversation with your supplier

You don’t need a technical background for this conversation. These questions force concrete answers:

  • What has to change in the system if the number of users grows tenfold?
  • Where does the first bottleneck sit, and what shows that?
  • What does a new module or integration touch in what’s already there?
  • How do you test the load before the application goes live?
  • What do you measure once the application is running, and who steps in when something’s off?
  • Which results do you cache temporarily, so the system doesn’t have to recalculate every request from scratch?

Answers that build trust

A good partner answers these questions without hesitation and names trade-offs rather than guarantees. The first bottleneck often sits in the database. A strong answer explains how it’s set up for that and what the next step is once pressure builds: spreading read traffic across multiple copies, caching frequently requested data, running heavy calculations outside peak hours.

Pay attention, too, to how the supplier talks about measurement. Load tests, which simulate peak traffic before users encounter it, are part of delivery. Monitoring should then keep showing how the system performs. Perhaps the best answer you can get is that something isn’t needed for your situation yet: a supplier who dares to leave things out isn’t selling you technology you don’t need.

Answers that point to risk

Some answers deserve a follow-up question. “We’ll deal with that when it happens” usually means there’s no measurement plan. Scalability as a sales term, without a testing approach or measurements behind it, is a promise without proof. And without monitoring after go-live, your users become the first alarm bell.

The opposite is a signal too. An architecture so complex that only its builder still understands it makes you dependent and slows growth down. Scalability isn’t a matter of piling on as much technology as possible, but of choices that fit where your organisation stands now and where it wants to go.

Signs that your current system is reaching its limits

If you already have an application running, that limit almost always gives warning first. The signs we come across most often:

  • Screens slow down at busy times or fail under peak load.
  • Staff work around the system, with loose lists and spreadsheets.
  • New requirements no longer fit; every change unexpectedly affects something else.
  • New tools or packages won’t connect to what’s already there.

Recognise more than one of these, and it’s worth acting before things get tight: the longer a system runs against its limits, the more expensive the fix becomes. With a well-designed application, expanding is almost always smarter than starting from scratch. That does take maintenance: monitoring, timely updates and regular optimisation are less visible than new features, but they determine how long a system lasts. Through ongoing development and maintenance we keep existing systems healthy and grow them alongside the organisation behind them; when in doubt, we look at what’s already there first.

If a project is coming up, hold these questions against the proposal in front of you; the answers quickly tell you who you’re dealing with. To see how we approach this ourselves, take a look at custom applications.

Let’s talk

Every good solution starts with a conversation.

Have a question about something you read here? Get in touch - we’re happy to talk it through.