Agile

Agile Metrics in Action

Time flies! It’s been a while since I did some blogging, but now I’m back with a book review ”Agile Metrics in Action” from Manning Publications. The subtitle is ”How to measure and improve team performance”. This is an interesting topic I must say! If you do a change in your team, how do you know if it was for the better, or for the worse? You need to have some information, to be able to compare before, and after, the change. Voila, metrics comes in! The book is written by Christopher W. H. Davis and has 270 pages, it was released in July 2015.

”Agile

Content

The book consist of 10 chapters divided into three parts. The chapters are:

  1. Measuring agile performance
  2. Observing a live project
  3. Trends and data from project-tracking systems
  4. Trends and data from source control
  5. Trends and data from CI and deployment servers
  6. Data from your production systems
  7. Working with the data you’re collecting: the sum of the parts
  8. Measuring the technical quality of your software
  9. Publishing metrics
  10. Measuring your team against the agile principles

In software development we need measurement of what we produce, of course, but also measurement of the impact of the changes we make to improve delivery. Collect, measure, react & repeat – these are the steps in the feedback loop that we want to use.

”A method of measuring something, or the result obtained from this” – metrics defined by Google

In the software development lifecycle (SDLC) data to use as metrics can be obtained from the following sources:

  • Project tracking
  • Source control
  • Continuous integration
  • Deployment tools
  • Application monitoring

Development teams should be responsible for tracking themselves through metrics that are easy to obtain and communicate!

From your project tracking system (PTS), like JIRA or Rally, you can get the following:

  • Burn down chart
  • Velocity
  • Cumulative flow
  • Lead time
  • Bug counts

But why stop with only this? The book has a tip about tagging your tasks with as much data as possible. Tag for example all tasks that get automated tests written for them with:
#automated

With a clever query in your PTS, you can use this tag to create a new metric, representing the percentage of the tasks that are covered with automated tests. Store this metric over time, and you can see trends, to answer the question ”Are my automated test coverage going up or down?”. Another useful thing, is called recidivism, which is the measurement of tasks as they move backward in the predefined workflow. If a task moves from development to QA, fails validation, and moves back to development, this would increase the recidivism rate.

Source control is where your code is being written and reviewed and is a great source to complement the PTS data for better insight into how your team is operating. Continuous development starts with continuous integration (CI), the practise of continuously building and testing your code as multiple team members update it. Also use data from your deployment tools and application monitoring to combine everything into powerful metrics, that can tell the team and other stakeholders a lot about the current situation!

To calculate a custom metric you need two things:

  • Data to generate the metric from (as mentioned above)
  • A function to calculate the metric (can be in a range from very simple to super advanced. But remember you should be able to communicate your metric to other people!)

Recommendation

The book ”Agile Metrics in Action” does a good job in thoroughly explaining the topic about metrics. This is done with informative texts, together with a lot of pictures! If your are interested in metrics to help you improve your team, you should definitely check this book out!

All the best,
 Tomas from TheAgileist

Advertisements

Self-Organization & The Planning Board

Last summer I wrote about how I used some agile principles and practices to handle three problems we faced when living four families together in a small summer house. You can find that blog post here. When my vacation started, I spent some time thinking on improvements for this year’s stay (bringing together in total 19 persons). When everybody arrived I had prepared some new ”tools” for self-organization, with the Planning Board as the major new idea!

”The

These are the ”tools” we used

The Planning Board

The planning last year was compelled of a to-do list, and a schedule for the daily meals put up on the most central place in the house (i.e., the fridge :)). This set up worked well enough, but I wanted to improve it this year, and ended up with the Planning Board as shown in the picture above. It’s a matrix for each day in the week (that consisted of our stay in the summer house) with time slots (before lunch, lunch, afternoon, dinner and evening). To fit on the fridge the largest pager I could use was in A3 format, so I had to do my own stickies to be able to fit it all (cutting pieces of paper and using tape). As you may recall, ruler, scissors and tape are amongst my favorite agile tools! 🙂

”The

Above is a picture of the completed planning board, before any stickies were added. As you can see, I took the opportunity to make it colorful. Some additional information was also added to the board.

Below you can see the planning board, before the week started placed on the fridge (as said, the most central place in the house, where everybody passes several times a day).

”The

Initiatives

