I’ve found myself watching a lot of InfoQ videos lately. They’ve been a good way for picking up some new ideas, but especially helpful for identifying other people kicking around similar concepts to those we’re using at GDS and beginning to establish more consistent language for it.
This morning’s choice was James Lewis’ Micro Services: Java, the Unix Way which is an overview of how his (thoughtworks) team built a financial services system out of a set of composed services, joined together with HTTP and AtomPub.
His description of his role as “team storyteller” resonated as a way to describe with how I spend a lot of my time these days: sharing the context for past decisions, discussing how we can improve on them, and trying to bring it all together around a coherent narrative.
The call for applications that are “Small with a single responsibility” also stood out as it so clearly also describes the way we’ve tried to build GOV.UK.
- Each application only does one thing
- Small enough to fit in your head
- Small enough that you can throw them away (Rewrite over Maintain)
One of the things James mentions that that allows is putting each of those applications in a separate version control repository. That’s the approach we’ve (mostly) taken and it has been helpful for keeping deployment simple, but it has led to an incredible proliferation of repositories. In recent weeks I’ve begun to try grouping and describing those so that there’s something other than a massive list on a github page to help people navigate the code. It’s likely to be a never-ending task, but there’s a big storytelling responsibility to discharge there.