Dr Dobbs wrote this article on the ways developing for an election campaign differ from typical projects.

“We realized early on that we had to understand that ‘good enough’ was indeed good enough. Often, 90% of the way there was the same as 100% and we just didn’t have the bandwidth to put a lot of time into the final 10% or polishing every last detail.”

The client wasn’t used to iterative development where they saw early incomplete releases of features.

The difference turned out to be crucial, as many features were changed in ways that became critical to their smooth operation on election day.

After the feature freeze in October,

No new features were added, unless mandated by regulation or indispensable to the operation. And in some cases, when an app didn’t work as hoped, team members reassessed its criticality and simply dumped the app if it was no longer truly essential.

At least they won’t have to do it all again for the next election, right? Wrong.

The team was unequivocal in its conviction that by 2016, all the code would have to be written from scratch again, due to change in technology and how people communicate. They saw no possibility of reusing their code. In fact, they felt that part of their opponents’ software difficulty was tied to reworking code from 2008, rather than writing the apps from scratch.