Skip to content

Product & Platforms

From Spreadsheet to Platform: When Custom Software Starts Making Sense

The question is not whether spreadsheets are good enough. It is what they are quietly costing you.

Hasan Roberson · Co-Founder, Product, Brand & Venture Development

· 9 min read

Spreadsheets are a legitimate starting point

There is a strain of software advice that treats spreadsheets as a failure state. That is wrong. A spreadsheet is the fastest way to model a process nobody fully understands yet, and most good systems started as one. Before you know which fields matter, which exceptions are real, and who actually needs to see what, a grid you can restructure in ten seconds is the correct tool.There is a strain of software advice that treats spreadsheets as a failure state. That is wrong. A spreadsheet is the fastest way to model a process nobody fully understands yet, and most good systems started as one. Before you know which fields matter, which exceptions are real, and who actually needs to see what, a grid you can restructure in ten seconds is the correct tool.

The problem is not the spreadsheet. It is that a spreadsheet does not enforce anything. It will happily accept a duplicate record, a blank required field, a formula somebody pasted over, a date typed as text, and a copy that three people are editing in three different places. Every one of those is survivable at ten records a month and structurally expensive at a thousand.The problem is not the spreadsheet. It is that a spreadsheet does not enforce anything. It will happily accept a duplicate record, a blank required field, a formula somebody pasted over, a date typed as text, and a copy that three people are editing in three different places. Every one of those is survivable at ten records a month and structurally expensive at a thousand.

So the useful question is not whether to move off spreadsheets on principle. It is whether the specific costs of no enforcement have started to exceed the flexibility you get in return.So the useful question is not whether to move off spreadsheets on principle. It is whether the specific costs of no enforcement have started to exceed the flexibility you get in return.

Five signals you have outgrown it

The same information is entered more than once. If a quote gets retyped into a job sheet and again into an invoice, you are paying for the same data three times and introducing a chance of error at each step. Duplicate entry is the clearest signal because it is measurable: count the keystrokes.The same information is entered more than once. If a quote gets retyped into a job sheet and again into an invoice, you are paying for the same data three times and introducing a chance of error at each step. Duplicate entry is the clearest signal because it is measurable: count the keystrokes.

Status requires a person. If knowing where something stands means asking somebody who knows, the process has no system of record — it has a human one. That works until that person is on vacation, leaves, or gets busy.Status requires a person. If knowing where something stands means asking somebody who knows, the process has no system of record — it has a human one. That works until that person is on vacation, leaves, or gets busy.

Onboarding takes weeks. When training a new hire means teaching undocumented workarounds, the process lives in memory rather than in structure. The cost shows up as slow hiring and quiet dependence on a few people.Onboarding takes weeks. When training a new hire means teaching undocumented workarounds, the process lives in memory rather than in structure. The cost shows up as slow hiring and quiet dependence on a few people.

Reporting is an archaeology project. If a basic question — how many jobs are open, which donors lapsed, how long the average approval takes — takes days to answer, decisions get made on instinct.Reporting is an archaeology project. If a basic question — how many jobs are open, which donors lapsed, how long the average approval takes — takes days to answer, decisions get made on instinct.

You cannot safely give someone partial access. Spreadsheets are effectively all-or-nothing. The moment you need a contractor to see their jobs but not your margins, or a volunteer lead to see their shift but not everyone's phone numbers, you have hit the wall that a real permission model exists to solve.You cannot safely give someone partial access. Spreadsheets are effectively all-or-nothing. The moment you need a contractor to see their jobs but not your margins, or a volunteer lead to see their shift but not everyone's phone numbers, you have hit the wall that a real permission model exists to solve.

What is actually breaking: enforcement, permissions, history

Almost every spreadsheet failure reduces to one of three missing properties. Enforcement means the system refuses invalid states — no job without a customer, no shift without a start time. Permissions mean each person sees exactly the slice of the data their role justifies. History means the system remembers what a record looked like before it changed, and who changed it.Almost every spreadsheet failure reduces to one of three missing properties. Enforcement means the system refuses invalid states — no job without a customer, no shift without a start time. Permissions mean each person sees exactly the slice of the data their role justifies. History means the system remembers what a record looked like before it changed, and who changed it.

Those three properties are the real product of a custom software project. Screens are what people notice, but enforcement, permissions, and history are what change how the organization operates. If a vendor demo shows you beautiful screens and cannot answer questions about roles and audit trail, you are looking at a brochure. project. Screens are what people notice, but enforcement, permissions, and history are what change how the organization operates. If a vendor demo shows you beautiful screens and cannot answer questions about roles and audit trail, you are looking at a brochure.

