Visualization

Focus & Flow

Travelling on a train that got delayed, I started to think about flow & focus that resulted in this blog post.

”Formula”

Focus <-> Flow

If you can focus (i.e. limited the work done in parallel), you will get flow through your system. If you can show a track-record of  flow (i.e. continuous deliveries), it becomes legitimate to focus. Just like the opposite is true. If you can’t focus you will not get flow. If you don’t have flow, you need to start work earlier (to meet the delivery) and you end up with multiple parallel work activities and you become unfocused. If you can’t focus the flow is gone, and downwards it goes.

So focus gives flow, and the other way around. That gives this simple “formula”:

Focus <-> Flow

Theories is one thing, but I bet that you long for an example that you can start to use right away? Well, here it is a visualisation that creates focus and gives flow in the end of a larger effort when everything shall ”come together”!

Shooting Target

Nowadays we have everything in Jira, including the team’s Kanban boards. Atlassian, that makes Jira, claims it to be ”The #1 software development tool used by agile teams”. That’s very good, but it’s hard (is my opinion at least) to visualise an overview to actually ”see all the work”, especially if you are using multiple projects in Jira, like we do. So when we are approaching the end of a major release, we use a good old whiteboard to ”get everything together”.

”Shooting

At the end of a larger release we use the shooting target that I have blogged about before. It’s a very straight forward metaphor that everyone understands. We aim for the target in the middle, and all the work needs to proceeds in a ”To-do, Doing, Done”-manner from the outer circle to the center. The circle can be subdivided to show different “parts” (like products) that need to come together to make up the release. The shooting target in the pictures has four subdivisions.

”Shooting

Explanation (where to coloured “circles” in the picture above corresponds to the bullets in the list below):

  • Visualization of the needed work – As mentioned we have everything in Jira, residing in several projects. To actually see the work needed to ”tie a release together” this visualization is essential. It better depicts work in front of us, than work already done that Jira shows (and that everyone already have an understanding of, since they have been part of it).
  • Target date – We put up the target release date in the middle to communicate to everyone in team team, as well as outside stakeholders, what we are aiming for. A part from communication, a target date helps prioritization. An example: ”If we shall be ready end of next month, there are no way we can take this work on, it have to wait for the next release!” We can use crystal clear communication, when we say ”we need to hit the target”, we actually mean it 🙂 .
  • Responsibility – As on a ”normal” Kanban-board we use avatars to show who is working on what. This time I simply collected the pictures that the persons uses in other systems (like Slack) and printed them out and glued them on regular square-sized magnets (that I in turn have longtime borrowed from my daughter 🙂 ). Avatars showing who works on what also communicates something else that is very important, what we are NOT working on! As in ”We are focusing on this for now, and leave that to later” or ”Why are we not working on this? We need to start doing that now!”. This type of overview you can’t get in a digital tool like Jira (is my experience).
  • Dependencies – To highlight dependencies (for example to other departments within the company) avatars are used for that as well.
  • Other information – Other parts of the whiteboard are used to keep track of other information, like who is on vacation.
  • Operation of the board – The board is “walked” regularly, and two questions are used by me (as the facilitator):
    1. What have moved since last time?
    2. What is hindering us the most today from “hitting the target”?

Summary

I hope you liked this blog post and that you have a better understanding that you need to focus to get flow. In doing so you achieve a positive spiral where focus and flow enforces each other. The shooting target is one visualization to support focus and thereby flow. Good luck with your implementation of this!

All the best,
 Tomas from TheAgileist

Advertisements

The Journey

Right now, when I start to write this blog post, I’m on my way back from the best journey I have ever done! We have been four families, with an age span from 4 to 54, travelling to various locations in the United States (like Hawaii, San Francisco & Los Angeles). We all come from Sweden so it’s a long journey, both in distance and time for us. In this blog post, I will tell about which tools and Agile practices we used to make this journey successful!

”TheJourney

Picture 1 – Sunset seen from Santa Monica Pier

Pre-planning

Google Hangouts

Since the four families lives in different places in Sweden, we needed a tool for our planning meetings. We choose Google Hangouts, mainly because some of us use it at work. The planning meetings had no real structure, but screens we shared to for example show interesting hotels that we could book in the different locations we were visiting. The messaging function of Google Hangouts was also used heavily, to send information and URL:s back and forth. This planning meetings started out already in March (nine months prior our departure).

”TheJourney

Picture 2 – Conversion on Google Hangouts planning the trip

Airtable

After a while, we had agreed on a travel plan and we started to do bookings of flights and hotels. We took help from a Traveling Agency for some of the bookings (they were for example able to book cheaper flights). With a lot of information gathered that we needed to keep track of, we selected Airtable as the tool. It is an online tool, and it is easy to invite members to use it. It can be seen as a cross-over between a spreadsheet and a Kanban-board. We used Airtable to store information about our booked flights and hotels as well as suggestions of tourist attractions we wanted to visit.

”TheJourney

Picture 3 – Collection of tourist attractions we wanted to see, gathered in Airtable

The actual journey

The framework for the journey was set with all the bookings we had made. We knew how many days we had planned to stay at each location.

Planning meeting for activities

