A written model of how you work
A process map and data model agreed before any code: the records, the states each one moves through, and who is allowed to move it.
If you want long-term retainers Partnership and pricing
When the work bends around the tool instead of the other way round, somebody is being paid to maintain a workaround. We build the system around how the job actually runs, for companies that have outgrown the spreadsheet holding it together.
For companies whose day to day runs on a process no product on the market matches, and who now have someone maintaining a workaround to keep it going. Where an off-the-shelf subscription genuinely covers the job, that is what we will tell you.
A process map and data model agreed before any code: the records, the states each one moves through, and who is allowed to move it.
The smallest part of the system that is useful on its own goes into real use early, so you are judging working software rather than a description of it.
Accounts and roles that match your actual approvals, with a record of who changed what and when.
Invoice and receipt numbering, VAT handling, and exports your accountant can reconcile without retyping anything.
A separate copy of the application where changes get tried and approved before they touch live records.
Written notes on how the system is put together, plus the repository and hosting accounts in your name, so another developer could pick it up.
Once an application issues invoices, holds customer records or moves money, it stops being a convenience and becomes a system of record, and the BIR has requirements for how invoices and official receipts are numbered, kept and reproduced. Retrofitting receipt numbering or an audit trail into a finished application is the expensive way to discover that, so it goes into the data model at the start. The second local assumption is that the connection will not hold. Brownouts, a cut fibre line and a branch on a single link are ordinary events here, not disasters, so anything critical is built to tolerate one: an entry captured during an outage should still be there afterwards, rather than lost with the tab that was open.
The test is whether the work bends around the tool. If your team exports from one product, edits it in a spreadsheet and imports it into another, the process is already custom and you are paying for the gap in staff hours. If a standard product covers the job with a small compromise, take the compromise. That is a better conversation to have early than a build you did not need.
You do. The repository, the hosting and any keys are in your name from the start, and the handover includes what another developer needs to continue the work. Staying should be a decision about the quality of the work, not a consequence of not being able to leave.
That depends on what it holds and how much of it, and it is a question for your data protection officer or your counsel rather than for us. What we can do is make the answer easy to give. We document what personal data the system stores, where it travels, who can see it and how long it is kept. Compliance conversations go faster when they start from a real inventory instead of guesswork.
Parts of it can. Reading recently used records and capturing new entries can be made to work offline and sync when the connection returns, which matters for site teams and branches on a link that is not dependable. Anything that has to be true across the whole company at once, like stock levels or approvals, has to wait for the connection. We agree which is which before we build.
Custom software is not finished at launch. It is only in use. We agree the support arrangement before you go live: who to contact, what counts as urgent, and how new requests get queued and prioritised. If you would rather your own developer takes it from there, we hand over to them instead.
Tell us what you are building and we will tell you honestly how we would approach it.