What to build first

Do not start with the whole operation. Start with the single record that everything else attaches to — usually a job, a case, a member, an order, or a shift. Get that record structured correctly: its fields, its statuses, its relationships, and the events that move it forward.Do not start with the whole operation. Start with the single record that everything else attaches to — usually a job, a case, a member, an order, or a shift. Get that record structured correctly: its fields, its statuses, its relationships, and the events that move it forward.

Then build the one workflow that touches the most people. If quoting is where the friction is, build quoting through to job creation and leave invoicing on the existing process for now. A narrow first release that goes into daily use beats a complete system that ships in a year, because the narrow one starts generating corrections while corrections are still cheap.Then build the one workflow that touches the most people. If quoting is where the friction is, build quoting through to job creation and leave invoicing on the existing process for now. A narrow first release that goes into daily use beats a complete system that ships in a year, because the narrow one starts generating corrections while corrections are still cheap.

Resist the temptation to port every spreadsheet column. Most of them exist because somebody needed a note once. Ask what each column is used to decide. Columns that decide nothing become notes, not fields.Resist the temptation to port every spreadsheet column. Most of them exist because somebody needed a note once. Ask what each column is used to decide. Columns that decide nothing become notes, not fields.

How to run the migration without stalling the work

Keep the spreadsheet running in parallel for a defined window — not forever, but long enough that people trust the new system before their fallback disappears. Name the date the old file goes read-only, and hold it.Keep the spreadsheet running in parallel for a defined window — not forever, but long enough that people trust the new system before their fallback disappears. Name the date the old file goes read-only, and hold it.

Import the historical data rather than starting empty. A system with no history feels like extra work; a system that already knows about last quarter's jobs feels like an upgrade. Import is also the best possible data-quality audit, because bad records fail loudly on the way in.Import the historical data rather than starting empty. A system with no history feels like extra work; a system that already knows about last quarter's jobs feels like an upgrade. Import is also the best possible data-quality audit, because bad records fail loudly on the way in.

Train on the two or three flows people run daily, not on every screen. Adoption is won on the path of least resistance: if the new system is faster for the thing somebody does twelve times a day, the rest follows.Train on the two or three flows people run daily, not on every screen. Adoption is won on the path of least resistance: if the new system is faster for the thing somebody does twelve times a day, the rest follows.

Finally, write down the data model. The single most valuable artifact from a first platform build is a plain-language explanation of what each record means and how the records relate. It is what makes phase two cheap, and it is what protects you if the team that built it is not the team that extends it.. The single most valuable artifact from a first platform build is a plain-language explanation of what each record means and how the records relate. It is what makes phase two cheap, and it is what protects you if the team that built it is not the team that extends it.

When the honest answer is 'not yet'

Sometimes the right recommendation is to stay where you are and fix the process instead. If volume is flat, the team is three people, and the pain is annoyance rather than error, a cleaner spreadsheet with locked columns and one owner will outperform a rushed build.Sometimes the right recommendation is to stay where you are and fix the process instead. If volume is flat, the team is three people, and the pain is annoyance rather than error, a cleaner spreadsheet with locked columns and one owner will outperform a rushed build.

Custom software also assumes you can commit to maintenance. Software is a standing obligation, not a purchase. If nobody in the organization will own it after launch, the honest sequence is to fix ownership first and build second.Custom software also assumes you can commit to maintenance. Software is a standing obligation, not a purchase. If nobody in the organization will own it after launch, the honest sequence is to fix ownership first and build second.

We would rather tell you to wait six months than sell you a platform you are not staffed to run. That conversation is the first thing that happens in our process..

Questions we get

How do we know if custom software is worth the cost?
Add up the hours spent each month on duplicate entry, status chasing, and manual reporting, then ask whether that number grows with volume. If it scales linearly with the business, structure will pay for itself. If it is flat and small, it probably will not.
Should we try more off-the-shelf tools first?
Often yes. Custom development makes sense when the process is a genuine differentiator, or when no product bends to your permissions and workflow requirements without configuration so heavy it becomes its own maintenance burden.
How small can a useful first release be?
Small enough that one team can adopt it in a week. One record type, one workflow, and real data is a legitimate version one, and it will teach you more than another quarter of planning.
  • custom software
  • operations
  • data model
  • platform

Keep reading

ZERO:MANY

BUILD • LAUNCH • MULTIPLY

Have an idea worth building?

Tell us what you are trying to make work. We will come back with an honest read on scope, sequence, and what the first version should be.