I was about to tackle the implementation of another meaningful metric that would help us determine the effectiveness of our style of working when this thought popped into my mind. Perhaps the thought arrived because of pain points that had been expressed in our retrospectives and my one-on-ones. It often wasn't so much a failure in how we'd agreed to work, but how it actually played out.
I think I've observed something similar watching a game of soccer. One player executes a stale strategy and passes the ball to set up a goal. He is expecting a team member to be there to complete the play. Instead the ball finds itself in no man's land and ultimately far away from the desired victorious outcome.
If the standup represents the pep and strategy talk before a game (and at half time), what represents the on-the-field cohesion that needs to happen during play? With those thoughts in mind I decided to focus on expressing the "right now" on our health radiator in the office to generate awareness of a game already in play. It seemed like a good experiment.
It's not always that easy to see what's going on in a software development ecosystem. You turn your head and notice two people pairing a piece of work, another is sifting over some code on their own and the other is navigating through one of our systems. And that's not to mention the other 2 working remotely. What are they really doing and how does it involve me?
The activity stream experiment takes a shot at starting to better articulate what the team is doing as the team is doing it. This initial version reflects the mechanics of how we work more than it reflects higher level goals. In a future version I look forward to radiating the higher level goals being realised via each of our activities too.
It feels worth mentioning that an agile team already benefits from principles that foster awareness, communication, realignment, joint purpose and many "team is more than the sum of individuals" ideas. We hope this experiment builds upon on this solid base. What follows are some outcomes of the activity stream addition.
As soon as we put up the activity stream people started talking about the work being done as it was happening. This in itself feels like a victory. Beforehand we often weren't sure what each team member (or pair) was doing so there was no way to initiate a targeted discussion.
How we work discussionsThere has been a renewed discussion around 'how we work'. In a way that I think compliments and even feeds the retrospective. Every now and then the activity monitor would phrase something in a way that someone wasn't expecting. The team could then either reinforce why we work in a certain way or choose to make a change.
For example, the stream highlighted that we weren't correctly setting the 'reported by' field when capturing tasks on behalf of our clients. The above example was reading "Greg captured ZRS-107 reported by Greg" when it certainly wasn't reported by Greg.
As mentioned, these inefficiencies are picked up and discussed via other means in a healthy Agile process (like retrospectives and standups) but the phrasing in the activity stream made the team more aware of what is supposed to be happening as they work.
AccountabilityPerhaps seeing your mug shot pop up with a well phrased version of what you're about to do will foster a sense of ownership as well as reinforce both required team interactions and the context of the Tranzact dev production line.
In this example it is clear Greg has started fixing TFN-712 after it failed Brigitte's testing. The phrasing emphasises ownership, required team interactions, what sparked the activity and what is being done to move forward. The phrasing also holds that this particular activity was the result of a previous undesirable outcome.
Colours and Gesture Icons
We've used colours and gesture icons to highlight celebration worthy and undesirable activities.
The thought was that we could help make more important moments stand out from the crowd.
I feel the activity stream experiment has added value to to the team and it has encouraged me to work towards radiating the higher level goals associated these "how we work" phrasings. A real time reminder of why you're working on something feels very powerful.
We are also hoping to incorporate more data sources. The activity stream currently only hooks into Jira Cloud. We are keen to expand this to include our Devops platform, support platform, calendars and other tools.
Under the hood
To implement the activity stream we code specific handlers (that generate phrasings) and match them with a pattern of change in the Jira log. Where there isn't a specific handler a generic one will construct something less specific that still expresses what's happening.
For example "Jonty demoed and code reviewed LABS-359 with Hein" is generated via a specific handler linked to the Change of the Status field from "Dev Complete" to "Ready for QA" .
While "Jonty updated assignee to Hein Nel on LABS-361" is a generic handler where Jonty is making the change, 'assignee' is the changed field and Hein Nel is the new value of the changed field.
If you would like more information about the architecture, or a link to the code repo, give me a shout.