A sticky on the planning board represented an initiative. Maybe we could have used the word activity as well, but initiative felt better and more generic to fit our purpose. Each initiative had a driver (marked with ”D: <Name/s>”) on the sticky. The driver was the main responsible person for the initiative. Some initiatives regarded all persons, so they were marked with ”D: All”.

Some of the initiatives were given from previous years (like some shorter trips we like to do), so I added them before the week started to the planning board.

So could anyone just add an initiative? The answer here is both yes and no! Yes, because there were no rules for who could add a new initiative and no because some ”secret rules of self-organization” applied. I will explain them now. First, the driver needed sponsor(s) for the initiative. I.e. person/s that agreed and would ”join in”. Since most of the initiatives didn’t involve any major costs, finding sponsor(s) for the driver was pretty easy (”Shall we do this? Yes, that sounds like an good idea, let us add that to the planning board.”). A few initiatives involved cost, and they had to be funded, i.e. agreed upon with the owner of the summer house.

”The flyer”

To communicate about the initiative the driver in some cases used a flyer. Those didn’t fit on the fridge so we used a door for that. On the flyer the following information was stated:

  • Name of the initiative
  • Short description of the initiative
  • Name of the driver(s)
  • A motto
  • If participation was mandatory or not (the children put up a show every year, and attendance to that is always mandatory 🙂 )
  • Preferred time for the initiative (maybe if it was best suited as an evening activity)
  • An inspiring picture
  • Additional information.

The door

”The

Here you can see the door in the beginning of the week with five flyers added. The door also contained some feedback boards, that gave the opportunity for anyone that wanted, to give feedback (whether it was positive, negative or suggestions for improvements).

The planning meeting

After the dinner when all the participants had arrived, we held a planning meeting. At the meeting, this years new ”tools” were explained and we also did the first version of the planning (i.e., putting up all the stickies) on the planning board. Later some stickies changed back and forth during the week, mainly because some of them were weather sensitive. So the planning was like a guideline that we could follow, not rigid, and given the possibility to be flexible. This worked out really well during the week!

Self-Organization

With the ”tools” describe above the ecosystem was set enough to allow for self-organization! No-one was forced to do an initiative. Naturally the driver started and others would ”dig in”. This worked out really well during the week!

Hey, so you mean no problems at all occurred? Well yes, of course some problems occurred and needed to be sorted out. Mainly those discussions were handled by the four siblings (representing the four families). They came to an agreement in consensus, and in all cases I am aware of, everyone else aligned to that decision. Metaphorically, you can see this as the driver seeking sponsors to fund the initiative.

What happened?

Initiatives (a lot of them)

A lot of initiatives, with high commitment and value! It felt like more activity than previous year. New initiatives emerged during the week (I’m super happy with this, that showed that the ecosystem for self-organization really worked). Here is an example: One of the first evenings, an adult conducted a music quiz, following evenings many of the children held there own quizzes (with their music, almost impossible for the adults to guess :)).  Another example is building of a new porch for one of the smaller houses. This was an initiative that kept going ”in the background” during several days of the week (first to tear down the old porch, get rid of that, and then building the new).

Committed drivers (most of them)

In most cases, pin pointing a driver was really beneficial for the initiative, and the outcome was much better than leaving this with ”handled by whom it concern”. For one initiative I had higher hopes on the driver. In reflection maybe I should have taken a step back to get more involvement (I produced the flyer for this initiative, while not being the driver).

Alignment

Very little arguments or problems occurred during the week (less than previous year). All the people were aligned in terms of them knowing what was going on (a child knowing what day the Aqualand visit is planned, to an adult knowing who is responsible for making the dinner). The whole week was pretty much smooth sailing all the way!

Agile things we used

Open Space

If you are unfamiliar with Open Space, you can read more about it here. Basically I thought of the week like a long open space where initiatives (instead of topics) where put into time-slots.

Visualizations

The Planning board and the feedback boards are examples of visualizations.

Feedback door

Jurgen Appelo have come up with the idea of a feedback door. That inspired me to our door, as seen in the picture below (depicted after the week had ended).

”The

Planning meeting

Like the sprint planning meeting (in Scrum), we had a planning meeting with all participants to get understanding and alignment.

Self-Organization

