Duncan Crowther
Duncan Crawford Equal Experts Alumnus

Our Thinking Tue 2nd June, 2015

It’s the difference between ‘doing agile’ and ‘being agile’

I have been playing the role of the main Technical Architect on one of our larger engagements for over 2 years now – working closely with HMRC Digital to build their new digital tax platform.

We just received a great testimonial from one of our developers Tim Gordon that I wanted to share with everyone – we are working on something truly special and this was a great reminder of that. Thanks Tim!

At the recent EE associates conference I was asked what I thought about working on the HMRC multi-channel digital tax platform and responded “It’s pretty awesome – in fact, I think that working on Digital Self-Assessment has probably been one of the best projects that I’ve worked on in my career.” Great, you might say, but the real question then is “Why?”

Was it because we were not only building the platform on open source software, but were also open-sourcing our own libraries in the spirit of transparency and giving back to the taxpayers the software they’d paid for?

Was it because we used Play Framework Scala-based micro-services as an entirely appropriate solution to the largely I/O-bound problem the tax platform presented? Or, that composable nature of reactive programming in Play made the problem of building up higher-level services from lower-level dependencies no harder than it needed to be?

Perhaps it was because of the buzz in the air and the collaborative atmosphere of knowledge sharing in the delivery centre, all underpinned by the devops team keeping dev teams as close to deploying to production as possible given the security considerations?

The secret ingredient

I like to think that the secret ingredient was that HMRC, EE and other dev partners in the Digital Self-Assessment team were given a hard but achievable challenge to meet with all these technologies, tools and practices, which we worked hard with to be masters of our own destiny. We came together, owned the problem and found our flow, getting real-world feedback from our continual deployment into production – from not just the real-time monitoring of the performance of our systems through our funky graphs and dashboards, but also directly from the users themselves and through A/B testing.

This is what enabled us to take on over a million users in a year and save on sending millions of letters – the weight of two white rhinos! Not to mention keeping the odd minister happy on short notice.