Core + Interfaces
We are thinking a lot about the overall architecture of our system. We are thinking and talking with election officials and their technology pals.
One question that is asked and we ask ourselves, is, “will your system work, right out of the box, for any jurisdiction?”
For example, a product that I work on, BlogBridge, is free and open source, and works out of the ‘box’ for any user. While the code is available to anyone, in practice hardly any of the users look at it or have reason to modify it. That’s one model. One size fits all. But we know that in the arena of elections technology, one size definitely does not fit all.
We know that states do things differently, and things are done (very) differently from state to state. So the question becomes, “… how can you guys assure us that what you build will work for OUR scenario?”
Being the geek I am, I approach the question this way…
It seems that what we need to do is to design a system with a core which represents the 90% case (maybe it’s 85 or 95?) And them on top of that provide a set of appropriate interfaces that would allow a stake holder to add their own code as the deploy our technology.
So: Core + Interfaces.
As we work further with our collaborators, we will learn more how to best structure these interfaces. See the next post where I will get into how this might affect certification.