I got some new inspiration regarding self-organization from reading the book ”Team of Teams”, which is may latest book review that you can find here.

Summary

Reading the feedback that was given about the week, it seems like a success (the only thing people complained about, was the weather – which wasn’t as good as it can be). I’m happy that everything I’ve set up worked out well, and that we improved from last year (kaizen – continuous improvements, remember?). It was also great to see the high commitment in the initiatives! Hopefully you now have some ”tools” to use when you want to bring structure to many people living together in a limited area during their vacation, or if you can use them in your daily work!

All the best,
 Tomas from TheAgileist

Team of Teams

Time has come for another book review. The Summer is, for me at least, time for reading and reflection. I’ve seen the book ”Team of Teams” been recommended within the agile community, and therefore it caught my interest. I really liked ”Turn the Ship Around” by L. David Marquet, retired from U.S. Navy. This book is written by General Stanley McChrystal, retired from U.S. Army. The subtitle is ”New Rules of Engagement for a Complex World”. It holds some 250 pages, and was released in November 2015.

”Team

Content

The book consist of 12 chapters divided into five parts. The chapters are:

  1. Sons of Proteus
  2. Clockwork
  3. From Complicated to Complex
  4. Doing the Right Thing
  5. From Command to Team
  6. Team of Teams
  7. Seeing the System
  8. Brains Out of the Footlocker
  9. Beating the Prisoner’s Dilemma
  10. Hands Off
  11. Leading Like a Gardener
  12. Symmetries

So what is this book about? I find this quote in the foreword: ”Management models based on planning and predicting instead of resilient adaptation to changing circumstances are no longer suited to today’s challenges”. The main story told in the book is the one about General McChrystal’s experiences from leading the Task Force in Iraq in their war against Al Qaeda. How they were badly beaten and had to change the whole organization from silos to to a network, to be able to succeed. The primary lesson that emerged, was the need to scale to adaptability and cohesiveness of small teams up to the enterprise level. General McChrystal calls this ”Eyes On – Hands Off” leadership. Meaning supervising of processes ensuring that silos or bureaucracy that dooms agility were avoided, rather than focus on making individual operational decisions.

Some new vocabulary, for me at least, from the military is used throughout the book. One example is ”limfac”, that stands for limiting factor (the one element in a situation that holds you back). I will start to use that!

For a very long time the focus of management have been on efficiency. Getting the most of a desired output (y), with the least available input (x). Now the focus needs to be on adaptability.

”Efficiency is doing the things right; effectiveness is doing the right thing.” – Peter Drucker

Sadly, in many cases still, the opposite holds true. Greatly summarized in the sentence: ”Great landing, wrong airport!”, that I’ve seen heavily shared within the agile community.

How we set up physical space really matters, and is reflected in how people work and behave. ”If you lock yourself in your office, I don’t think you can be a good executive” is a quote by Michael Bloomberg found in this book.

I chapter 9, The Prisoner’s Dilemma is introduced. From a management perspective it has interesting implications. It suggests that there are circumstances in which cooperation is better than competition. This seems obvious, but many managers assume that the healthy competitiveness between companies (that is the lifeblood of the free market), also shall be used within companies. People and departments within a company needs to see the whole to be able to cooperate fully, without having their own ”hidden agendas” (that can be the case in many companies today). The infamous problems with the car models Chevy Cobalt and Pontiac G5 (where GM had to recall 800,000 vehicles in 2014) is summarized with the following sentence: ”It was a perfect and tragic case study of the consequences of information silos and internal mistrust”.

Instead the following quote from Alan Mullally, CEO of Ford, leading their successful return in the market during recent years, shall be a guideline:

”Working together aways works. It always works. Everybody has to be on the team. They have to be interdependent with one another.”

Sandy Pentland, a MIT professor, states the two major determinants of idea flow; ”engagement” within a small group like a team or department, and ”exploration” – frequent contact with other units. In other words: a team of teams.

Finally, how should a leader lead? General McChrystal belief is (and I totally agree) ”leading like a gardener”, meaning:

  • Shaping the ecosystem (instead of ”moving pieces on the board”).
  • Delegate decisions to subordinates.
  • Creating and maintaining the teamwork conditions (”tending the garden”), a delicate balance of information and empowerment.
  • Drive the operating rhythm, with transparency and cross-functional cooperation.
  • Shape the culture.
  • Focus on clearly articulated priorities by explicitly and repeatedly talking about them.
  • Leading by example (it is impossible to separate words and actions, so they have to ”be the same”).

