Skip to content

You talk to the engineers, not an account manager hello@arktik.id

Photo by Ricardo Gomez Angel on Unsplash

Guide

October 23, 202611 min readTika Aurora

Software Architecture and Future-Proofing: What Owners Should Decide, Not Developers

Architecture is sold as a technical topic, but the decisions that determine whether software survives five years are business decisions. Whether the technology is conventional, whose name the accounts are in, whether the reasoning behind each choice is written down, and how quickly a new developer can run the system all sit with the owner. Every one of those has a checkable answer rather than an opinion, and none of them requires you to read a line of code. This guide covers what future-proofing protects you from and the questions to put to any vendor before you sign.

Durable software comes down to three things, and architecture decides all of them: whether someone other than the original builder can maintain it, whether you can change vendors without rebuilding, and whether the process it supports can change without taking the system apart.

Plenty of architecture is genuinely a developer's job, such as how the database tables are shaped or how one part of the system calls another. The four decisions that matter most to the business are yours, and you can check each of them yourself. The split is about who sets the constraints: you insist on conventional technology, accounts in your name and recorded reasoning, and the developer picks the implementation inside those limits. If you are commissioning software for the first time and want the whole process rather than this one slice, start with our guide to commissioning custom software.

What future-proofing actually protects you from

Custom software goes wrong in three ways, and none of them announces itself in the first year.

The first is a system nobody but its author can maintain. A new developer opens the code, finds a framework they have never used, and quotes for a rewrite instead of a repair. From your side that reads as buying the same system twice. The cheaper version of the same problem is a repair made blind: the second approval step on orders gets removed because nobody could see what it was for, and months later a payment goes out that nobody checked.

The second is a vendor you cannot leave. The repository sits in their account, the server is in their name, the domain too. Every small request goes through one door and the price is set at that door. What you pay tracks their position rather than the size of the job.

The third is the one growing businesses hit most often: a system that cannot absorb a process change. You open a second location, add a sales channel, or change how discounts work, and it turns out the old rule is written into a dozen places in the code, so a change that sounded trivial in a meeting means editing all of them and testing each one.

Architecture decides which of those three you end up with, which is why the choice should not sit entirely with the party who will not be living with the consequences.

The four architecture questions an owner can ask without being technical

Each of these has an answer you can verify rather than one you have to believe:

  • Is the technology conventional or exotic? What you want is technology with many users and a clear maintenance history. Ask for the names, then use job listings and the number of developers in your market who work with them as a rough check on that.
  • Whose name are the accounts in? Ask for the list, then log into one of them with your own company email.
  • Where is the reasoning for each decision recorded? Ask to be shown one entry, not promised that entries exist.
  • How long does a new developer need to run the system on their own laptop? If the answer involves hand-holding from the original team, you already have a dependency problem.

None of that asks you to judge code quality. All of it asks about structure, ownership and records, which a non-developer can inspect.

Boring technology is the cheapest insurance

Proven, widely used technology has one advantage that is hard to beat: the number of people who can pick up where the last person stopped. When your developer takes another job, you are hiring from a large pool rather than a list of ten names.

Unusual technology also produces more surprises at upgrade time. A library stops being maintained, the documentation is thin, and nobody else has hit the same problem in a way you can copy.

Exotic choices usually serve the builder. Developers want to try new things, which is a reasonable thing to want, but the five-year maintenance bill lands on your business. We build on proven, conventional technology and record the reason for each decision alongside the code, so the next developer inherits the thinking rather than a folder of files.

What you are looking for is technology with many users and a clear maintenance history, which is not the same as technology that is old.

Ownership lives in the accounts

Most contracts name the client as owner of the code. A clause gives you something to point at if the relationship goes wrong, while an account in your name lets you log in this afternoon and change the password. Where the accounts sit is what settles the question.

Five places are worth checking: the code repository, the server or hosting service, the domain, third-party services such as payments and messaging, and the email service. If all five are registered to your company email, you can change vendors without asking anyone's permission. If one of them sits with the vendor, leaving depends on their cooperation.

With us, the code, servers, domain and every account are in the client's name from day one rather than transferred at the end of the project. Handover only confirms what was already theirs. No part of the system depends on us continuing.

