Software developer David King gives us an insight into how the GOV.UK Verify developer team works.
It’s 9.40am on a Monday morning. A bell rings in Aviation House announcing the first GOV.UK Verify standup of the week. Our team of 12 developers gathers each morning for a brief 5 minute meeting. Here we cover the usual items you'd expect to find in an agile development team. We run through the wall of user stories, defects and continuous improvement work (eg. paying back technical debt). We take turns to discuss work completed, work to be done that day and any blockers preventing us from completing that work.
After standup we look at the stories on the wall and split ourselves into pairs to work together to complete that item of work. Within the identity assurance programme we favour working as pairs of developers. We find that pairing helps share knowledge and transfer skills throughout the team. It also produces high quality, maintainable code. In situations where it doesn't make sense to pair, we ensure peer review as a minimum to see your work deployed into production. Daily releases to GOV.UK Verify are carried out in a pair of 1 developer and 1 web operations engineer.
A second bell rings at around 9:45am. Web operations engineers join our developer standup to discuss items of work relevant to the entire technical delivery team. This might include a team member asking for a pair to release a component of GOV.UK Verify to production. Other topics of discussion could be a service disruption or discovery of a particularly nasty bug.
Once we have completed the joint standup, we ring another bell to signify the start of the webops standup. Now it's time for our developer pairs to start (or resume) work on their user stories. We write most of the individual components in GOV.UK Verify in Java and these components work together in a microservices architecture.
Whilst we’re coding and maintaining applications written in Java, we wouldn't characterise our developer team as ‘Java devs’. We're a team of developers with a wide variety of experience. Many of us have backgrounds and interests in other domains, languages and paradigms. We think this variety and diversity improves the quality and design of our codebase. Generally, we follow test-driven development with suites of unit, integration and acceptance testing running locally on our Continuous Integration (CI) server.
In addition to standups we have a team meeting each week to share ideas and propose larger code changes. For instance, we recently used CRC cards - a classic tool in Object Oriented design - to build a shared understanding of our architecture, clarifying where responsibilities lie and how many collaborators each service interacts with to fulfil its responsibilities.
11am on a Monday means it’s time for the regular programme-wide showcase. This is an opportunity for each area of the Identity Assurance Programme - including the developers - to provide a quick update on their work from the last 2 weeks.
This is convenient for the delivery team as we work in 2 week iterations. We bookend each iteration with a kick-off (to discuss the work included in the iteration) and a retrospective (to review how the iteration went and explore potential improvements in our process).
Other highlights throughout a week of working on GOV.UK Verify include observing user research in the lab. This is an opportunity for the developer team to see how our work affects users and keep the GDS mantra "What is the user need?" at the top of our minds. We ask each member of the delivery team to attend user research on a regular basis with the outputs from this research feeding into the ongoing improvement of our service.
Working as a developer on GOV.UK Verify is about more than just programming. It requires communication and interpersonal skills - plus the creativity to come up with ways to make our ways of working better. We’re a busy team working on a challenging project and there’s a sense that our ideas can make a difference.
Interested in joining the GOV.UK Verify team? Take a look at our current vacancies.