Recommendation

”The leader’s first responsibility is to the whole.” – General McChrystal

In summary the ”Team of Teams”-book tells very many stories, from the Army and the industry. Some of them appeals to me, other don’t. Overall the message told in this book really resonates with my own believes regarding teams, and how they should interact in a larger context! If you are interested in teamwork, and the war against Al Qaeda, you should buy this book.

All the best,
 Tomas from TheAgileist

The Blooming Garden

Yesterday, Agila Sverige (Agile Sweden) 2017 ended. As usual, I’m full of impressions and ideas that I want to try out! Maybe I will come back to this years’ conference in an upcoming blog post, but for now I want to share with you a metaphor that was used, and that I now have written about.

Introduction

To develop software products is like having your own garden. In the garden you have trees, bushes, flowers and maybe a little pond with fish. All of this needs to be looked after, and you need to remove the weeds to get your flowers to blossom.

”The

I got a little help from my daughter with this illustration 🙂

In software development it’s easy to constantly add new features and functions to your product. This will make your garden grow and grow. A real garden has boundaries, maybe there is a fence to the next door neighbour, but these doesn’t exist in software development. In theory there is no limit, in practise there is.  How do you keep up with this continuous expansion? Hire more ”gardeners” you might say (in the form of architects, developers, testers and so on). That works for a while, but at some point in time the garden will grow wild, and will be impossible to handle. So to add things, you also need to remove things. Maybe that little pond needs to be filled with mould so that new tulips can be planted? In my experience with software, removing something is a much harder decision than it is to add something new.

Technical debt

Another term for this is technical debt. Adding new functions comes with a debt in the form of other work that needs to be done in the product (we can see this symbolically as to ”remove the weeds”). If this debt is not repaid, it will keep on accumulating interest making it hard to implement changes later on (hence your garden will ”grow wild”). All products always need a certain degree of ”gardening”. The problem is that this fact tends to be forgotten when you constantly want to add new functions and features to your product.

In the garden you will plant the seeds, pour over water, keeping your fingers crossed for good weather and then wait and see if it will grow. According to the law of nature, not all seeds will germinate. It’s the same in software development, where you implement a new function and see if it gets adopted and used by your customers. Some of the things you do will be successful, while others will fail. Beforehand it’s very hard to guess what will be successful, but don’t be afraid of failure. Without trial&error there is no innovation. If you always ”play it safe” you will become predicable and your competitors will eat your lunch (or even worse, your company)!

A product is a complex system, you can compare it to an ecosystem in nature. When a new species enter the ecosystem the balance is disordered. What I want to say is that even if your new function in your product is great, adding it can lead to unwanted consequences in surrounding systems/products. Maybe a bottleneck in the communication now shows up between the systems. Of course this goes internally in a product as well (seeing the product as a full ecosystem). Adding a high throughput import adapter to your product may all of a sudden make your history searches painfully slow. Going back to the garden example, planting of some new bushes may attract snails that eat up all of your tulips.

Seasons in software development

In Sweden we have four distinct seasons; spring, summer, autumn and winter. During the winter everything is on low heat literally, since it’s freezing cold! When spring comes along everything is wakening up to life once again. During summer everything is warm and verdant. Autumn is colourful and time for harvest. Maybe your industry has some kind of ”seasons” or repetitive cycles as well? Instead of fighting against them, use them to your advantage! During ”winter” when everything is going in a slower pace, use that for planning and thinking ahead, whilst also taking care of your technical dept. Develop the new functions during ”spring” and release them for customer usage in the ”summer”. ”Autumn” is time for reflection to be able to start a new cycle with ”winter” again. See it as a big wheel that keeps on turning!

Summary

You can’t just keep on adding new things without taking care of the stuff that you already have. This is pretty clear to us in general life, but in software development it’s tricky since there are no physical boundaries. If possible, try to use seasonal variations in your industry to take care of your technical dept. 

All the best,
Tomas from TheAgileist

Doing It

