Disclaimer: not an app developer!
Disclaimer: not an app developer!
That said, this was a pretty pathetic failure to scale, and I don't use harsh language like that lightly. I assume we're going to find out someone's brother or nephew runs the company because, for whatever reason, politics loves nepotism.
There is books written on how to test an new system/feature but in general you have 3 stages:
The first is an automated internal integrity test(sometimes called unit test) where you throw mock data at the systems independent component, in order to test for known classes of edge cases and race conditions.
The second step is implementation where the ops team tries to yank network and hardware resources away form underneath the app until something breaks in order to see if it fails in a sensible way that don't lead to irrecoverable data corruption.
The third stage is acceptance testing which on proprietary solutions is often the only one the end user is 110% in control of where you both test the app with actual user performing standard procedures and an team of specialist trying and break it using whatever knowledge they have on the systems design.
All tree stages have it's own skill set and is often performed by different teams and it's not uncommon to see specialist companies brought in doing part of the QA process for really important new systems but for the most part the entire things just fade into the the daily routine as an newer ending feedback loop.
It needs to record something like a dozen numbers from each of the ~1,700 caucuses in the state. You could have used Excel as the database here with no problem.
Like, that's "LAMP stack in 2001 hosting someone's blog about cacti wearing sweaters in Duluth" levels of scale.