Software Development & Bespoke Business Applications
Reporting, internal tools, data work and CRM replacements, built when buying something does not work and not before.
Build the thing the spreadsheet is standing in for
In short: Bespoke applications, reporting, data work and CRM replacements for jobs no off-the-shelf product does properly. Starts by trying to talk you out of building: most requirements that arrive as a software project are a configuration problem, and the ones that are not usually turn on data rather than code.
Almost every business has a job that runs on a spreadsheet, held together by one person who understands it. It works right up until they are on holiday, and then it is the most expensive thing you own.
The problem
Manual reporting and spreadsheet processes do not fail loudly. They quietly consume a day a week, produce numbers nobody fully trusts, and concentrate the knowledge of how the business actually works in one person who is one resignation away from taking it with them.
What we would do
Start by trying not to build. Bring the job as it happens today, including the manual steps and the workarounds, and we will tell you whether it is a configuration change to something you already own, a product you can buy, or genuinely a build. Where it is a build, do the smallest useful version first, in production, with real users, before committing to the rest.
- If a product on the market does most of it, buy the product and live with the compromise. Bespoke software that exists to avoid a compromise is the most expensive kind.
- If the data you need is trapped somewhere nobody has ever got it out of, that is the project. Prove the extraction before anyone designs a screen.
- If the process changes every few months because the business is still working out how it operates, writing it into software freezes a decision you have not made yet.
When we are not the answer: If you want a large team to deliver a long fixed-scope programme against a specification that is already written, we are the wrong shape and you should use a firm built for that. We are worth paying for when the requirement is still a frustration rather than a document, and when whatever gets built has to live alongside the Microsoft estate, the identity model and the security controls that are already there.
We build the software that sits in the gaps: the reports your systems will not produce, the internal tools that replace a shared spreadsheet, the integrations that stop somebody rekeying the same order into two places, and occasionally a full application where the market has nothing that fits how you work.
More on how we deliver development
The difference between us and a development shop is what happens around the code. We already run Microsoft estates, identity, security and backup for our clients, so what we build authenticates against the identity you already have, respects the permissions you already set, gets backed up, gets patched, and does not arrive as an orphan nobody can support. Most bespoke software fails after go-live rather than during the build, and that is why.
Systech is founder-led by Ryan Mangan, a Microsoft MVP for Azure Virtual Desktop and Windows 365, a Chartered Fellow of the BCS (FBCS) and author of Packt's two-edition Mastering Azure Virtual Desktop.
Everything you need, managed for you
When should you build software rather than buy it?
Rarely, and the honest test is whether the thing you want is genuinely how you compete or merely how you have always done it. Almost every requirement that arrives described as a software project turns out to be one of four things, and only the last is a build.
In order of how often we see them:
- A configuration change to a product you already pay for, usually because nobody has been through the settings since it was installed
- A reporting problem, where the data is all present and simply cannot be got at
- A process problem, where software would automate something that should not be happening at all
- A genuine gap, where the market has nothing shaped like your business
The strongest signal for a real build is that the process is specific to how you make money and you have already tried to buy it twice. The strongest signal against is that a product does most of it and the objection is a compromise on the edges, because the cost of avoiding that compromise is not the build, it is owning the result for the next decade.
We will say which of the four we think it is at the end of the first conversation, and we say it before anyone is quoted, because a supplier who only ever finds reasons to build is not giving you advice.
Why can our systems not produce the report we need?
Usually because the data is fine and the reporting layer is not, which is why the answer is rarely to replace the system. Business applications are designed around entering and processing records rather than answering questions across them, and their reporting tends to be a fixed set of views the vendor thought of.
The second reason is that the question spans systems. The report somebody actually wants joins the finance system to the CRM to the job scheduler, and no single product has all three, so a person becomes the join and does it by hand in a spreadsheet every Monday.
The fix is to get the data out on a schedule, put it somewhere designed to be queried, and build the reporting on that rather than fighting the source system. That also removes the risk of reporting queries slowing down the thing people use to do their jobs.
The part that decides the cost is extraction. A system with a documented API is straightforward. A system with a supported database connection is fine. A system where the only route out is a screen, and a vendor who charges for exports, is a different project, and it is worth finding out which you have before anyone designs a dashboard.
How do you replace a CRM without losing the history?
By treating the data migration as the project and the new CRM as the easy part, because the reason CRM replacements go badly is almost never the new product.
The first job is deciding what actually comes across. Years of records include duplicates, contacts who have left, opportunities that were never closed and fields that three different people used for three different purposes. Migrating that faithfully means paying to move a mess into somewhere new and then distrusting the new system within a year, so the cleaning happens before the move rather than as a tidy-up afterwards.
The questions that decide how hard it will be:
- What has to come across as live working data, and what only needs to be readable if someone asks
- Which integrations depend on the current CRM, including the ones nobody documented
- Whether anything downstream, such as invoicing or a customer portal, reads from it
- What the reporting on the old system was, because that is what people will compare against on day one
A frequent and cheaper answer is that the CRM is fine and the way it has been set up is not. If the objection is that it has become the wrong shape, it is worth an hour establishing whether the shape is the product or a decade of accumulated configuration, before paying to move.
What does AI actually do inside a service desk?
The useful work is unglamorous: reading a ticket as it arrives, working out what it is about, routing it, drafting a first response from material that already exists, and pulling together the context an engineer would otherwise spend five minutes gathering.
That is where the time goes on a busy desk, and it suits automation because the volume is high, the shapes repeat, and a human still reviews the output before it reaches the customer.
What matters is the boundary. An AI step should draft rather than send, suggest a category rather than silently close, and be measured on whether an engineer accepted its suggestion. The moment it acts unreviewed on a customer-facing channel, the failure mode stops being a wasted minute and becomes a wrong answer sent under your name.
It also has to answer from your material rather than in general, because a drafted reply is only worth having if it is grounded in your documented fixes and the customer's actual configuration. That is a retrieval problem before it is an AI one. Where that grounding is the substance of the project rather than one component of it, it is engineering in its own right, and the AI engineering page covers it properly.
What happens to bespoke software after it is built?
This is the question worth asking every supplier, including us, and it is the one that decides whether the investment survives. Most bespoke software does not fail during the build. It works, it is handed over, and then eighteen months later nobody knows how to change it, the person who commissioned it has moved on, and it is quietly worked around.
So the things to settle before anyone writes code:
- Who owns the source code and where it lives, in writing
- What it runs on, who patches that, and what happens when the platform underneath it changes
- How a second developer would pick it up, which is a documentation and structure question rather than a promise
- What support means in practice: how changes get requested, how they get priced, and what happens when it breaks on a Monday morning
- How you would leave, and what you would be left holding
Our answer is that you own the code, it runs on infrastructure you own or we manage transparently, and it is built to be handed to someone else, because software you cannot leave is not an asset. It is also why we would rather build something small that survives than something impressive that becomes a liability.
How do you keep a bespoke build from overrunning?
By making the first commitment small and the first delivery real. The pattern that fails is a long build against a specification agreed at the start, because that specification was written when everyone understood the problem least, and nobody finds out it was wrong until the end.
So the first stage is scoping, priced as its own fixed piece of work, and its output is a written scope of the problem separated from the solution somebody had already imagined. That is deliberately small: it is where you find out whether the data comes out, whether an existing product would do, and what the real effort is, before there is any pressure to keep going.
After that, the smallest genuinely useful version goes to real users in production. Not a prototype and not a demonstration, because neither tells you anything reliable. People use software differently from how they describe using it, and the first fortnight of real use changes more requirements than any workshop.
The cost driver, almost always, is integration rather than the application itself. Screens are predictable. Getting clean data out of a system that was never designed to give it up is not, which is why we try to prove the hardest extraction first rather than leaving it until the end when the budget is spent.
| If this is true | What it usually is | What to do |
|---|---|---|
| A product does most of it and you object to the edges | A buying decision, not a build | Buy it and accept the compromise. Avoiding it costs more than it saves |
| The data exists but nobody can get a report out | A reporting and extraction problem | Get the data out on a schedule and report on that. Leave the source system alone |
| One person runs a critical process in a spreadsheet | A key-person risk wearing a software costume | Build the small version of it, mostly to get the knowledge out of one head |
| Two systems hold the same records and someone rekeys | An integration, usually a few days | Integrate. This is the cheapest work on this page and the most often deferred |
| The process changes every few months | A business still deciding how it works | Do not write it into software yet. You would be freezing a decision you have not made |
| Nothing on the market is shaped like your business | A genuine build | Scope it properly, ship the smallest useful version to real users, then decide |
Questions we hear a lot
How much does bespoke software cost?
We scope before quoting, because the honest answer depends almost entirely on the data rather than the screens. Two applications that look identical to a user can differ several times over in cost depending on whether the systems involved give their data up cleanly or have to be prised open. That is why the first stage is a fixed-price scoping piece with a written output: a small, visible commitment that tells you what the real effort is, and you keep the scope whether or not you go ahead with us.
Who owns the code you write for us?
You do, and it belongs in the contract rather than in an assurance. The source lives in a repository you have access to, it runs on infrastructure you own or that we manage transparently, and it is built so another developer could pick it up. Software you cannot take elsewhere is not an asset, it is a dependency, and any supplier who is vague on this question is telling you something.
Will you tell us not to build something?
Regularly, and it is most of the value of the first conversation. Most requirements that arrive as a software project turn out to be a configuration change to a product you already pay for, a reporting problem where the data is all present, or a process that should be removed rather than automated. We would rather lose a build and keep the relationship than sell you something you will resent owning in two years.
Can you build reports from a system that has no reporting?
Usually, and the question that decides it is what routes exist to get the data out. A documented API or a supported database connection is straightforward. A system whose only export is a screen, or whose vendor charges for data access, is a harder and more expensive project. It is worth establishing which you have early, because it changes the cost far more than the complexity of the report does.
How is this different from your AI engineering service?
This page is about building an application, which may use AI as one component among several. The AI engineering page is for when the AI is the engineering problem itself: retrieval over your own documents, grounding, model selection and evaluation, where getting the right passage in front of the model is the substance of the work. A ticket-triage skill sits here. A system that has to answer questions accurately from a decade of your documentation sits there.
What happens if the developer who built it leaves?
That risk is a design decision rather than an accident, which is why it is worth asking about before the build rather than after. The mitigations are structure, documentation written for a stranger, and code that follows ordinary conventions instead of clever ones. It also matters that we are a business that runs your systems rather than a single contractor, so support does not rest on one person's availability. Ask any supplier how a second developer would pick their work up, and treat a confident but vague answer as the answer.
Can you work with software we already had built?
Often, and the first piece of work is usually an honest read on what you are holding: whether it can be extended safely, what it depends on that is out of support, and whether the cost of the next change is going to keep rising. Inherited applications are frequently in better shape than their owners fear and occasionally in much worse. Either way it is better to know before you commission the next change than during it.
Development is delivered UK-wide from our office in Brough, East Yorkshire, with on-site support across the county where it helps. We work with businesses in Hull, Leeds, York, Sheffield, Barnsley and Halifax and 6 more Yorkshire towns and cities, and remotely with clients right across the UK.
What is the spreadsheet doing?
Tell us the job as it actually happens now, including the manual steps. That is usually enough for us to say whether this is a build, a configuration change, or something you should not spend money on.