I first learned about Ralph van Roosmalen and his work when I participated in a video chat about ”Exploration Days”, hosted by Jurgen Appelo. Ralph is passionate about Management 3.0, and now he has written a book about his learnings called ”Doing It – Management 3.0 Experiences”. The book has 157 pages, with foreword by Jurgen Appelo, and was released in 2017.

”Doing

Content

The book consists of 13 chapters, and I thought that I should give you a short description to each and one of them.

1. Management 3.0? Huh, what?

Ralph starts out with setting the arena and tells what Management 3.0 is. In short: ”Management 3.0 is about engaging people, improving everything, and delighting the customers.” This short and to the point introduction also have references for more information.

2. What is the role of a Manager?

Management 3.0 highlights six areas for you as a manager to focus on:

  1. Energizing people
  2. Empowering teams
  3. Aligning constraints
  4. Developing competence
  5. Growing structure
  6. Improving everything

3. Move your Motivators

This chapter introduces The Moving Motivators game. This is connected to the first management area: energizing people. It has ten motivators (the CHAMPFROGS model):

  1. Curiosity
  2. Honor
  3. Acceptance
  4. Mastery
  5. Power
  6. Freedom
  7. Relatedness
  8. Order
  9. Goal
  10. Status

4. Surprise your team during their next review?

When it’s time for the review meeting, the first question you ask your team member is, “How are you doing?” They respond, “Er … good…” Then you say, “Okay, why good?” “Just good, you know … good.” Does this sound familiar?

Do you recognise yourself in the quote above? Then this chapter can help you make the review meeting fun again.

5. Traditional HR combined with Management 3.0

Here you will learn more about Delegation Boards. ”In short, just think of them as a spreadsheet that vertically lists the decision areas that you want to delegate to others, while the horizontal axis sets the amount of independence a team lead has.”

6. Implementing Cudo Cards

Next up is an introduction to Cudo Cards, a peer-to-peer rewarding system.

7. Visualise values and name your team

To get a team together you need to find the team values and then visualise them. Here you find concrete tips on how to do that.

8. Team 1 and Team 2, boring

Let the team themselves decide on their team name. Even better let them find a symbol that they can associate with the team! For example Yoda from Star Wars to symbolise mastery.

9. Getting your guilds going

Don’t feel guilty if you haven’t tried it out yet, but guilds are the thing! 🙂 Guilds to nurse craftsmanship is a common practice within Agile.

10. Things I learned about Exploration Days

You want learning and innovation to take place within your company, right? In this chapter the concept of Exploration Days are described.

11. Giving feedback without fear

Are you upset with a colleague? Don’t give them a slap, instead prepare for them a delicate feedback wrap! 🙂

12. I don’t want to implement the Spotify model!

Don’t imitate, innovate! This chapter tells you not to just copy a successful model without tailoring it to your context and unique needs.

13. To finish up

Time to wrap up! 🙂 Some last words from Ralph on where to go next.

Recommendation

If you are new to Management 3.0, ”Doing It” is the perfect starting point! Read the well-written introduction texts, and then use the references to go further. Do you want to try Management 3.0 out? Perfect, use this book to guide you. I can truly recommend ”Doing It – Management 3.0 Experiences”! Best of all? You can download the book right here. Happy reading, and see you next time!

All the best,
 Tomas from TheAgileist

Tachometer to find perfect flow

How do you obtain a ”perfect flow” of work tasks passing through your software development team? That question have been in my head for quite some time. I can start by admitting that I don’t have a solid answer to that question (yet). However, I have instead thought of a way to visualise if you are having ”perfect flow” or not. How? I’m thinking of a tachometer!

”Tachometer”

Tachometer to find perfect flow

First of all, this is just an idea that popped into my head (this is actually the first encounter with the ”outside world”, so please bear with me). The idea is however to use a tachometer to indicate ”perfect flow” on a kanban board for a development team. Just like a tachometer is indicating if you are using the sweet-spot of your engine at any given moment.

My little example is a kanban board with three columns:

  • Design – Given the value 1
  • Development – Given the value 2
  • Test – Given the value 3

The values are used to calculate the position of the needle in the tachometer. I will now give you three examples that hopefully explains it all!

Example 1 – ”Too early”

”Tachometer

In this example three tasks are in the ”Design”-column, giving a ”tachometer value” of:

1 + 1 + 1 = 3

