Image by UK Parliament/Jessica Taylor using Creative Commons Licence 2.0
In an historic event this week, MPs took part in the first ever remote division (vote) in the House of Commons instead of in the House of Commons Chamber. Matt Stutely, Director of Software Engineering in PDS, explains how a remote voting system was built and tested in four weeks during the Coronavirus pandemic.
My team designs and builds products and services for Parliament. Over the last few years, we have worked on a wide range of exciting projects. We launched for the first time the parliamentary ‘bible’ Erskine May online and for free, and new Members pages where anyone can find up to date and accurate information about their MPs.
In early April 2020, we were asked by the House of Commons to build a remote voting application for Members - in just four weeks. To help Parliament continue to function during this challenging time, it was essential that Members had a means of casting their votes without having to be physically in the House of Commons.
This is the story of how remote voting works, our biggest challenges, and what’s next.
How voting works in normal times
Voting takes place in the lobbies and is done as Members walk through and give their names to Clerks, who record their vote on a laptop.
This information is sent to a central voting application where the data is checked for any recording errors. It is then published to the website, the Commons Votes app, and other systems like Hansard.
There is a lot of integration between these systems to save multiple teams needing to input the same data.
For remote voting, we needed to build something that was as close to voting in the lobbies as possible. It had to be secure and robust and we had very little time to build and test it. All this while the team is adjusting to working remotely and getting used to lockdown life.
Building, testing, and security
It was important that MPs voting and the Commons staff who run the voting process did not have to learn new systems during a time of huge change. The remote voting system needed to work like the existing applications they use. It needed to feel familiar.
Because we had developed the voting software already in use and MemberHub, which MPs use to table parliamentary questions or Early Day Motions, it was a straightforward choice. We would evolve these systems to deliver remote voting.
The system had to be secure, so we decided to use a password and a multi-factor authentication (MFA) system for this, much like you might use to log in to an online banking system.
We needed to be confident that we could audit votes so that if ever there was a dispute, we could ensure that data couldn’t be altered as it moves through the system.
Jam scones and tea
After a couple of weeks, we had something to test. To simulate the experience of MPs logging on to vote at the same time, we asked hundreds of our colleagues across Parliament to help us.
Volunteers were asked to vote on fun questions like whether they put jam or cream on a scone first, or whether they leave their tea bag in or take it out before adding milk. I’m happy to report that jam first and tea bag out both won comfortable victories!
We learned a lot about how the application behaved when starting and running a vote. It may sound simple to scale a system to 650 users, but there are procedural rules that govern how a vote is run. This led us to make hundreds of calls per second to our servers, which caused a few issues.
Trial and error help iron out problems
We changed how it worked to reduce the strain on the servers and after we’d made more updates, we trialled the system with over 550 MPs, allowing them to experience it before a real vote.
We discovered that our network security was so strong that our firewalls would not allow some traffic into our network. We made changes to ensure we kept the parliamentary network secure, whilst allowing MPs to vote on their phones if they wanted to.
How remote voting works
This week we got to see the system operate for real as the first vote got underway in the Commons.
When a vote is called, MPs receive a notification by text and email. They have 15 minutes to log in and cast their vote using the new MemberHub remote voting functionality.
The text of the motion is shown on the application, and MPs select either ‘Aye’ or ‘No’ to cast their vote. The results go to the central voting application where they are reviewed by the Public Bill Office team.
Once checks are complete, officials will pass the outcome of the remote vote to the Speaker, who will make the announcement in the Chamber as soon as possible.
Late nights, early starts
Everything has gone to plan this week, and we’re thrilled that MPs have found it easy to use and that there’s so much interest in how it’s all happened behind the scenes. Messages of thanks from the Speaker and others have given our tired team a big boost after four weeks of seven day a week coding!
We could not have done this alone. Across the House of Commons, we’re indebted to the Clerks and all the Chamber and Committees team (CCT) who offered expert advice and support across many topics.
Collaboration was vital
Our colleagues in both the Participation and the PDS Change and Engagement teams were amazing. Alongside clerks and CCT colleagues, they helped us to reach out to around 400 MPs in two days. We even offered virtual drop-in centres so MPs were able to get direct, live support during our trial runs.
We would also like to thank the hundreds of staff from across PDS and the House of Commons for helping to test the system in such a short timeframe. Their involvement was vital, as it helped us iron out issues as early as possible.
The Parliamentary Digital Service is here to help Parliament become digital-first. Seeing what we have been able to build in four weeks has been truly amazing. Our next project is to build a similar system for the House of Lords. More on that in a future blog post.