The demo is not where the risk lives.
Four things are true of almost every prototype we are asked to look at. None of them show up in a demo, because a demo is one person, on a good connection, doing the thing the product was built to do.
01It works because you are the only user.
Concurrency, rate limits and race conditions do not appear in a demo of one. They appear on the day the thing works.Concurrency, rate limits and race conditions do not appear in a demo of one. They appear on the day the thing works.
02It works because the data is small.
The query that returns in forty milliseconds at a thousand rows is a different query at a million, and it fails at the worst possible moment.The query that returns in forty milliseconds at a thousand rows is a different query at a million.
03It works because nothing has gone wrong yet.
There is no test that fails loudly and nothing watching, so the first failure arrives as a customer email rather than an alert.There is no test that fails loudly and nothing watching, so the first failure arrives as a customer email.
04It works because no one has tried to change it.It works because no one has changed it.
The cost of a prototype is not paid when it is built. It is paid by whoever makes the second change to it.The cost of a prototype is not paid when it is built. It is paid by whoever makes the second change to it.
None of this means starting again. It means knowing which of them applies to you, how much it will cost you if you do nothing, and what order to deal with the rest in.None of this means starting again. It means knowing which of them applies to you, and in what order.