145. Shadow of a Deadline


No matter how organized you are or how well a project is going, an impending deadline always get hearts racing. While we could argue and say that all projects could do with more time, some deadlines are objectively unreasonable. One app that certainly didn't have enough time or money is the IowaReporterApp, which has been splashed across the headlines. The app, which was developed to help with voters in the Iowa Caucus was riddled with problems. While we do not want to point fingers, there was not enough time to do user testing, which played a critical role in the app not working. In this episode, we talk more about the conditions of this particular project, and why it needed different project management. We also break down the budget allocated to it, and why it may not have been as lucrative a project as it initially appeared to be. While none of the projects we have worked on have had this kind of backlash, we have certainly had our issues with project management, which we share as well. Tune in today!


Key Points From This Episode:


  • Mike and Dave’s take on developing the IowaReporterApp in only two months.
  • There are parts of apps that are intuitive to engineers but not necessarily to users.
  • Despite how important testing is, there was not enough time dedicated to it.
  • How managing a project like the IowaReporter is different from other project management.
  • Why project managers’ expectations are often not that realistic.
  • Lessons from The Mythical Man-Month about why projects fail.
  • Why adding more people to a project won’t necessarily speed up its completion.
  • Projects with small time/money resources can be minimally rewarding.

Transcript for Episode 145. Shadow of a Deadline



[0:00:01.9] MN: Hello and welcome to The Rabbit Hole, the definitive developer’s podcast in fantabulous Chelsea Manhattan. I’m your host, Michael Nunez. Our co-host today.

[0:00:09.8] DA: Dave Anderson.

[0:00:10.5] MN: Today, we’re talking about the shadow of a deadline.

[0:00:13.9] DA: Yeah, it’s looming.

[0:00:15.6] MN: Yeah, all across the nation I guess if you will, literally.

[0:00:20.9] DA: Disgusting.

[0:00:22.1] MN: We’ll be talking about the Iowa Caucus and what can we learn from it, from a technical standpoint. Some of the issues that – red flags we see and like problems we may have experienced.

[0:00:33.1] DA: Yeah, in case you haven’t seen the news, this is like very much in the right now when we’re recording this. Like tearing back the curtain, it’s been several days since the Iowa Caucus and they still haven’t figured out what the full results of that whole event was for their voting that they were trying to do, the caucus-ing I guess.

[0:00:55.5] MN: Right, that’s a whole other different way that Iowa does it. And yeah, it’s not 100% like a couple of days later and like, it was 62 and then 71 and now probably around 80 or something like that.

[0:01:10.3] DA: It’s all because on software, right?

[0:01:12.3] MN: Yeah, it’s all because of software. I think I want to preface like I’m talking for myself right now. I don’t want to bash any developer in this situation that they’re in. I really want to feel empathetic in the situation.

[0:01:26.0] DA: Yeah.

[0:01:26.6] MN: My god.

[0:01:27.1] DA: Prime directive is in full effect.

[0:01:28.9] MN: In full effect. I need to understand that –

[0:01:33.4] DA: They did the best they could with what they had, their knowledge, their skills and abilities.

[0:01:36.6] MN: The time constraints that were given to them.

[0:01:39.8] DA: Yeah.

[0:01:41.9] MN: Yeah. That’s rough, there’s a lot of options. They get a lot of slack. People are probably slinging tomatoes at them when they’re walking down the street, I hope not but that’s like probably what’s happening.

[0:01:52.1] DA: Yeah, I mean, my first thought when I heard the headlines, it was like, “Oh no, hackers.”

[0:02:00.0] MN: The Russian hackers are in.

[0:02:01.2] DA: The Russians hackers got them. Then I heard like the statistic about like the project. It’s like, okay, Nevada and Iowa, the democratic parties paid this company $60,000 to make this app to record their caucuses for them.

[0:02:18.3] MN: Right.

[0:02:19.4] DA: In two months.

[0:02:19.6] MN: In two months.

[0:02:21.2] DA: Yeah.

[0:02:21.3] MN: There’s a lot going on there.

[0:02:24.7] DA: Okay, not hackers. Just people.

[0:02:26.8] MN: These are people problems, right here. What are your thoughts on the two months?

[0:02:31.5] DA: Didn’t they know that they had to vote earlier?

[0:02:37.1] MN: Yeah, I mean, I would have been like, I really concerned, cautious about this time limit of two months.

