How we work

An introduction to our approach and planning of engineering projects.

Start with why

To work well together we all need to know what we're doing, and more importantly why we're doing it. What is the goal: for the Client, for Friday as an organisation, and for us as individual developers?

Understanding why we want to do something allows us to explore options for how to do it, what to build, who to work with and so on.

Where possible we make the outcome of these goals measurable: are we looking to acquire more customers, drive revenues, reduce churn? Sometimes the goal is more open ended: it is about testing a hypothesis, or for an individual, learning a new skill?

Stories and Story Maps

With our purpose established we figure out what it is we are going to build; what capabilities we are enabling the Client to provide, and what features this entails.

One of the techniques we use to do this is Jeff Patton's Story Mapping.

image

A story is the basic building block of value in what we deliver. These bullet points taken from Mike Cohn's User Stories Applied neatly sum up what a story consists of:

  • a written description of the story used for planning and as a reminder
  • conversations about the story that serve to flesh out the details of the story
  • tests that convey and document details and that can be used to determine when a story has been implemented correctly

The conversations aspect of stories are key. Communicating daily both within the team and beyond, be it in person or on Skype, helps us maintain a shared understanding of the work and why we are doing it.

Scrum and Lean

image

With the work mapped out and broken down into stories we work iteratively to deliver. We use methods and techniques from Scrum and Lean to enable this.

We typically work in two week iterations, with just in time planning at the beginning of these sprints. We co-ordinate the work with daily stand-ups and use retrospectives to learn from and improve the work.

Operational metrics

Once work is underway, we track it in JIRA, using the metrics of System Lead Time and Throughput to measure progress.

image

These metrics tell us how we are doing against our goals, showing us where bottlenecks occur and where interventions might be needed.

Together with the stand-ups, the stories, and the story maps, they give us feedback loops that allow us to work with emergent requirements, changing needs and new opportunities.

Suggested reading