Thus indicating that we are ”too early”, and that the later steps in the flow (”Development” and ”Test”) are not utilised. The analogy with a car would be to ”gear up” meaning that the team needs to take the ongoing tasks to the later steps of the process.

Example 2 – ”Too late”

”Tachometer

In this example three tasks are in the ”Test”-column, giving a ”tachometer value” of:

3 + 3 + 3 = 9

Thus indicating that we are ”too late”, and that the team soon will run out of things to do. The similarities with a car would be to ”gear down” and for the team to put focus on feeding in new tasks to the kanban board.

Example 3 – ”Perfect flow”

”Tachometer

In this example the three tasks are evenly spread between the columns, giving a ”tachometer value” of:

1 + 2 + 3 = 6

Thus indicating that we have a ”perfect flow”, and that the steps in the process are utilised in the best possible way!

Summary

I understand that the mathematical formula behind this idea must be improved if this should become a reality. There are also cases where a tachometer like this will not be useful, for example if the team has just started. Maybe this can act as a challenge to manufacturers out there of digital kanban tools to add a tachometer in their product!

All the best,
Tomas from TheAgileist

Planning with multiple timelines

You should all know by now that I’m very fond of visualisations, to say the least. 🙂 Recently I’ve told you about how we did a ”retrospective with timeline”. That thought stayed in my mind when we needed to do some more detailed planning for multiple projects spanning multiple products. This blog post describes what we came up with. Here we go!

”Planning

The idea is simple, the timelines highest up on the whiteboard are projects (or larger initiatives, whatever you like to call them). The other bottom half (or whatever suits your needs) are products or components within a product (depending on the level of details you want to plan for). Usage:

  1. The project timelines shows major activities and milestones. I.e. ”hard facts” that we need to consider. For example a promised customer delivery.
  2. The product (or component) timelines shall show activities (work that needs to be done) and is used to find, and sort out, dependencies (”To deliver project X on time, we need to do activity 1 in product A, before we can do activity 2 in product B” and so on).
  3. Color coding. The activities needed in products (components) have the same color as the project that need them to create traceability.

Preparations

Before the actual planning meeting, you need to find a suitable whiteboard. The larger, the better. Preferably the largest one in the office! But think carefully, you may want to spend some time doing your plan, and therefore keep it up on the whiteboard for some time after the meeting to be able to make adjustments. At least I did, so I found one in a meeting room that is seldom used and started drawing.

Planning with multiple timelines

This is how the “planning with multiple timelines”-meeting was performed.

  1. Some 15-30 minutes before the meeting started, I went to the meeting room and draw the timelines for the projects that we needed to plan (with major activities and milestones). In our case two projects (larger initiatives) and two other activities that were more like dependent on the outcome of the planning. This acts as the starting point for the planning, i.e. things that we intend to deliver.
  2. The meeting started with me explaining the procedure (described above). Then the actual planning started. An example: ”We have promised to do this in that project, for that to work we need to add this in product A and that in B. Wait isn’t this needed in product C as well? Hmm, it is, maybe we should do that first then.” and so on. In this step you can spend as much time as you like, depending on the level of details you want to discuss, and the complexity in what needs to be done. The more dependencies you have the longer time to solve them out. Actually we had one first meeting to get an overview of everything, saving the details for later sessions.
  3. After the planning meeting I always take a picture of the whiteboard using my mobile phone for documentation and the possibility to communicate the plan outside of the room.
  4. As mentioned in a previous point you may want to revise your plan. Preferably you may want do it regularly as long as the projects are running, or you do it in the beginning in a couple of sessions to ”set out the course”.

Example

This is an example of a whiteboard with multiple timelines for planning.

”Planning

Summary

Ok, that was some thoughts and examples on how you can use multiple timelines for planning. If you don’t have several projects (or initiatives) running simultaneously, or you don’t have a complex flora of products you don’t need this. One possible enhancement I can think of is to use a digital whiteboard tool, to be able to keep the plan stored and also to distribute it easier. But for our needs a good old whiteboard suited us just fine. Don’t make things more complex than what they have to be, remember that!

If you don’t like this at all, it feels to much like “MS Project all over again” (however I don’t agree, the key is in the interaction between people to find out dependencies in front of the whiteboard) you can use my other idea for ”visual planning”.

All the best,
Tomas from TheAgileist