[0:02:43.0] DA: It sounds like they had some budget for the year 2019 and it was the end of the year and like, “What are we going to do with this $60,000? If I don’t spend it, I’m going to lose it. The national party’s going to take it away. Okay, I’ll just buy an app.”

[0:02:58.5] MN: Yeah, we’ll buy a couple of developers to make the app and everything will be fine.

[0:03:02.2] DA: Yeah, had some pocket change.

[0:03:04.1] MN: Two months, man. I mean, even thinking about designing the app and having to teach people how to use the app, it’s going to take a lot of time. It’s intuitive to individuals who are building the app. But if I always have to think about, “All right, if my mom is going to use this app, is she going to know what to do?”

Two factor authentication, she probably does not know how to say that word.

[0:03:27.6] DA: Right, yeah. You were showing me this segment of an email or something where they’re like, “Okay, this is what you got to do if there’s a problem: You got to get the two-factor auth. You have to get the two-factor auth, you have to do your password and then you got your pin, you enter you pin and then after you get the pin then you’re going to be on this page and you got to do all the stuff with the app that you have to do.”

[0:03:49.1] MN: Yeah, you have to put in the Iowa section number of your Caucus. You have to remember that too. My mom’s going to lose that piece of paper. I mean, we don’t do that in New York. But like, even when we go vote, she’s like, "What district am I in again?” I’m like, “Mom, you go the mail.” But like, that kind of stuff, things like we as engineers have to think about, when we are designing these apps, because it’s all walks of life who are planning to vote and you know, it could be confusing for users who are not familiar with an app that you're building.

[0:04:24.1] DA: I didn’t know what a caucus was so I was reading up on like what the process is and it’s pretty complicated.

[0:04:31.3] MN: Yo, it’s mad confusing.

[0:04:32.6] DA: It sounds like very intense.

[0:04:35.1] MN: Yeah, I got to go to the gym, like to a gym room like a huge thing and stand where I want to be to represent this person and have the opportunity to change my opinion if I really wanted to. In physical space.

[0:04:48.6] DA: Multiple rounds of voting, all recorded and then mapping to other national level delegates and pretty wild. It’s like, you know, I started reading the article and I couldn’t – I just like scrolled through it and I’m like, “This is too much, I don’t want to know how to do this.” It’s not a simple problem so –

[0:05:10.8] MN: I mean, the domain is complex in this regard. If you have to literally take that experience and use it in an app. I honestly don’t know what the experience of the app was or how Iowa or the company that was building it and the company name is Shadow Inc. which is kind of suspicious all together, it was just weird name.

[0:05:32.4] DA: That’s a bad user experience too. Like someone emails you from shadow.io and they’re like, “Please download this app.”

[0:05:38.2] MN: Yeah, exactly. “Russia, is that you?”

[0:05:45.8] DA: It wasn’t even from the app store, which is like –

[0:05:48.0] MN: Another red flag.

[0:05:50.9] DA: Definitely from – no, it’s not from Russia. They had no time.

[0:05:54.3] MN: Right, exactly, they had no time. I think you had – there was little time to be able to potentially put in an app store because you know, Google and Apple have their own restrictions and requirements that take time, that they may not have had. The domain is complex to me. I’m not in that space, I imagine that the consulting company knows the space better than I do but reading that article of how the caucus works was – that scroll bar was very little ladies and gentlemen, it was tiny.

[0:06:26.7] DA: Whenever I see a tiny scroll bar, I just run away.

[0:06:29.1] MN: Command W, next, that’s it. The budget, you mentioned before was like $60,000 for two months. And I mean, if you told me I’m getting $60,000 in two months, I’d be a happy camper, there’s no denying that. But you have to put like somebody did the math over at one of the articles that we were reading.

[0:06:53.2] DA: Yeah, there is a great thread on this in Hacker News.

[0:06:56.8] MN: Right, the person says, that sounds like a lot of money to a lay person, i.e. me. But assuming $100 an hour, reasonable ballpark, it’s like 600-man hours or 15 man weeks essentially. That includes building the app, testing it, even if you’re test driving it, trying to go and put it out to production, going out there to user test it with individuals, see if they understand it. There’s just not enough time to do in two months for something that is the – I personally feel like the most important thing you do in the list of civic duties that you have in this country. It’s just not enough time to test this thing.

