That sounds like a lot of money to a lay-person, but assuming $100/hr, which seems like at least a reasonable ballpark rate, that breaks down to 600 man-hours, or 15 man-weeks.
That is a very tight deadline to turn out a critical app like this. Especially since I assume it wasn't just a single person doing the coding.
People don't realize that software is expensive and a custom built application is probably not the correct choice for a single-use product. I'm sure whoever was in charge felt that $60k was a quite generous offer to build this. In reality it's basically nothing.
I used to have acquaintances approach me and say, "Hey I've got this great app idea you could help me with."
The response I found shut them down real quick was, "Great. Do you have $100k lying around to get the first beta out the door?"
Why an App? We all know there's nothing in it but boilerplate.
Making sure that average Joe preloads a webapp and to make sure it will be configured a day later isn't easy.
Properly syncing from the web app - as discussed in these threads - adds complexity though.
It's also fair to ask them to keep checking the native or web app to make sure the data was sent, so one doesn't have to rely on web workers staying alive in the background. Just save to localStorage, catch network errors and keep retrying.
Yes, a webapp will cost less. But if the vendor did this bad a job on an app they probably could do just as bad on a webapp.
Changing tech wouldn't have solved the problem for this vendor.
It makes me think of all that uproar for some iPad app for the TSA that just randomly showed a left or right arrow to send tell people which line to get in. Surely easy to code. But I bet it was months or years of interviews to determine that's all they actually needed.
And while an app not hard, a https website with login and post capability is on the _extremely simple_ territory. As long as precinct official are trustable, I don't see any reason why they have to use an app.
I guess for the wow factor? As the entire political process is essentially becoming.
You only had 1000 precincts, all you had to deal with is 1000 calls - and if one of them went wrong, you'll let that person know through some kind of reviewing mechanism. I understand that $60K is nothing but this kind of failure is absurd.
But regardless of the architectural nature of their (Shadow Inc’s) product it’s worth noting that high performing, mission critical software is challenging to do correctly. That is to say doing it with feasible, adequate solutions for security, availability, performance, testing, and usability from the end users and administrators perspectives is a whole world of responsibility for an engineering team, even if the objective seems trivial in casual conversation.
People like to characterize software projects as “easy” and almost never know the scope of what they’re talking about. Idk anything about Shadow. But judging by their lack of effective consulting on this project, and consequently allowing such a terrible product to be released, they are bad at what they do. This whole incident should go down as a lesson to folks to not screw around with silly budgets, inexperienced teams, and unrealistic timelines when looking for quality software. That the DNC or whoever doesn’t know any better is a sign of the complete cultural ignorance that otherwise functional adults in this world have about the seriousness of software as any solution to any real-world problem. Everyone is a failure in this case: Shadow, the DNC, even the commenters still misunderstanding things on this thread.
Looks like someone put wrong test headers in there, for what it does, the App is 26MB.
https://www.nytimes.com/2020/02/04/us/politics/iowa-caucus-s...
The story when it fully comes out will be quite interesting. The assumptions that we all are making are almost certainly to turn out wrong in some way - I'm looking forward to trying to compare the ways in which I was wrong on my thinking today given the relatively sparse reporting thus far.
https://www.latimes.com/business/technology/story/2020-02-04...
Edit: Nevada has since said they will not use the app and are looking at backup options
Most of the time here (and hence money) goes in gathering requirements and stakeholder engagement.
I'd imagine there is probably at least 200 hours of meetings, travel and phone calls just getting to the point of working out what they need. And yes, a lot of that is going to be physically sitting down with volunteers in some town and seeing how things are done.
It should have been enough to fund a business analyst and an app developer for a few months. Plus Shadow Inc's overhead + profit.
It's absolutely bonkers how shitty the industry is. A kid can throw together an app in a few days, but somehow 60K USD is not enough.
That said I work in "consulting", I know how fast time, money, billable hours can be burned through, when there's no real drive, motivation, vision and delegation of responsibilities and control.
To be honest, I'm not sure if that a few people for a few months is even enough to avoid something like this from happening: this is crazy stress launch in gymnasiums with very high device variety. It probably demands a couple months just of serious dedicated QA and dry runs if you really wanted to avoid this outcome.
BLS, which while not perfect has far better data than most other sources trying to do this independently, says $84,280 in 2018.
https://www.bls.gov/ooh/computer-and-information-technology/...
> It should have been enough to fund a business analyst and an app developer for a few months
Probably. But that doesn't matter if no one advised the client that they needed a realistic, production-like field test (most of the cost for which wouldn't have been part of the contract, since it would have been client side; the developer-side support for that is a small fraction of the cost.) Errors in report definitions that exclude some data in circumstances that don't come up in developer-constructed testing scenarios is, like, not at all uncommon.
[0] https://www.bls.gov/ooh/computer-and-information-technology/...
No. The median software developer makes ~$50/hr. Overhead is 2-3x (usually higher for a smaller company but we'll be generous). So company is charging $100/hr. At 60k that's a single developer working 15 weeks (10 if we're being realistic). But we know that it is at least two developers so that's 7 weeks (2 on our realistic scale).
> A kid can throw together an app in a few days,
Sure, but it doesn't matter if flappy bird crashes occasionally. Flappy bird doesn't need to communicate with other users. I know this app they built wasn't that complicated, but the kids that are pumping out apps in a few days are above average talent and probably working more than 8hrs in a day. You're comparing above average to what is already suspected to be below average (considering they are recent bootcamp graduates and have little experience).
No. The plan was that it would be used in the IA and NV caucuses, which is why the IA and NV Democratic Parties jointly purchased it.
The other states and territories using caucuses were never planning on using it. (And mostly, the other caucuses are structured differently with more primary-like features, so it probably wouldn't make sense to use shared software tailored to the IA and NV caucuses for them.)
Several US territories and other states[1] hold democratic caucuses of one form or another, but are less notable due to timing/delegate count.
[1] https://www.nytimes.com/2020/02/04/us/politics/what-states-c...
I lean towards agreeing with you that a simple website plus cheap laptop would the real world best case, but I can understand why you would want a native app.
I agree a web app isn't great for low friction data entry, but they only enter the totals for each candidate x each round, so that'd be a dozen or two dozen short numbers for the whole night per user.
I found this which has some specifics: https://www.cnn.com/2020/02/04/politics/iowa-caucus-voting-a...
The only extra thing I see is a photo upload. Which is not rocket science from a web app either. At least on iOS you can take people right to the photo gallery or the camera.
I would really like to believe this isn't a flask app I couldn't whip up in an afternoon and polish over a week in my free time... but I'm having a hard time.
Working in the depths of google and running a company are two very different things.
My personal experience with google engineers is 20% code and 80% complaining that our issue tracking system isn't as perfect as googles was.
A venture with a long development tail after release is absurdly different from this. They had to get it right the first (and only) time, and no one is anticipating even a one in a million chance of getting rich off it.
One screenshot showed an SQL error.
I think if you're doing an one man job, under pressure, making an app that has limited scalability, the last thing you should be doing is not using some kind of ORM or something similar (especially at a login page)
So it looks like they made it unnecessarily hard on themselves.
Also Shadow was openly hostile to the Sanders campaign in numerous encounters.
It’s not as bad as the CEO of a major voting software company saying he’ll “bring home the votes for Republicans” (Diebold, 2004) a but this is a clear case of conflict of interest.
In other words it's exactly the kind of business that attracts activist types who have non-monetary motivations and it could therefore present an opportunity for tampering, particularly since any discrepancies can be dismissed as bugs from underfunding and rushed development.
Whatever is actually going on, the system is clearly insanely broken.
If I can ask, why the specific nature for their clientele? Isolating your solutions to a specific political party seems strange to me especially if the emphasis on making money. If anything, money normally supersedes political leanings at the end of the day which makes the whole fiasco even stranger to me. Wouldn't you want to provide a solution for both parties by default? Not doing so seems nefarious on it's own.
It sounds like pairing products with political leanings is not a good business decision? Which may explain where all the 'hate' is coming from - it's just bad business and sows the seeds of doubt in their credibility in the minds of many.
Even if you wanted to cross the aisle, it would be hard. If you work for Democrats, Republicans will not work with you. If you work for Republicans, Democrats will not work with you.
Campaigns aren't wrong to be concerned about who has their data. There is good historical reason for them to be skeptical that security on your system will be strong enough to prevent customers from accessing other customer's data. https://time.com/4155185/bernie-sanders-hillary-clinton-data...
Now imagine getting buy-in for using customer data to improve your models.
I can't blame campaigns for being paranoid about vendors potentially going across the aisle. NationBuilder is one of the only big names I know that does it. They are in a unique and unenviable position given the death grip NGP VAN has, and they pay a big price for it on nearly every front.
If you take your example of NationBuilder, a company I know well as I led their European expansion, it only sold software not data. Unlike most American campaign software, NationBuilder does not sell data as part of their package. NationBuilder does not believe that you can create a sustainable and powerful community by using data that you have purchased, and thus only sells the platform.
So yes I agree with you that while campaigns can (and should) be paranoid about who has access to their data, and even how it is being used, this data brokerage model isn't the model that all companies adopt and it's a really important distinction to make.
While I am here, I will add the following, tech companies who want to democratise democracy (and I'm not saying that's the mission for everyone) and help lower the barrier to entry, cannot claim to do so if they alone decide who has access to these tools. Crucial decisions, such as which parties have access to the latest technology, should not be in the hands of a few tech titans of Silicon Valley - where the power they already wield is already unmeasurable.
All of the above is a fascinating and important debate and also a very American one. Campaigning and political technology is incredibly partisan in America, compared to Europe where what we fear most are monopolies.
I have no idea how to find out whether those tech stacks are indeed different. But if someone knows the answer I'd definitely find it instructive.
Whenever I've done calling or canvassing for progressive causes or democratic candidates we've used some version of NGP VAN (https://www.ngpvan.com/about).
I wouldn't be surprised if there are some cross-party solutions (especially the closer you get to core infrastructure—I'm sure both parties use AWS).
While highly political people I know don't seem to work in tech.
I mean, we’re doing anecdata here, but that doesn’t match my experience at all
So assuming it's possible in principle to be "not very political," the real question is how disengaged, uninformed, or lacking in understanding do you have to be for your statement to be true in itself, rather than a "quite political" statement. For myself, I think if someone is disengaged enough that they don't care who will become the next president, and there are no local political issues they will argue with someone about, they are "not very political."
> I think if someone is disengaged enough that they don't care who will become the next president, and there are no local political issues they will argue with someone about
What this is saying is that they are happy with the status quo, and they see no room for improvement, or they're not bothered if things are improved one way or another. You can be not interested in politics, but I think doing that is just supporting the current politics.
For many people, just existing is pretty political, like when an entire country has a debate and a vote on whether you should be afforded basic human rights.
I think there's something political about it, but I also believe that it could be done for non-political reasons (spiritual reasons, practical reasons, mental health reasons). As a pure narrative, it would most likely be politically motivated, but in hypothetical-land it wouldn't necessarily be. Even if there is something "political" about it, it doesn't really map to what people mean when the use the term "political." It may map to opinions about how the state should be governed, the broadest definition of political, but it's much more frequently used to refer to a particular subset of debates which are at least minimally polarizing in some way.
> What this is saying is that they are happy with the status quo, and they see no room for improvement, or they're not bothered if things are improved one way or another.
All I'm trying to point out is that it's a legitimate spectrum. When I say "someone disengaged enough that they don't care who will become the next president" it's very easy for the reader to imagine someone in shoes very like theirs and making that choice somewhat actively to not be engaged.
But in the wide world, you can be simply unable (or unwilling) to devote any energy to understanding how the current political environment relates to your life, and thereby form no opinions one way or the other. Perhaps you work 16 hours a day to support your family, or you live in a country only temporarily and don't even understand the language. This would imply the fact that you lack the resources to form a political opinion is "supporting the status quo."
Anecdotally, nations doing it that way seem to report faster than when software and electronics become involved.
As an aside - these instances of underfunded and underdeveloped services, specifically in the political sphere, are really painful reminders of the flip side to the idealistic technocratic future that I think a lot of folks around here assume to be an inevitability.
Since that time he's probably had his own epiphanies from working in industry but one of mine was that we did shockingly little QA and everything was built as fast as humanly possible. Everything was building the airplane in the air and it was largely due to constraints of the political or legal kind. Timeline management and allocating resources to testing was always an afterthought.
Testing usually comes from a feedback loop of launching broken features, incident response, manager gets in hot water, engineer gets in hot water, engineer proposes testing plan, manager uses incident as primary source reference to secure additional budget, testing implemented.
In politics no service, company, initiative, or team lasts long enough to complete the cycle.
This is systemic corruption. A billionaire can dump as much money into a for-profit company to build a platform for a specific campaign and then when the campaign is over then can claim that there isn't enough business to keep the platform solvent for the next 2 to 4 years and do it all again with the benefit of the previous code base. It's better than a Super PAC because the for-profit company can work directly with the campaign and no one will bat an eye. The company can even have foreign financing. All the while, their losses amount to a huge tax write-off and the public pays the bill.
In the case of The Groundwork, it likely cost upwards of $10 million for the people, building lease, AWS costs, etc. But where did all of the money come from? Certainly Hillary didn't pay for this. I'd love to see Eric Schmidt's 2016 Tax Returns.
You may find this discussion enlightening. In short, trust is at a premium and there are few white-label providers.
First of all (and it seems I've been using this word a lot lately) this turns software development into a religion rather than a business with solid business strategy. The equivalent in other businesses, like the entertainment industry, are people who do work for stars for nothing or nearly nothing because they think it will lead somewhere. All they get is a weird and abusive form of servitude (I've seen this first hand) and no future.
Why would someone not write software for politics instead and make part of their value proposition that they are not biased (and, of course, take the steps necessary to actually deliver that).
We have a close relative in South America who owns a company that makes and markets voting hardware and software. They are not aligned with any specific political party, movement or cult. They sell to everyone, in and outside South America and have a very nice business.
As far as why people don't sell to everyone, the above explains a lot. Another explanation is that political sales (which is different from true election tech, which is purchased by governments) are driven by trust and personal relationships. Once you work for one party in the US, the other will not trust you.
I am not trying to diminish anyone at all, but I would think these kinds of party line attachments mean that not everyone ends-up with the most capable developers, particularly so if what drives this is passion rather than a skilled software shop that with proven capabilities and experience across a range of relevant domains with an equally proven track record of delivering quality, well tested bug-free product.
Of course, the parties would have to we willing to pay more than hobby money for what they need.
This is a real phenomenon, but not in the way you think. Democrats have historically had a tech edge, because the real talent leans left politically. Obama kind of killed that, but for a good cause - he diverted a lot of those politically-driven types into working directly for the federal government under the umbrella of USDS and 18F.
Perhaps an example might serve as a better explanation of what I am thinking:
Trello is a real company with a product that is agnostic. Politicians of any school of though can use their products to great effect. They benefit from everyone using this product, including, perhaps, their competitors and opposition.
If, on the other hand, each political party hires a passionate coder to create their own kanban board software they are very likely to end-up with a bunch of suboptimal solutions.
In other words, if they can, if the nature of the software allows, it would benefit them to look for universal providers rather than party-aligned providers. If you can trust Trello with your political party data you can then trust a similar company with other data you might produce with their software.
I guess it comes down to the software. What kinds of things are they doing that requires custom tools that have to be written specifically for one party?
* There are types of software that are politics-specific, and therefore do not exist until a party pays for it to be made.
* Politics is a zero-sum game: if you're funding software (either institutionally, or by being a tech worker who works below market wage For The Cause), you don't want it to be used by your political opponents.
So commodity stuff that already exists is bipartisan. Any application that is specific to political campaigning is highly partisan.
[1] There's also a secondary issue of data security for cloud products; parties maintain extensive voter files with things like past voting history, up-to-date contact information, and past contacts [1a]. They do not want this information falling into the hands of the opposing party, and so don't want their data touching any organization that might potentially have cross-partisan ties, or godforbid might have cotenancy for D and R data.
[1a] This is basically the king of all CRMs, and these days they might be able to reimplement it as a bunch of plugins on top of a commercial provider like Salesforce, but those only became available relatively recently, data migration would be nontrivial, and there's a substantial amount of politics-specific functionality that would need to be rewritten as plugins.
It’s quite the leap you make from there to religion.
For software, dunno
Um, isn't this app allowing people to enter data, and sending that to an API? How could that be out of anyone's core skillset? Almost every single app must do that.
This app emerged from a mandate to make the caucus more accessible and transparent. It was well-intentioned but underfunded and lacked comprehensive organizational buy-in. Introducing tech can help but you have to spend tons of money to make it reliable and usable, then you have to spend more to train everyone in using it. This is a problem organizations of all sizes and shapes face when making massive IT changes.
Shadow is a firm that makes custom software for Democrats and progressives. It has an unnecessarily sinister name. There are not a lot of companies that make software for Democrats because it’s an awful job. You make very little money. Everyone hates you when things go wrong, which they will, because the product testing cycle and margins are nonexistent. Then everyone will assume things went wrong because you are some combination– you choose– of secretly evil, secretly working for Bernie, secretly working for The Establishment/Hillary (per someone's unpersuasive Imgur post below), or secretly working for Buttigieg.
Others have noted that Shadow also made software for the Buttigieg campaign. If you take my claims above as true, this should be unsurprising to you: a hard market where everyone hates you and no one has money to pay you is not attractive to enterprising software engineers, so there are few firms available to choose.