Speaking in Seattle [Scrum Gathering]

I’m expanding my talk from last October’s Agile NYC for the spring Seattle Scrum Gathering.

Instilling Agile Values – A Manager’s Perspective Tuesday, May 17th, 3:30pm

The scale and speed of an agile adoption are external measures that don’t speak to the founding values of the practice. Collective ownership, continuous improvement and trust are hard won but lead to craftsmanship and joy. They are enabling conditions for innovation and beneficial change.

I will retrospect on my contributions both positive and negative towards cultivating these values in two organizations. The first was a practice that matured over four years, led to a new mission for the team and direct collaboration with the founder and CEO. The second is a team establishing its own agile practice after winding down an engagement with a much larger agile offshore team.

What will I do more off? What will I do less of? What impediments got in the way?

Earning trust (agile adoption)

yellow rope with knotIn order to adopt agile practices in any meaningful way, you have to change your organization.

This includes the members of the team, the people who describe and prioritize work, and the executives who hold everyone accountable for the outcome.

In order to drive that kind of change, you need authority commensurate with your responsibilities.

But you also need influence with people over whom you have no authority. Who may, in fact, have authority over you.

The best path to this is integrity. Be the same person in all contexts. Accomplish things for people. Keep your word.

Never assume you’re entitled to trust. Earn it. Work toward a shared definition of success and continue to earn trust as you progress through your change program.

The existential joy of retrospection (agile practice)

Spiral JettyEvery two weeks as part of our Scrum practice my team holds a retrospective to ask:

  • what were our goals in the last two weeks,
  • what did we do that helped us achieve those goals,
  • what did we do that got in our way, and
  • what essential set of things we should we keep doing or do differently.

Retrospection is a process focused way of doing more and more of the things that are important and a less and less of the things that are not important.

And our efforts at inspecting and adapting are themselves a work in progress.

We need to rely on each others’ strengths to work past our own weaknesses.

We need to expect more of each other and to demand more of ourselves for each others’ sake.

We thread this path to trust and loyalty, to collaboration and self-knowledge, to craft and achievement.

Making an iteration/sprint burn up chart with Thoughtworks Studio Mingle

As I’ve said before, we use Thoughtworks Studio Mingle to track our backlogs.

One thing Mingle has not provided for us in the time we’ve worked with it is a daily burn up. Kind of shocking.

Last month, we migrated our instance to the EC2 cloud. I took advantage of that migration to un-cruft our Mingle instance, apply the XP template and simplify card types and states.

Now time to stop dumping data out of mingle to report status. Yes. Kind of shocking.

The first step was to track the data points we need for a burn up.

That involved creating a series of date fields to track the day on which a story moves from in analysis to ready for dev, in dev, in qa, ready for customer (QA done) and customer accepted.

We also need a way to have those dates recorded automatically as part of moving cards from one state to another.

Mingle card transitionSo we set up Mingle card transitions.

This replaces the drag and drop behavior of a card from one swim lane to another with a button link on the card. This a bummer for our product team but it allows us to script transitions to both change the status and set the appropriate date field.

Now to setup a burn up chart using Mingle charts and mql.

{% dashboard-panel %}
{% panel-heading %}Current iteration burnup{% panel-heading %}
{% panel-content %}
{{
data-series-chart
conditions: (‘Type’ = ‘Story’ OR ‘Type’ = ‘Defect’ OR ‘Type’ = ‘Task’) AND ‘Iteration – Scheduled’ = (Current Iteration) AND ‘Status’ > ‘In Analysis’ AND ‘Status’ is not ‘Deleted’ AND ‘Status’ is not ‘Blocked’ AND ‘Estimate’ IS NOT NULL AND ‘Iteration – Analysis Completed’ IS NOT NULL
labels: SELECT DISTINCT ‘Date Estimated’
x-title: Date
x-labels-start: 2010-08-10
x-labels-end: 2010-08-21
y-title: Estimated Scope in Story Points
show-start-label: false
data-point-symbol: diamond
data-labels: true
chart-height: 500
chart-width: 800
plot-height: 375
plot-width: 500
trend-ignore: zeroes-at-end-and-last-value
cumulative: true
series:
– label: Total Scope
color: black
data: SELECT ‘Date Estimated’, SUM(‘Estimate’)
– label: Development Complete
color: yellow
line-width: 1
data: SELECT ‘Date Dev Complete’, SUM(‘Estimate’) WHERE ‘Status’ >= ‘Development Complete’
– label: QA Complete
color: orange
line-width: 1
data: SELECT ‘Date QA Complete’, SUM(‘Estimate’) WHERE ‘Status’ >= ‘QA Complete’
– label: Accepted
color: blue
data: SELECT ‘Date Accepted’, SUM(‘Estimate’) WHERE ‘Status’ >= ‘Accepted’
}}
{% panel-content %}
{% dashboard-panel %}
{% dashboard-panel %}

Observations:

  • I had to hard code date start and date end in x-labels-start and x-labels-end but otherwise, I was able to use the project variable ‘Iteration – Scheduled’ = (Current Iteration) that’s part of the XP Template.
  • Burn up is accomplished by setting cumulative:true. Unfortunately, I can’t get trend lines to work as a result.

Here’s what the result looks like:

Burn up using Mingle data series chart

This chart along with selected summary counts and tables allows us a real time dashboard of the health of our sprints.

As you can tell from the burn up, we have work to do improving flow in our iterations.

Anyway, reporting is a work in progress. As is everything.