[0:07:36.8] DA: Right, yeah. It’s really like, I don’t know – with like web engineering and continuous integration, continuous delivery, sometimes I feel like you can have a devil may care attitude towards like reacting quickly to problems or changes in requirements and just pushing out patches continuously. But like, when you have like a one time that you have to get it right, or pay the price and you don’t have the ability to push out a live update. That’s like a different kind of calculus about how you need to engineer your products with like risk tolerances and getting it right first time.

It’s like – it’s not the moon landing but it’s like, closer to the moon landing than like my consumer web app that like you know, people order pizza on.

[0:08:32.4] MN: Right, exactly. It’s totally different, one thing I mentioned before is this -this particular use case isn’t like Agile. It’s a very different way of thinking how you’re planning to deploy this to the user, because once it’s out or once the day comes, you ship it and then like a ship, it just goes off into the sea and you’re just watching it flow.

Hoping that stays afloat the whole time, you can ‘t patch that boat up, that ship stays like as it is.

[0:09:07.4] DA: Sometimes it’s sinks.

[0:09:08.7] MN: Or sometimes it sinks. And that’s kind of what happened in this case. I think another thing I had a thought about this. This brings up the episode that we have – that we spoke about where it’s, developers versus engineers.

[0:09:26.1] DA: Yeah, that was a good one.

[0:09:27.4] MN: That was a good one. Dave, do you mind checking out the tats on that real quick?

[0:09:32.0] DA: That’s number 87.

[0:09:32.6] MN: Episode 87.

[0:09:33.9] DA: Yeah.That was one of the top episodes.

[0:09:36.0] MN: Yeah, I think this is a good case of that, right? Me personally, as an engineer, this is equivalent to a bridge like falling.

[0:09:45.1] DA: Yeah, two common arrows with the wobbly bridge, it’s like, “What?”

[0:09:48.8] MN: This is a wobbly bridge situation and I mean, I’m not trying to tell these people, “Lock them up.” I’m not really trying to do that but this is something very serious to the American people who are planning to vote and if this would have been the only way that they were capturing the votes of the people of Iowa and you have obstruction towards like voting. People would get, go to jail like if it was anything else but like an engineer work.

[0:10:17.7] DA: Right, yeah. I mean, thankfully, it sounds like they had some fall back of like paper ballots and records and things like that. But it’s a relief. You're just like blasted back to the 1800s though.

[0:10:31.3] MN: Yeah. I mean, I think it worked in the 1800s. They counted the votes properly then. And I think again, this could have been an honest mistake and I feel like it was. But like, if this would have been a building, like they say, this is what a building that fell apart, right?

We wouldn’t have the same sympathy like if lives were lost or something of that nature I feel.

[0:10:56.8] DA: I do think about that. I heard about like with the corona virus outbreak in China. We’re just talking current events.

[0:11:01.6] MN: The current events. Yeah line the whole current events right now that’s going down.

[0:11:05.5] DA: Like the Evergreen content.

[0:11:06.8] MN: There you go, it’s going down.

[0:11:08.2] DA: You will see this two years from now, you’ll be like, “Who cares?” But I heard that the Chinese government is trying to react very quickly to demand for more medical facilities so they built a hospital in like some insanely small amount of time. It was like a couple of weeks they’ve built a hospital, which I don’t know what the scope of that is if they just converted an existing building or like blah-blah-blah but it’s still like, “Oh wow.”

[0:11:36.7] MN: They did it?

[0:11:37.4] DA: Yeah.

[0:11:37.8] MN: Oh man. I think there’s – thinking about this particular topic and knowing that they had low time remind me of that particular website, Fast Good. It’s like www.fastgood.cheap.

[0:11:53.2] DA: That top level domain.

[0:11:54.8] MN: Yeah, it’s great. Well dot cheap that must be top dollar.

[0:11:57.6] DA: Do you think it’s expensive for it?

[0:12:00.0] MN: That would be oxymoronic and hilarious at the same time.

[0:12:06.3] DA: I’m going to see how much it is to get The Rabbit Hole dot cheap. Not bad. All right is this Canadian dollars? Why is that thing on Canadian?

[0:12:19.2] MN: Bro, you got problems.

[0:12:21.9] DA: It’s even cheaper then. It is only nine Canadian dollars a year.

