A search-based single site for all government services
GOV.UK, the site that is to replace Directgov, went live last night in beta form. Unlike many well-known government IT projects, this one is a thoroughly modern undertaking, from its working practices – an agile, iterative approach – through to its use of open source technologies and cloud-based hosting. You can take a look at the colophon here.
Directgov's breadcrumb-style indexing that requires the user to click through categories to home in on what they're looking for has been done away with in favour of a search-based model. The design team has come up with 667 things that people seek to achieve on government websites and made them easy to discover via the search box, with some of the most commonly sought-after pieces of information (such as "maternity pay entitlement" and "what to do after someone dies") pinned to the front page.
GOV.UK still has a long way to go before it takes over from Directgov, but this unveiling is a massive step forward. We spoke to Richard Pope, who is product manager of the beta, about what the project has achieved.
.net: Which aspects of this project are you most proud of?
RP: I'm pleased about where we have managed to get our users straight to the information they need – stripping back complicated things like finding out if you qualify for maternity pay and turning it into a set of simple questions. Or where we surface commonly searched for information like VAT rates and puts the info front and centre on its own page.
.net: What were your main learnings from the alpha site?
RP: That admin systems and your working environment deserve just as much attention as the end product you are building.
In terms of the site, we learned that we need to be explicit in both design and language. If you need people to see a particular design element, then fix it to the browser or make it bright pink. If someone has reached the end of a process then spell that out as loud and clear as possible.
.net: What were the special challenges in doing web design for the government?
RP: The audience is everyone in the UK. People don't hang out with the government. So you have to build things that genuinely work for everyone rather than just ticking boxes, and you have to design to get people in and out as quickly as possible rather than trying to make things 'sticky'.
.net: Why did you choose to use Ruby for the application code?
RP: Ruby gave us the right balance of productivity and clean code, and were well known to the team we’ve assembled. But we're not dogmatic about Ruby – we're using Scala for one piece of infrastructure and are committed to picking the best tool for any given job.
.net: In what ways was Scala particularly suited to your needs on this project?
RP: The router is a central component that routes incoming requests to the appropriate backend app and needs to handle high, concurrent traffic. We were concerned about Ruby's ability to handle this, so we built one in Ruby and one in Scala and had a code-off. Scala won.
.net: How important was it to you to use open source technologies?
RP: Very. It's the right thing to do for a whole bunch of reasons. It lets us build on stable tools produced by thousands of developers. With no license fees it's cheaper, and since any money we spend is the tax-payers' money thats doubly important.
But we're not just using open source. We're also developing our code in the open under free licenses so anyone can take it and build on it (or even suggest changes).
.net: How successful has it been to apply the agile/iterative approach to a government project?
RP: The project wouldn't have worked without it. We learnt a lot throughout the alpha project and the beta and the iterative approach allowed us to implement what we learnt as we went along. If we'd fixed everything upfront the end product would have suffered.
.net: How have your hosting arrangements supported your style of working?
RP: Using cloud hosting obviously allowed us to scale with less hassle, but more importantly it has let us quickly and rapidly experiment.