On this page
- The signals you have outgrown your software
- The spreadsheet tax: costing the workaround honestly
- When custom is the wrong answer
- Drawing the line between buy and build
- What building it properly actually involves
- Regional realities in the UAE and Saudi Arabia
- Ownership, cost and choosing a partner
- Frequently asked questions
The signals you have outgrown your software
Software almost never announces that it has stopped fitting. There is no outage, no error message, no moment where the tool declares itself unsuitable. Instead the business quietly routes around it, and because each detour is individually reasonable, nobody notices the accumulation until the official system has become a place where data is stored after the real work has happened somewhere else.
The signals are consistent across the companies we see in Dubai, Riyadh and India, and they are worth naming plainly. Someone exports to Excel, does the actual work there, and imports the result back — which means the system holds the record but not the process. A team maintains a private tracker "because the system can't do it that way". The same information is typed into two systems by two different people, and they disagree by Thursday. Onboarding a new joiner requires a person to explain which fields are lies. Your most experienced staff are valuable partly because they know the workarounds. The licence bill grows every year for seats used at a fraction of their capability. And, most tellingly, a change the business considers small — a new pricing rule, an extra approval step — is met with a quote and a six-week wait.
Any one of these is a quirk worth tolerating. Software is a compromise and every organisation lives with some friction. What matters is the pattern, and specifically where the pattern sits. Friction around expense claims is an annoyance. Friction around the process that actually earns your revenue is a structural problem, because it means the thing you do differently from your competitors — the reason customers choose you — is the thing your software cannot express.
The question worth asking: is the workaround protecting a bad habit, or protecting a genuine competitive advantage? If your people work around the system because the system is wrong about your business, that is a case for building. If they work around it because nobody trained them, buying more software will not help either.
The spreadsheet tax: costing the workaround honestly
The reason these situations persist for years is that the cost is real but invisible. A licence renewal arrives as an invoice and gets scrutinised. Four hours a week of manual reconciliation arrives as nothing at all — it is simply absorbed into what people do, and it never appears in a budget line anyone can challenge.
So make it visible. Count the hours actually spent moving data between systems, re-keying, correcting, reconciling and chasing. Add the decisions delayed because the report took three days. Add the errors that reached a customer, and what fixing them cost in credit notes and goodwill. Add the key-person risk sitting in the one spreadsheet that runs a critical process and lives on one laptop. Then set that annual figure against a build. In our experience the number surprises people, and it frequently reframes a conversation that had been stuck on the sticker price of development.
Do the arithmetic honestly in both directions, though. Sometimes the total is genuinely small, and the correct engineering decision is to leave it alone and spend the money elsewhere. A workaround that costs two hours a month is not a business case; it is a rounding error with a story attached.
When custom is the wrong answer
We build custom software for a living, so it is worth being direct about when we would tell you not to. Getting this wrong is expensive, and the failure is slower and quieter than a failed purchase.
- The function is a commodity. Accounting, payroll, email, storage, video calls. These are solved, regulated and maintained by people whose entire business is keeping them compliant. Rebuilding them buys you nothing and commits you to their upkeep forever.
- The real problem is process, not software. If three departments disagree about how the work should run, custom software will faithfully encode the disagreement and cost you a great deal to do it.
- Nobody internally will own it. A custom application needs a business owner who decides what it does next. Without one it stagnates, and in three years it is the legacy system you complain about.
- There is no appetite for continuing cost. Custom software is a commitment, not a purchase. If the budget covers the build and nothing after it, buy something instead.
- You are chasing a feature, not a fit. One missing capability rarely justifies replacing a system that otherwise works.
Drawing the line between buy and build
The most useful question is not "should we build software?" but "which parts of this?" Very few organisations should build everything, and very few can buy everything. The competent answer is nearly always a boundary — and drawing it deliberately, rather than letting it emerge by accident, is most of the value of the exercise.
| Option | Right when | Where it breaks |
|---|---|---|
| Off-the-shelf | The function is standard and regulated, and your process has no reason to differ from anyone else's. | When your differentiator meets it. You then customise until upgrades are impossible, or you abandon the differentiator. |
| Low-code / configured platform | Internal tools, approvals, forms over data. Things that would otherwise never be built at all. | Complex logic becomes untestable, per-seat pricing bites at scale, and you cannot take the platform with you. |
| Custom application | The process is genuinely yours, it is load-bearing for revenue, and you will own it for years. | When applied to commodity functions, or when nobody in the business is accountable for what it does next. |
In practice the healthiest estates we work on look the same shape: a bought platform holding the ledger and the statutory obligations, custom applications wrapped around the two or three processes that genuinely distinguish the business, and clean APIs between them. That boundary is what lets you upgrade the package without renegotiating your entire operation, and it is why custom application development and ERP work so often turn out to be the same conversation viewed from different ends.
What building it properly actually involves
The failure mode of custom software is not usually bad code. It is building the wrong thing carefully. Requirements gathered by asking managers what they need produce a description of what they believe happens; the software then meets that description and fails on contact with what actually happens. Watching the work being done — sitting with the person doing the reconciliation, seeing the spreadsheet they will not admit to — reliably produces different and better requirements than any workshop.
Scope is the other discipline. A first version that replaces one painful process typically takes three to six months, and that is deliberately narrow. Anything scoped to deliver nothing for a year should be treated with suspicion: requirements drift, sponsors move on, and the business will not hold still while you build. Ship a slice into real use, learn from what people actually do with it, and expand from evidence rather than from the specification you wrote before you knew anything.
- Integrate early, not last. The connection to the ERP, the bank or the gateway is where the risk lives. Prove it in week two, not month five.
- Design for the phone if the work happens there. Field, warehouse and site staff will not open a laptop, and a desktop-only tool aimed at them simply will not be used.
- Build the boring parts. Audit trails, permissions, error handling and observability are what let the system be trusted with something that matters.
- Keep it conventional. Ordinary technology that any competent team can pick up beats a clever in-house framework only the original authors understand.
Regional realities in the UAE and Saudi Arabia
Building for the Gulf adds constraints that generic advice tends to skip, and they are architectural rather than cosmetic. Arabic and right-to-left support is the clearest example: it is not a translation step but a layout decision, and retrofitting it into an application designed only for left-to-right is close to rebuilding the presentation layer. If there is any prospect of Arabic — and in Saudi Arabia there almost always is — build bidirectionally from the first screen even if you ship English first.
Tax and compliance reach further into custom applications than teams expect. Anything that produces an invoice in Saudi Arabia is caught by ZATCA's e-invoicing regime, which is a genuine engineering obligation rather than a formatting rule, and the UAE has its own VAT and corporate tax requirements with a phased e-invoicing programme announced. The practical implication is that a custom application which touches billing should either delegate invoicing to a compliant system or be built knowing it has inherited a permanent regulatory commitment. Data residency is the third factor: government, healthcare, banking and telecoms face the strongest expectations of keeping data in-country, which is now largely a configuration and cost decision given the cloud regions available in both countries.
The last one is human. Many custom applications here are used by a genuinely multilingual workforce — Arabic, English, Hindi, Urdu, Malayalam, Tagalog — often on older Android devices with intermittent connectivity on a site or in a warehouse. That reality should drive the design. Offline tolerance, large touch targets and interfaces that survive a poor connection matter more than visual sophistication, and where the work happens away from a desk it usually belongs in a mobile application rather than a web portal. Where a process involves reading documents or classifying incoming work, it is also worth checking whether AI development can remove the step entirely rather than building a better screen for it.
Ownership, cost and choosing a partner
Two things determine whether a custom application is an asset or a liability, and neither is technical. The first is ownership. Your company should own the repository from the first commit, the cloud accounts should be in your name, and the contract should assign all intellectual property to you on payment. This is the clause that decides whether you can change supplier without rebuilding, and it costs nothing to agree at the start.
The second is continuity. Custom software is a commitment: dependencies need patching, platforms move, and the business will want changes. Budget for a continuing engineering allocation rather than treating handover as the end. Ask any prospective partner what they have maintained for several years rather than what they have launched, ask who is actually writing the code and where they sit, and ask how a handover to another team would work — the quality of that answer tells you a great deal.
The structure we have found works for this region is depth of delivery in India combined with people present in Dubai or Riyadh who can sit with your stakeholders and deal with the bank, the auditor or the gateway in person. You can see the shape of that in our work.
Frequently asked questions
How do we know we have genuinely outgrown off-the-shelf software?
Look for work happening outside the system rather than inside it. The reliable signals are exported spreadsheets that get re-imported, staff maintaining private trackers because the official tool cannot express their process, data re-keyed between systems, and a licence bill that keeps growing for seats nobody uses properly. One workaround is a quirk. A pattern of them, especially around the process that makes you money, means the software and the business have diverged. Cost the workaround honestly in hours per month before deciding — that number is usually the whole argument.
Isn't custom software always more expensive than buying?
More expensive to start, not always more expensive to own. Packaged software has a licence cost that recurs forever and typically rises with headcount, plus the ongoing cost of every workaround it forces. Custom software has a high initial build and a lower, but never zero, running cost. The crossover depends on how many users you have and how badly the package fits. Where custom loses decisively is on commodity functions — nobody should build their own accounting engine — and where it wins is where the process is genuinely yours.
What about low-code platforms?
They are genuinely useful and often the right answer for internal tools, approval workflows and forms over data — things that would otherwise never get built. The limits appear in three places: complex logic becomes hard to test and review, per-user pricing can become punishing at scale, and you are locked to a vendor whose platform you cannot take with you. A reasonable rule is to use low-code where the cost of rebuilding it later is acceptable, and to write real code where the application is load-bearing for the business.
How long does a custom application take to build?
A focused first version that replaces one painful process typically takes three to six months in our experience, and that is the right size to aim for. Anything scoped beyond about six months before it delivers value should be treated with suspicion, because requirements drift, sponsors change and the business will not stand still while you build. The successful pattern is to ship a narrow slice into real use, learn from it, and expand — not to specify everything up front and hope the specification is still accurate at the end.
What happens if our development partner disappears?
This is a contract and hygiene question, and it should be settled before you start rather than after it goes wrong. Your company should own the repository from the first commit and the cloud accounts should be in your name, not the vendor's. Insist on conventional technology rather than an in-house framework only they understand, on documentation and automated deployment so a new team can run the system without archaeology, and on a written exit plan. Handled properly, changing supplier is disruptive but survivable. Handled badly, it means a rebuild.
Can we replace only part of our existing system?
Usually, and it is generally wiser than a full replacement. The common approach is to leave the system of record in place, build the new application around the specific process that hurts, and integrate through APIs. This limits blast radius, delivers value early, and lets you stop if the results are not there. It requires that the incumbent system can expose or accept data, which is worth verifying before you plan around it — some older products make integration deliberately difficult, and that constraint changes the design.
Wondering whether to build or carry on working around it?
Describe the process your team exports to a spreadsheet. We will tell you honestly whether it is worth building, worth buying, or worth leaving exactly as it is.