Success StoriesBlogContact
voting-app-header
Case Studies |

How a battle over a trip to Europapark forced us to build a voting app

Judith Urban

September 28, 2020

Groups make us feel identity. We want to „belong“. We aren’t just members of one group alone, or society as a whole. We are members of lots of groups that define us: at home, in our families, in our leisure time, at work. And at the same level that groups define us, we define them, by finding our level of participation.

I belong to a mix of smaller workplace groups that are all part of a software company called Peerigon. During our team meetings, we often need to make decisions which allow every team member to participate and share their voice. For example, once a year, the whole team tries to elect someone who can take on the position of trustee (a go-to-person if you need to talk to someone other than your boss). Once, we had to choose between a set of designs for the next Peerigon sweater. And last year, the whole group had come up with a bunch of ideas for the next team event. As we are a remote team that is spread across different countries and time zones, the question what exactly we are going to do when we come together once a year is quite important. Tanner was keen on going to Europapark, my idea was a festival called „Im Grünen“, Paul suggested doing a beergarden-bicycle-tour, and everyone was quite passionate about some plan or another.

Group decisions and voting

It’s a common knowledge that making group decisions is an important part of group live. But it’s not always easy to come up with decisions, even if group members generally feel relaxed, open and direct with each other. In our team, we had made group decisions by either raising hands during a meeting, or giving ideas the thumbs-up in a group channel. We had always counted up the votes for each choice, the majority won, easy. This was the democratic way, after all. Wasn’t it? During our election for the best summer team event, there were some issues that came up, questioning if this voting system was a good idea, after all. These doubts were the main reason why we finally decided to create our own voting app. The raised concerns were basically about three things: fairness, privacy, and practicality.

tablet lying in a desk showing the home page of the voting app

Our aim: create fair and secret online polls

Challenge number 1: Voting in a fair way

Whenever we had a group meeting where we counted up raised hands, we noticed there was hardly a date where everyone was present. People who weren’t there (e.g., on sick leave or on holiday), simply couldn’t participate and that was that. But we could see that it wasn’t ideal. It was especially hard to decide on things where everyone had a fair amount of passion. Tanner’s love for Europapark is legendary, and so is Paul’s love for the beergardens in Upper Bavaria. But I couldn’t find many fans who liked the same kind of festival that I preferred. If you have a majority vote, you also have a minority that cannot win. Often in this system, the winner takes it all. Especially if the majority rule doesn’t produce big surprises, there might be a sizeable segment of the group that may feel they somehow “lost”. This might decrease their commitment to the decisions, or the group all together. You might say: not if you only have an absolute majority win — that is, one option that wins with more than half of the total votes. In most cases, if you want an absolute majority, you need a runnoff vote. This is also where things become more work…. Which leads to the next problem about majority votes.

Challenge number 2: Voting in a practical way

Whenever you have a group of people deciding on things, you need at least one organizer: a person who has to keep track of all the votes. And the time. And who reminds everyone to cast their vote. Or keep track of all the people who preferred to abstain. Someone impartial who counts up the votes and makes sure there wasn’t a mistake. And who, if some new information comes up after the poll had started, or whenever you ended up in a draw, or need a runoff vote, had to start all over again. For us, this person was Lisa. And although she always made sure there weren’t any errors happening, this took some time and effort, and Lisa had lots of other things on her schedule as well.

Challenge number 3: Voting in a private way

By raising hands, everyone sees what everyone votes for. The general idea is that everybody should stand up for their choices. This is what transparency is all about, right? But if everyone sees where everyone’s alliances are, some people might make choices for the looks. There is a reason why elections and ballots are confidential. Sometimes some members of the group capture more of the share of influence on the outcome. It can happen involuntarily, but raising hands is susceptible to subtle forms of power struggle, or other group dynamics. On top of that, during a raise-your-hand-vote, people who cast their vote later have a tactical advantage: if they can make out a general tendency, they know where their vote might make a difference, and quickly adapt accordingly.

Get rid of a problem, build an app

So that was that. We had the summer coming on and we had to choose a summer team event. And we were wondering: How can we make our elections fairer, more private, more practical? You’ll say: for a team that consists mainly of programmers and web developer, surely there must be a solution to this problem? You’re right, we said: let’s build an app for that! We weren’t convinced of the majority voting tools offered by companies like doodle. During the last presidential elections in Germany, I had stumbled across some brilliant videos on youtube, explaining different kinds of voting systems in a fictional animal kingdom. We chose one of the ballot types they explained there, and without much ado, we decided to try out our app using a voting system currently used in Australia, in Ireland, Sri Lanka and San Francisco: the instant runoff voting.

person sitting in front of a laptop, the screen shows a result page of the voting app

The results of our team voting for the birthday event