The difference shows up at the worst possible moment. If the relationship sours halfway through, a promise of ownership becomes a negotiation. Accounts already in your name are not up for negotiation.

Writing decisions down is what makes a system inheritable

The next developer who opens your code is rarely stuck on syntax. They are stuck because nobody recorded why something was built the way it was.

Why does order approval have two steps? Why is stock data kept separate from sales data? Why does the shipping integration go through a single point instead of being called directly from several pages? With no record of the reasoning, a new developer guesses, and the guess usually simplifies something that was deliberately made complicated, which is how a check like that second approval step quietly disappears.

Undocumented code locks you in whether or not anyone meant it to. The author is the only person holding the reasons, and those reasons live in their head. A paragraph sitting beside the code, saying why the second approval step exists and what happens without it, is what the next developer actually needs.

Records cover decisions that had alternatives, the reason each alternative was rejected, and the constraints that have to hold. Everything else belongs in the code itself. Keep the records where the files are, so whoever opens them reads the reasoning too.

Build for the change you can already see

Over-building costs as much as under-building. A system designed for a million users when twelve admins use it is slow to deliver, expensive to maintain, and hard for a new developer to understand.

Design for the processes you actually run now, then leave clear seams where change is likely. Discount rules get renegotiated, usually one large customer at a time, and the pricing logic has to follow. Someone in finance asks for the same sales split a new way, by location or by salesperson. A new channel arrives, a marketplace listing or orders coming in through a messaging app that somebody is keying in by hand today. Those are the points to build so they can be changed without disturbing anything else.

Change you cannot describe today does not need to be built for today. How to start from the smallest version that is already useful is covered in MVP development: start small, scale fast.

One architecture decision gets skipped more than any other: building nothing. If your problem is invoicing, scheduling or a standard online shop, an existing subscription tool usually does it better and cheaper. When that is the case we will say so and point you at the tool. How to weigh it up is in custom software or an off-the-shelf tool.

How staged delivery keeps architecture honest

Architecture choices are cheap to change in week two and expensive to change in month five, so how a vendor works shapes what the architecture ends up being.

Scope and price for each stage are agreed in writing before that stage starts, so you can stop after any stage. The first commitment is Discovery, which produces a written plan and a fixed price, and that plan stays yours whether or not you carry on with us.

You also do not wait until the end to see the shape of the system. During the build there is working software every week plus a private preview link from the first week. The person who runs the process can open that link and click through the steps they do daily, in the order they really do them, and that is usually where a mismatch shows up: approval sitting with the wrong role, or a step the team skips in practice being mandatory in the software. Raise it in week three and the next demo shows the change. The same objection in month five is a rewrite.

A single reveal at the end hides every one of those choices until it is too late to argue about them. The logic behind working this way is set out in agile and lean development for businesses. The technical mechanism that lets changes ship often without breaking what already runs is in CI/CD explained for business owners.

Questions to put to any vendor before you sign

The five requests below fit in one message, and how a vendor answers tells you a great deal.

Name the technology and the reason for it, in language you can repeat to someone else. An answer that lists names without reasons means the choice was habit rather than judgement.

Show the account list and whose name each one is in. Ask for one account to be opened with your company email now rather than later.

Show one real decision record from another project, with the confidential parts removed. You are not judging how tidy it is, only whether such records exist at all.

Describe the handover: what you receive, who can continue the work afterwards, and how long a new developer needs to get the system running.

Last, ask what they would refuse to build. A vendor who has never turned anything down has never put a client's interest above the value of a proposal.

Bring the process you are worried about

There is no deck here and no checklist to download. Pick the process that worries you most, whether because one person is the only one who understands it or because the spreadsheet has started producing wrong numbers, and talk it through on a free first call.

If the honest answer is a subscription tool, we will say so. If it does need custom software, Discovery produces a written plan and a fixed price, and both stay yours whether or not you continue with us.

Message us on WhatsApp at +62 851-1769-7889 or email hello@arktik.id.

Bring the process you are worried about

A free first call, no deck. Describe the process that worries you most and we will say whether it needs custom software at all. Discovery gives you a written plan and a fixed price that stays yours either way.