[0:12:26.0] MN: There you go. Oh man, you need to check the VPN settings mate, what’s going on?

[0:12:31.4] DA: I don’t know yeah okay that’s weird but –

[0:12:34.2] MN: Yeah, no I think fastgood.cheap is a simple site that has three toggles. You have fast, you have good and you have cheap. The problem with that –

[0:12:43.9] DA: They definitely want fast.

[0:12:45.4] MN: You want fast. You want it good? If you want it good then you can’t have it cheap and if you wanted cheap, it is not going to be good that’s the site.

[0:12:52.9] DA: I mean it is just voting because perhaps they could.

[0:12:56.9] MN: Yeah, I think the idea was anytime that like I have a project manager that has a really crazy deadline, I forward them that site like, “You need to make a decision and when you’re ready you show me the two you were on and we’ll get the project done.”

[0:13:12.4] DA: Which one is going to be the toothpaste that squeezes at the top, right? Do you tell them that you can let them know how to get all three?

[0:13:21.2] MN: Oh yeah, well, if you wanted to get all three then you have to disable JavaScript that’s the best way to do it. I don’t tell anyone that.

[0:13:26.8] DA: You don’t tell them yeah. I am pretty sure of that.

[0:13:28.4] MN: Yeah, you know project managers you don’t know this but you got to turn off JavaScript anybody turn off the reel that will make it happen and that might be –

[0:13:34.5] DA: But that is inherently not good, maybe.

[0:13:37.2] MN: Well the biggest is maybe you move faster if you are not using JavaScript you know? I think that is like a – that particular solution is a little deeper than it is I’d say because, “Hey, we did a little elixir. We could probably get all three.” I don’t know but – I don’t know but turning off JavaScript would definitely help you get through that particular website.

But yeah, I think the idea there is that. And then often times you may have like a project manager or project words like, “Hey, we need to get this done fast. Here is what we’re going to do. There is two people on the team, we are going to throw six more people. That will get it done faster, right?” Like, “What, is throwing more people on this project you’d expect it to go much more faster?” Like sometimes it works and like I mean that change in velocity would probably be too much.

But there is a level where adding more people to a project doesn’t increase the velocity of the end of this project that you are completing.

[0:14:36.2] DA: Right that is like the classic tenants from Mythical Man-Month.

[0:14:39.1] MN: Yeah, I mean yeah we were talking about the episode and you brought up The Mythical Man-Month. and I was like yes. I only have to use anecdotes to explain this but there is a book that actually has information about this, which is great.

[0:14:52.0] DA: Yeah, it’s a classic. I think we talked about it like way back in episode number 17 going to my tasks, which we talked about deadlines. I feel like we talked about fast good that sheet too.

[0:15:03.0] MN: Oh, I mean yeah it’s a classic.

[0:15:05.3] DA: Yeah just every episode, fastgood.cheap.

[0:15:07.4] MN: Yeah, we’ve always got to, I mean yeah we always got to use it yeah. It’s fastgood.cheap it’s awesome.

[0:15:13.8] DA: Yeah but basically this is a classic book from – about project management of a software engineering that was published in 75 and they’re talking about how projects fail and there’s a fallacy that if I have – we were talking about like that budget and that timeline and it’s like, “Okay, I have 16 man weeks. Okay, I will just throw 16 people on this project and I will have it in a week.” But there is this idea that you can’t work out the dependencies of all of the things and the communication that’s requires and the idea of bringing everything all together.

[0:15:53.4] MN: Right, there is just so much overhead that has to happen when you add more humans to the banks, I guess.

[0:15:59.6] DA: Right, yeah.

[0:16:00.9] MN: And then some people may think that like, “Oh I guess this comes from…” I don’t know, I am just thinking like working in programming is not like rowing a boat because I feel like that is the case. Like if you had four people rowing a boat and then you added eight people to this boat that could fit 12-people, I guess, you would have moved faster because everyone is doing it and everyone is rowing correctly and stuff like that. But it doesn’t work like that in programming like it just did and this –

[0:16:27.8] DA: I feel like you could have someone who’s really bad at rowing and is like going off the cadence and like you know, go in the back like he is rowing the wrong way.

[0:16:36.9] MN: That’s probably me. I would be rowing the wrong way. But like if you had four people who knew how to row and you added eight more people to this boat that can fit 12 people, right? Because imagine it only fit four and you’ve got 12 people and tell them how to row.