How does the instant runoff voting work?

I found the instant runoff vote, or alternative vote, really interesting for one particular reason: voting is done with preference ballots. Which means that you don’t just cast a vote for your one single favorite option. You provide a ranking instead, bringing all the available choices in an order from first (e.g. Europapark: my favorite!) to last (e.g. Festival: not a fan). I am a very indecisive person, so to me, this seemed is a more human form of decision making. Everyone gets to make a priority list. Or they abstain. And when all the team members have cast their vote, you collect all the priority lists and count out a winner. Basically, you count up the voters’ first choices in several rounds, until a winner is found. In every round, the choice with the least first-place votes is eliminated from the election, and any votes for that candidate are redistributed to the voter’s next choice. This continues until a choice has a majority (over 50% of all votes). But before you read this again and twist your brain: they explain it way better in this youtube video about the instant runoff voting system.

How we built the alternative voting app

So we as the team’s juniors, Celestine, Tanner and I (Judith) set to the task. We made it a team effort and learned a lot, using Vue.js for the frontend part with a mongo database in the backend. And we did it! This month, we’re proud to launch our voting app, which does it all for us. Well, maybe not everything, we still have some work to do. But here’s a list of reasons why it was worth the effort. Our instant runoff voting app…

  • allows you to sign up, create teams and invite as many team members as you like.
  • allows you to create polls, add start- and end times, add as many options as you want.
  • automatically takes care of opening, closing, counting polls and inviting team members to cast their votes.
  • allows voters to create their rankings via drag and drop (which, we have to admit, feels really intuitive :) ).
  • is responsive.
  • allows voters to change their mind and vote again or abstain as long as a poll is open.
  • counts up the votes and selects a winner automatically, and shows you infographics about how the winner was chosen.
  • encrypts it all, so it never gives away information on team members, or what people voted for.
  • helps us make group decisions in a fairer, more confidential, more practical way.

So what does it look like, if someone is voting and afterwards closing the poll and looking at the results? See for yourself!

How a poll works with our voting app

How we use the instant runoff voting app at our company

So voting on the summer team event, all Peerigon members had the advantage of more diverse choice options. As everyone was able to provide their alternative, second, third, fourth, etc best options, everybody seemed to be all the more happy about the overall outcome of the ballot. Of course, instant-runoff voting isn not perfect: it doesn’t eliminate the number of „wasted“ minority votes, but it reduces them. But then again, can something like the perfect voting system even exist at all? Doesn’t it all depend on the use case and situation? To us, our tool provides us a fairer alternative to a winner-takes-it-all election. We have started to use it when our team needs to choose between multiple options (three or more, ideally). This is just the first version of our app. But we have big plans, of course! More customization options, for a start. In the future, we would like to add the feature of choosing between different voting methods. Plurality systems, cumulative voting, approval votings… There are so many interesting ways to reach a consensus, and we are going to check them out. And another idea is adding a quick live voting feature: To get a quick overview of an audience’s opinions during a meeting and enable everyone to contribute quickly using their smartphones.

But first things first! Our app is now in the beta state, and it is ready to be tested — by you, if you like. If you are interested in voting the instant runoff way in your band, science club, or organization: Go for it! Just sign up and try it out to your heart’s desire. It is free. If you like it, or find a bug: would kindly you report it back to us?

In case you were wondering which summer event suggestion won during our first big voting app test? Well, it would have been Europapark, of course. But a virus called Corona somehow got in the way. Which is the reason why turned Jessis backyard into a festival/beergarden this summer. Which of course, given that we also got an app out of it, should count as group decision that is three times as good.

Voting App

Instant Runoff Voting

Group Decision Making

Vue.js

MongoDB

Weitere Themen

Irena Reitz, Celestine Auburger, Leonhard Melzer, 05/18/2021

Towards fairness: calculating the Peerigon Gender Pay Gap

Diversity

Salary

Company Culture

Zum Blogartikel

Tanner Hoisington, 04/20/2021

Exploring various voting systems with Konsens

voting systems

ranked choice

positional vote

simple plurality

konsens

Zum Blogartikel

Moritz Jacobs, 02/12/2021

A guide to CSS units — pt. 4: angles, time, dpi and values without units

CSS units

CSS angles

CSS time

unitless

dpi

Zum Blogartikel

Wir sind Peerigon, eine Agentur für Softwareentwicklung.

Peerigon GmbH
Werner-von-Siemens-Straße 6
86159 Augsburg
+49 821 907 80 86 0

mail peerigon

service

Full-stack ConsultingSoftware DevelopmentProgramming WorkshopsTeam Support
BlogSuccess StoriesContactgo digital fundingCodeBoost®

© 2021 Peerigon

Privacy PolicyLegal NoticePress