This week made me truly grateful for the speed with which our team is able to switch direction and avoid heavily committing to work.
To Me, To You
Our current strand of work is to improve the state of cross-application diagnostics. We’ve been spiking and evaluating a bunch of different options - once we’d firmly established that there are pieces of preliminary work needed to gain the most value from the cross-team improvements, we halted the work.
Then one of the other teams had a pretty severe outage.
We brought our test system back up and started feeding it data from their systems to help trace the source of their errors. After which, we brought it back down again.
This use-case was an unexpected one and made us realise that we had a new avenue to pursue to deliver real value to teams, especially in crisis mode where every minute counts.
As the Shared Infrastructure Team, with visions of expanding into a full Platform Team at Unruly, we struggle with evangelisation and adoption of our solutions - a lot of the work we do is a balance between solving immediate problems for the teams and doing it in such a way so as to advance (or at worst, not hinder) future developments and improvements.
We’ve unofficially adopted a stance that reminds me a bit of ‘disaster capitalism’ (but in a positive way!) - the team keeps an eye out for problems and outages across the teams, and thinks of ways that we could ‘profit’ as a department.
In the recent example of the severe outage in the previous note, we could:
- Add consistency to our cross-application tracing
- Better monitor the state of the environment the application is running in
- Be able to scale out to other AWS regions to take the load in case of emergencies
These points are broadly Observability, Monitoring, and Provisioning/Scaling - all of which fall within Shift’s conceptual domain, and we’ll be chatting with the team in question to help out with these things.
I’m trying to sell the benefits of using the Conventional Commits spec to Unruly - almost all of our teams have adopted some flavour of it, and I wrote a small amount about it recently (CI and Structured Changelogs) - during my 20% time I implemented a parser using the Java Parboiled library (for actual grammars and stuff) and I discovered a spec ambiguity.
My pull request to address this was merged this week :)
I also added a bit of testability to the WhereDoIVote-Widget project I helped DemocracyClub build - using React’s builtin environment configuration functionality, you can now parametrise the API server with a local url for deeper local testing (e.g. of new API features).