[0:16:51.7] DA: Yeah, they’re probably going to spend four.

[0:16:54.1] MN: They will probably move fast. The same way if you had four engineers and you added another eight of them, engineers who know how to code the programming language of the choice of the project but that still doesn’t help move faster though.

[0:17:10.5] DA: And then they add eight more developers into my boat and then there’s 12 people.

[0:17:16.0] MN: And then they punch a key.

[0:17:16.6] DA: And then it’s six, right. They are running software –

[0:17:21.9] MN: Rowing the boat yeah. Don’t row your boat and write software just pick one that’s all you need to do. If I had to like think about the lessons of the particular situation is like I think we had an episode before where you couldn’t say no. And I think that no, I don’t know the lives that the individuals over at Shadow Inc. live where they have to take the job and they need the money right?

[0:17:46.1] DA: Poor Jimmy.

[0:17:46.8] MN: Yeah, Jimmy’s got to work. Jimmy’s got to feed his son, Bobby. Bobby’s got to eat. But that sounds like an overwhelming task of doing like capturing caucus voting into month. You have to build this app from scratch. It just sounds like a lot of work that needs to get done. It almost sounds like maybe they had to take it, right? They need the work. But you had the same like if I was given that project, I’m like, “Nah, I got to turn the other way, this is crazy.”

[0:18:19.7] DA: Yeah, I feel like somebody was talking about that too in Hacker News and he was saying like in this area, in this domain you would often be faced with these projects where they don’t have a lot of money, they don’t have a lot of time and even if you do it right like the reward is not that great. But if you do it wrong –

[0:18:38.1] MN: People hate you and they –

[0:18:39.7] DA: Yeah, they’d think that you are a hackers or Russian spies or Bernie’s spies or

[0:18:44.4] MN: Buttigieg spy, you are spying on someone.

[0:18:47.2] DA: Someone in the shadows, right? And then you’re in your company as a shadow so that you know?

[0:18:53.2] MN: That doesn’t help at all guys, come on. I think it is just a combination of that like good, fast, cheap is definitely a thing that needs to be brought up. Because it ends up playing that way where like you can only truly have those two things out of three. Overall, on Twitter right now, you can go to Shadow Inc. HQ, their pinned tweet is pretty much apologizing over the delay of them collecting the information.

I read, “We sincerely regret the delay and the reporting of the result of last night’s Iowa Caucuses and the uncertainty that has caused to the candidates, their campaigns and democratic caucus goers.” Like I am sure Bobby is not sleeping. He hasn’t been sleeping well that past couple of nights knowing that this has happened because of the amount of people who are probably saying the meanest things to their entire organization on Twitter because you can now like it is just so easy like, “Oh you guys suck and fraaa.”

[0:19:57.9] DA: Yeah, I wonder how their retro is going to go.

[0:20:00.0] MN: Ooh that post-mortem? I love to be a fly in that room. I can – Hey, Shadow Inc. HQ if you want me to facilitate that I’ll be more than happy just so I can be able to drive a healthy post-mortem to a situation that has affected the American people.

[0:20:19.7] DA: Because there’s always five why’s.

[0:20:20.8] MN: There’s always five why’s, soon you could drill down real hard into it. It would be great. I hope this is a learn from failure on their part and that they can bounce back from this in the next project that they end up picking. And if people can be a little nicer I guess I am sure they’re probably getting all sorts of names screamed at them.

[0:20:40.4] DA: Shirt balls.

[0:20:42.9] MN: Holy frickin’ shirt balls. Oh man.


[0:20:47.4] MN: Follow us now on Twitter @radiofreerabbit so we can keep the conversation going. Like what you hear? Give us a five star review and help developers like you find their way into The Rabbit Hole and never miss an episode, subscribe now however you listen to your favorite podcast. On behalf of our producer extraordinaire, William Jeffries and my amazing co-host, Dave Anderson and me, your host, Michael Nunez, thanks for listening to The Rabbit Hole.


Links and Resources:

The Rabbit Hole on Twitter

Shadow, Inc

Shadow, Inc on Twitter

Iowa Caucus App Error


The Rabbit Hole Ep #87: Developer vs. Engineer

Fast Good

The Mythical Man-Month

The Rabbit Hole Ep #17: Deadlines