 I have a feeling I know what some of you are thinking. What could DevOps possibly have to do with politics? Or the reverse, what does politics, that loaded subject we're told to avoid in polite conversation have to do with DevOps? Well, let's consider the idea that every company is a software company. Now, I wasn't able to find the exact source of this quote, but we've all heard it many times. It likely sounds very familiar. In every modern company today, software and technology are deeply embedded in how organizations serve their customers, ship their goods, and hopefully win portions of their market. Just like every modern company is a software company, every modern political campaign is also a software company. Technology, for better or worse, allows campaigns to engage with voters on a level that is unprecedented even only a decade ago. This means that political campaigns need DevOps principles just as much as businesses. In fact, they actually need them more because working tech on a political campaign involves shipping software on the tightest budgets, in the shortest time frames, and with the highest stakes imaginable. Moreover, technology changes and moves on between elections. Those four years between presidential elections are an eternity in terms of technical tools. Even with shorter election cycles, the tools we used on the campaign, the previous cycle, very likely will be completely out of date by the time that next election rolls around. So although I will mention some specific technologies in this project I've used in campaigns, this talk is not meant to be an in-depth discussion of them or a prescription for their use. This is because even though technology moves on, the principles we apply to the use of that technology remain the same. That is the beauty of DevOps. Even as technology evolves and changes, the principles still remain relevant. In particular, I love this quote from Effective DevOps by Jennifer Davis and Catherine Daniels. Many people think about DevOps as specific tools like Chef or Docker, but tools alone are not DevOps. What makes tools DevOps is the manner of their use, not fundamental characteristics of the tools themselves. And that is the point of this talk. Again, in this day and age, for better or worse, politics and technology are deeply intertwined. Our tools are more powerful than they have ever been in human history. But when used improperly, they can be destructive rather than constructive, and DevOps principles help us stay on that constructive side. So when I mention my work in election campaigns, I often hear responses like this, I'm just not a political person. All politicians are the same. That one's a big one on the internet. And then I refuse to choose the lesser of two evils. Now I do want to say this has started to change after the 2016 elections, but I still encounter these attitudes a lot in my daily life. So holding these attitudes is certainly someone's right, but the truth is politics affects you whether you are involved in it or not. American society is governed by our representative democracy. That means the results of election will potentially profoundly affect your life, and if not your life, definitely the life of someone you care about. I made the decision to become involved in political campaigns because I wanted to help shape the way our society is governed, even in the smallest of ways. And with that, who I am is Nell Shamrell Harrington. I'm an engineer at Chef. I've been a technical volunteer with multiple campaigns. If you're looking for me on Twitter, you can find me at at Nell Shamrell. Now before I go on, I want to mention that I debated quite a bit whether I should name specific campaigns I've worked on in this talk. The reason was I was worried that the emotions around those campaigns would overshadow the principles I'm laying out. So what I ultimately decided that when it's necessary for context, I will name specific campaigns by name. That said, though, this talk is not meant to be my personal political views. If you're curious about them, you are more than welcome to come up to me privately and ask me about them, but that's not the point of this talk. Frankly, what I'm laying out here can be applied to any campaign or any business regardless of the position they hold on certain issues. So again, just like every modern company or company is a software company, every political campaign is also a software company. Now it can be tempting, us as engineers know this, to immediately jump into technical implementations when we discuss using software to solve problems, but technical implementations are useless if we don't understand the problem that we're solving. On a high level, one of the major differences between a business and a campaign is that the success of a business is measured in money. That's the point of a business. That's always been the point of a business. Even with nonprofits, their success is measured by their ability to raise funds and how they use those funds. So political campaigns certainly do need and use money, but the ultimate success of a campaign is measured in votes. That's all that matters in the end. Votes are what determines who wins an election, which determines the direction of a city, county, state, country, even the world for years and possibly decades to come. This is because we don't reset in between terms of office. When someone is elected to an office, they need to build on or in spite of the actions of whoever held that office before. So all of the resources, all of the energy, all of the work that goes in campaigns is to win people's votes. And I like to think of winning someone's vote as involving three things. And the first is the heart. In order to cast a vote for someone or something, especially if it involves a voter changing their mind, they need to make an emotional connection first. Even if they feel they won't be directly affected by the outcome of that election, they probably know someone who will be. And this is very similar to DevOps transformations in businesses. In order to even consider changing the way they think about something or someone, someone who's a voter, whether they're a manager, whether they're an IT engineer, they need to make that emotional connection first. They need to viscerally feel how that change can make their life or the life of someone they care about better. Next comes the mind. When someone has made a connection on an emotional level, that's when they can process the intellectual reasons why they might choose to vote a certain way. I see a lot of campaigns trying to appeal to the mind first. And I think this works if you're trying to keep something the way it is, but it doesn't work when you're trying to change something. As much as we like to think of ourselves as rational human beings, I mean, I am an engineer and I would love to believe that I make technical decisions based purely on intellectual reasons. The truth is I really don't. I become open to change when I can feel how it will make my life better. In order to change something and deep societal change that comes from political campaigns, you really can't do it on your own. That means you need people's hearts first and then you need their minds. And then the last thing that makes up a vote is motivation. This is because it doesn't matter how much someone emotionally or intellectually campaigns connects with my campaign if they don't have the motivation to get out and turn in their ballot. That's why campaigns spend so much money and resources on those get out the vote efforts in the weeks leading up to election day. Now any technical solution we would build on a campaign had to serve these three things. The goal of any technology is to win votes. In order to win someone's heart, mind and motivation, speed is critical. And the reason speed matters so much is that when you are first to reach a voter, you control the narrative. At least this is usually the case. It is similar to how a business that goes to market first controls the narrative around that market and is at a major advantage. So speed is critical, but with that accuracy is also critical. When you ship software, whether it's for a business or a campaign, I wish it went without saying, but it needs to work. It doesn't matter what it was intended to do or how much time and resources were spent on it if it just doesn't work on a fundamental level. In particular, in a campaign, once you reach election day, there are no do-overs. There's no 2.0, at least not until the election cycle. So in order for that technology to have its intended effect, it needs to work right the first time. So one of the best ways to help balance speed and accuracy is through automation, which is one of the main things we think of when we think of DevOps. I want to add a caveat though. The right automation enables speed and accuracy. Automating the wrong things might add speed, but it will come at the cost of effectiveness. We'll cover what the wrong kind of automation is in just a moment. But first let's look at examples of the right automation. In particular, automation is very helpful with large volunteer forces. As much as you hear about very highly paid political consultants, the backbone of campaigns is unpaid volunteers. Success is just impossible without them. Now during the 2016 presidential election, I volunteered with an organization called Dev Progress. While we were not directly a part of the Hillary for America campaign, we did work with them and created applications that were used by the campaign. So the focus of Dev Progress was on technical volunteers. And there were many technical people who were very eager to help with the campaign. In order to use their talent and preserve their motivation, we needed to get them up running and coding as fast as possible. So this is one of the projects we created called Drive the Vote. And the idea behind this app is to allow anyone who needs a ride to the polls to request one in the app and be matched up with a volunteer who will drive them. And it didn't matter who you were voting for, we did not ask that. The goal was to get as many people to the polls as possible. So technical volunteers, especially remote volunteers, tend to have very different workstations. That's one of the problems in open source. In order to get new contributors up and running as quick as possible, we decided to use virtual workstations. So this is the vagrant file we had in Drive the Vote. This would allow someone to quickly spin up a vagrant box where they could do their development on Drive the Vote, one with all the required versions of all the required dependencies already set up for them, and two, in a way that would be unlikely to affect their workstation or other projects that they were working on. So this meant a contributor could be developing on Linux, Mac, Windows, anything that supports vagrant. And by spinning up that vagrant box in SSH into it, instantly be using the same development environment as other contributors. Embracing an automated virtual workstation meant we could get those new contributors up and running in consistent environments very quickly. And in an election campaign, every single second counts. So our contributors could get coding really fast, but again, speed alone is not sufficient. We could not sacrifice quality. Again, in an election, even before election day, there are very rarely second chances. If an app did not work the way it was supposed to the first time or if it broke, there likely would be no time to rewrite it or heavily debug it. So we knew going into this campaign that we needed to automate those checks for quality as much as possible, both to let us work at that high speed and avoid from diverging too far in the wrong direction. So one of the most effective ways we found to do this was through continuous integration. So this is another project I worked on called Hillary BNB. And this app helped match campaign volunteers with a place to stay when they were traveling out of town. So this tool was forked from a tool originally created by Bernie Sanders supporters during the Democratic primary. They had open sourced it under a GPL license, which meant it was free to be distributed and modified. So we forked it and added quite a bit of functionality before election day. And this is an example of a build in Hillary BNB in Circle CI. We ended up going with Circle CI, one because it was free for open source projects, and two because it was very easy to get small projects set up with it very quickly. So every time we committed code, we would do a complete build, testing all the dependencies, and then run the actual automated test for the application. So this meant we were always testing from a fresh build of the software and could instantly see where issues were. This was particularly helpful when we were setting up operations for the project, because we could find those integration issues first and fix them very early when the application was still at its most flexible. So these are examples of what I consider the right automation. The right automation, and I consider both Dryad the Vote and Hillary BNB, the right automation, is to foster human connections. Automation should enable human connection rather than trying to replace them. Remember this equation? Getting a vote involves capturing someone's heart, their mind, and ensuring they have that motivation to turn that ballot in. And this requires a personal connection with another human being. One of my least favorite examples of automation, and definitely what I consider the wrong kind of automation, is robocalls. Robocalls do not make personal connections. I don't know about you, but the only emotion I feel when I get a robocall is massive irritation bordering on rage. So again, personal connections, human being to human being, that's what will capture a voter's heart, mind, and motivate them to get that ballot in. One of the best examples of this that I had been involved in was the Approved 74 campaign in 2012. Referendum 74 was about gay marriage. If approved, gay marriage would be legal in Washington state. If rejected, it would not be legal. Now before 2012, no gay marriage law had ever been successful at the ballot box. The success of Proposition 8 in California, which effectively reband gay marriage there, was shocking to gay marriage advocates. Something was not working for the majority of voters motivated to cast their ballots. So in 2010, the Freedom to Mary Foundation conducted a study to try and figure out what wasn't working. And they found it was actually the messaging. Gay marriage can seem like a black or white issue, but it was not a black or white issue for a critical section of voters. This study found that a significant group of them, the ones who could actually turn the tide at the ballot box, just weren't being reached by arguments about the constitution or legal reasons gay couples wanted to marry. They agreed in theory that gay couples should not be treated unfairly, but they just didn't understand why it had to be marriage. Why that was so important to same-sex couples. Now it can be tempting at this point to say things like, well, they should just vote for it because it's rights, particularly in progressive circles. But when it comes to an election, being right is irrelevant if you don't have the votes. When you work on a political campaign, especially one that is changing something, some deep-seated societal norm, you just don't have the luxury of only appealing to people who already agree with you. In a DevOps organization, whether it's a traditional business or a political campaign, the first step to enacting true and lasting change is to let go of the need to be right. That doesn't mean letting go of doing what's right. It's letting go of needing to be right, needing to feel superior to other people. The approved 74 campaign understood from the beginning that in order to enact real change, in order to truly help gay couples achieve full marriage rights, they needed to let go of that need to be right and meet people where they were. Remember, this cannot be stated enough. Hearts and minds change through personal connections. So what that campaign did was they recruited hundreds of phone bank volunteers, including myself, to personally call nearly every registered voter in Washington state and have a personal conversation with them. If you were a Washington state registered voter in 2012, you probably got a call from one of us at some point. All these conversations were framed around first listening to where the voter was on the subject of gay marriage and why. Someone is much more likely to listen to you if you listen to them first. Only after that would the caller bring up the subject of loving commitment that gay couples want to marry for the same reason that different sex couples want to marry. In order to be effective, these conversations had to happen human to human. Frankly, automation just doesn't work when the subject is love. I call this human capital. Even with our wondrous advances in technology and automation, humans are still needed for certain things. We don't yet at least make the same emotional connection with machines. And again, as much as we try to consider ourselves rational human beings, voting is a very emotional decision for many people, especially when they are changing their position from what they believed before. In a business, technical and cultural transformations are also very emotional because people have to confront and change deeply held beliefs. The need for human to human conversations in these cases cannot be overstated. Now, the purpose of automation is to free up human capital to do what it does best. Automation does not make humans less important. Rather, it allows humans to focus on where they are most needed. In the case of reference 74, it was having those personal emotional connections and nuanced conversations with registered voters. Now, even though these conversations ultimately needed to be human driven, automation did play a big role in allowing those conversations to happen, especially when it came to dialing those numbers. So at the beginning, we didn't have automatic dialers, and we would have a spreadsheet of thousands of numbers to call. I used a ruler to keep myself on the correct line, and we would have to hand dial each of those into prepaid cell phones. So this was very error prone and not efficient. So dialing numbers was clearly something that needed to be automated. Now, using those automatic dialers, which would only connect the line when someone actually picked up on it, that freed up the human volunteers to focus on the actual conversations. Now, working at campaign is always fast paced, but the last six weeks or so are an all out sprint to election day. That's when you find out sometimes, though not always on the same day, whether all that outreach, all those conversations, all of that led to victory. Now, when you win an election, it's sublime. There is no greater high and no greater rush than seeing your work pay off and affect people in such a tangible way. When the votes were pouring in in 2012, and it became clear that referendum 74 was going to pass, it was the most deeply emotional and most glorious triumph I have ever felt. But the hard truth is you won't always win. Losing an election is devastating. When Hillary Clinton lost the 2016 election, I honestly felt shattered, along with all of us who worked on her campaign. This is because we had poured so much of our hearts and souls into it, and ultimately the election just didn't go the way we wanted it to. And that's the hard truth of politics. When the votes are finally cast and counted, it won't always be in your favor, no matter how much work you put into it. But a loss does not mean there is no value. I guarantee, if you are involved in politics for more than a couple of elections, you will see a loss of a campaign that you really cared about. But that doesn't mean it wasn't worth it. If you give up after failure in politics, you are in the wrong business. If you give up after failure in DevOps, you are in the wrong business. The truth of life, frankly, is that there will always be some successes and some failures. You will not see every election turn out the way you want it to. And you will not see every business project, whether IT or otherwise, become a success. That is just the reality of the world that we live in. Now, when you pour yourself into a campaign and ultimately it loses, especially when it's the first time you've experienced that kind of a loss, it can be easy to retreat into cynicism and ambivalence as a way to cope. The problem is cynicism and ambivalence breed complacency, and that kills the possibility of any sort of transformation. If you really want to see change, if you really want to make something better, whether it's in your business or in society in general, resist the urge to descend into cynicism. Because cynicism and ambivalence are the greatest weapons against any sort of progress, whether in politics, whether in business or whether in technology. If you resign yourself to the belief that something will never change, and people often do this so they won't be hurt, you don't try to change it, and it doesn't change, and it becomes a vicious cycle. It's far better to take the lessons learned. I 100% guarantee you will have learned something and carry it forward. There will always be another election. There will always be another project, technical or otherwise, that you can build on what you learned. Back in January, I was beyond overjoyed when I noticed this on GitHub. The code I worked on for the Hillary B&B project was forked and used by the Women's March on Washington. That is the beauty of open source. It's not just me and not just whatever particular campaign I worked on that can build on what I learned, but when it's an open source project like Hillary B&B, anyone can fork on it and build upon it. We may not have been able to achieve victory in the 2016 campaign, but we put together building blocks upon which others can keep building and also reach for victory, and maybe next time they'll even win. So going back to this question from the beginning, what does DevOps have to do with politics? When it comes to using technology to capture hearts, minds and votes, to driving the elections which determine the direction of our governance and society, the answer is simply everything. Thank you. Thank you very much, Nell. We actually have like two minutes, if you're okay, if you want to take any questions. We just have about two minutes before the scheduled break. Looks like there's one up in the back. Rather than me running up there, do you mind trying to yell? I can run up there. The question was, technology played a big role in 2008 and 2012, but things weren't open sourced as much. When that changed this year, and the question was, does that kind of level the playing field? And the answer is absolutely yes. Part of the reason all these tools were open sourced was so that campaigns with less money than other campaigns could get a technical head start without having to start from scratch and use open source tools largely for free to use them, though they still need to pay for hosting and such. So the answer is yes, it is meant to level the playing field a little bit. Thank you.