When we arrived at a new location I hosted a planning meeting to have everyone to agree on what activities we should do the upcoming days. Given the span in age and different interest in the activities, we of course sometimes splited the group of four families into other constellations. Overall, we kept a general plan for each location that everybody agreed upon.

Board for activities

To capture and visualise the planning I put up a simple board with post-its on whatever I found suitable (pro-tip: bring your own tape to make the post-its stick better 🙂 ). One column for each day at the location, and three rows dividing a day into three sections: Before lunch, afternoon and evening. This showed to be pretty sufficient for our needs.

”TheJourney

Picture 4 – A planning board on a glass table

Google Maps

All four families rented their own car for travelling in California, US. The traffic in Los Angeles can be pretty hectic, so it was nearly impossible for us to drive together as a group. To solve this problem we planned routes using Google Maps. We did that at the hotel, while having access to wi-fi. The good thing with Google Maps are that routes can be downloaded (the person who planned the route shared the link using Google Hangouts, and all the other ”navigators” in the separate cars downloaded it to their phones, while having wi-fi access). This way we saved money, not to use roaming to get mobile data. The one thing you miss navigating after an offline route, is traffic updates. Normally this is no problem. But it becomes obvious during rush hours, then Google Maps can offer alternative routes depending on the traffic situation. Sometimes we turned on mobile data when driving in rush hour, to get these traffic updates. 

Overall, we had a very positive experience using Google Maps on the phone for navigating, compared to an ordinary GPS. Actually, the car rental firm wanted 197$ for GPS in the car. Way to expensive!

”TheJourney

Picture 5 – Navigating using Google Maps, shown in offline and night time mode

Summary

The stuff described above helped us to have the structure needed to be able to perform a trip of this kind, without any major disappointments. Travelling a large group together can be quite challenging, and I wouldn’t recommend doing it without any pre-planning/structure (carpe diem may work if you are a smaller group).

All the best,
 Tomas from TheAgileist

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

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

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

Famban

What is Famban? That is my own abbreviation of Family + Kanban! In other words, our attempt to visualise and keep track of all activities within our family. Can’t an ordinary kanban board solve that need? Of course, but we have made some additions that we find useful. It’s also quite fun to come up with a new name for something, I admit  🙂 .

”Famban

Famban in Favro

Setup

We use a collection in Favro with three boards:

  • Ongoing week (with one column for each day in the week – Monday to Sunday)
  • Next week (same setup as above)
  • Further ahead (with two columns; Coming – To keep track of things that are 2-4 weeks ahead & Later – to store stuff even further away).

Why have a bi-weekly schedule? It seems to fit our needs best. You could have a one week rolling schedule or four weeks instead, depending on your needs.  

We use color coding (called Tags in Favro) to visualise different types:

  • Recurring activities (Green) – Used for all recurring family activities, for example ice hockey school on Sundays for my son.
  • Activities (Blue) – To cover all “one off”-activities.
  • Travel (Red, not shown in picture above) – To keep track of an “activity” that spans more than one day.
  • Food (Purple, not shown in picture above) – We had an idea to keep recipes in here to also plan our dinners. To have 10-15 of our favourites to be able to spread them out during the two weeks and have some variation. We had not really succeeded in this though.

Operations

The operations of Famban is easy! Since Favro has a very good web interface for computers, together with apps for iOS and Android we can reach it everywhere all the time. This is the number one benefit of having a digital board like this!

It’s mainly me that maintains the Famban board. Every time an activity comes up, it’s added to one of the boards (ongoing week, next or further ahead).

Once a week, usually on Sunday, the next week is discussed and planned in more detail. Basically I then make “next week” the “current week” by switching places on the two boards (a simple drag and drop operation in Favro). I also change the week numbering (week 47, week 48 etc.). A trick here is to have double of all recurring activities, so you don’t need to copy them between the weeks.

Famban on fridge

”Famban

Our first attempt of Famban, was to put it up on the fridge. That is the most “central spot” in our home, here it’s seen multiple times per day by all family members. I made a physical version of the Famban board using several papers that I taped together. One problem was that it couldn’t be wider than the door of the fridge, and at the same time have the needed seven columns (one for each day in the week) and to be able to fit standard size stickies.  Therefore the “To-do” and “Done” sections were placed “below” the board.

This incarnation of Famban worked well at home, and we had daily morning meetings in front of it. The problem came when not at home, not being able to see it. Often the question came up during the day while at work, my wife called me and asked “Do we have something on Tuesday evening, or can I make arrangements with my friend X?”. That question was not possible to answer, it had to be handled later when at home again, that was inflexible so after a while this Famban board was not used.

Improvements

Here are some improvements that I have thought of, but not yet implemented:

  • When the kids get older and probably get even more recurring activities an improvement would be to add swim-lanes, one for each family member. That is supported in Favro.
  • To get the food planning up and running, adding nice pictures to the recipes would probably help!
  • We have lost the visibility by having the Famban put up on the fridge. That could be fixed by mounting a tablet device on the fridge, showing the Famban board 🙂

Summary

Famban is visualisation and family planning combined! I hope you liked this blog post, and that it inspires you to try something similar! As always, reach out to me if you have something to share!

All the best,
 Tomas from TheAgileist