Friday, 30 September 2011

Two years on kanban

Having used kanban as a catalyst for continual improvement I feel more capable, confident and way more productive than I have ever been in my life.  Starting with a simple plan-doing-done approach to my kanban boards, I quickly evolved them to meet the needs of particular situations.

I have created many kanban style boards for managing specific areas of my life, such as my own career and skills development, moving house, preparing for 400km cycle rides and starting my own company.  Kanban really helped me pull in and evaluate other ideas to build on how I work and help me become more effective.

Kanban is not a solution or silver bullet in itself, but this simple to use techniques allow you to develop an effective way to manage, to help you get things done!

Lean practices, system thinking and theory of constraints all kick-started a big change and kanban was the technique that made it all come together.  By encouraging me to look at what I was doing and how I was doing it, I had an every growing focus on how to deliver value to myself and to others.  I could no longer hide so easily from the truth and tell myself little white lies about a situation, the information on the kanban board kept me honest and encouraged me to evaluate my actions.

Just being aware of your circumstances is a major advancement for most individuals and organisations.  It is all to easy for us to get too wrapped up in today's deadline without thinking of other concerns (such as if todays deadline is actually of value and if you are doing the right thing to maximise that value).

Managing myself
It is often so much easier managing and advising other people than it is to manage yourself.  This is perhaps in part why CxO roles have personal assistance - a service that we could all use to help us focus.  As a consultant I feel that psychologically it is much easier to work with a customer to help them improve than it is to help myself improve.  Part of that ease is the excitement of learning something new and part is that I am working with someone else.

Through personal kanban and associated lean techniques I have found my own way to manage myself effectively without adding any sense of burdon.  Psychologically, I now rarely find it a chore to manage myself as I can easily balance the time I spend being creative with the time I need to focus and deliver value.  I can make lots of small decisions throughout the day as to what I need to do to meet my goals, giving a great deal of flexibility.

I can also quickly see what I have achieve and this gives a great boost as when we are busy we often forget the great things we have achieved that day.

Managing others
No one likes to be micro-managed and all good managers dont actually like to micro-manage people.  So kanban can be used to focus groups of people (eg. project teams if you use them) towards a particular goal or business vision.  Kanban allows the group to not only be a part of the decision process of how to achieve these goals, but also visualise how effective those decisions are with respect to those goals.

At any time, if there is a valuable reason the decisions taken previously could be changes or adapted to move with wider changes in the organisation.

I feel that kanban can be used to help drive progress towards goals very effectively, leading to real management by everyone, or as I like to call it - leadership.

Getting people to help - collaborative delegation
Kanban is a technique that shows real strength when it encourages people to collaborate and I have experience of kanban being a trigger to help cultural change.  By encouraging people to get involved, to use the knowledge and experiences to the full, to challenge them and make them much more responsible for the work they do really drives a sense of meaning within them.

There is no need for motivational posters when people love the work they do, the way they work and know that the are delivering real value to the organisation every day.  People like to feel part of something bigger and get a kick from helping other

In Summary
Kanban is a great technique once you understand its context, and used with lean and kaizen ideas it is one of those things that really reflects what you put into it.  Like any good relationship, if you care about your kanban board it will care for you in return.

Monday, 25 April 2011

Physical boards with distributed teams

For a physical board with distributed teams, here are some things I done successfully

Have a board buddy
Someone local is a "buddy" for someone distributed.  So when the person they buddy with in the distributed team does something, they update the board for them.  This has an added bonus that there is more interaction and communication between the team members, especially if you change buddies every week or iteration.

Webcam pointing at the board
The distributed team (and anyone working from home) can see the board status and activity by looking at the webcam feed.

Some ideas I am experimenting with include

Large touch screen devices
Using an online board with a large touch screen device gives a slice of both physical and online board.  Using the touch screen you can move cards around the board giving you that psychological experience of interacting directly with the board.  At the same time, the board is capturing information about your activities which can be used for feedback and status updates.

With the touch screen, you could also interact with the board in the same way as a physical board, by adding new cards, adding graphical artefacts to the board - such as a "help wanted" icon, updating who is working on which card and most other ways you would interact with a physical board.  You could also interact with the scheduling of the cards, by the online board having a slider for priority or T-Shirt size.

As the board is also online, then someone can also update the board using their PC or tablet.  This enables anyone to remotely access the board at any time.

Wednesday, 23 March 2011

Continual improvement - continual value delivery

There is a real challenge to improve the way you work whilst still retaining and increasing the amount of value you can deliver to your organisation.

The more people have the opportunity to step back and consider how they "get things done" the more opportunity there is for improvement.  It is tragic that most people are of the mindset that they are too busy to consider how they work as they have deadlines, this mindset is often driven by the system that is the organisation.

Until you can step back and really understand the work you have little appreciation of the wasteful activities you do and therefore can really only "solutionise".  Anything you that is not based on some "fact finding" seems little more than guess work or just following a trend and hoping for the best.

Saturday, 19 March 2011

Smallest Responsible Change (was Minimal responsible feature)

Whilst discussing the merits of Behaviour Driven Development at one of the XTC gatherings, I started using the term minimal responsible feature as a way to express how to decide what piece of work to tackle next.  I promised Liz Keogh many moons ago that I would write a blog post about it.

In the time it has taken me to write this post (its been kicking around in my backlog for a while) I have evolved my thinking on the term and now prefer to use smallest responsible change (SRC).

The smallest responsible name was triggered by looking at the term minimal marketable feature (MMF), considering what that term expressed and the values that I associated with it.  I still like the MMF term as a more specific way of expressing a similar concept.  With the smallest responsible change I have a term that I am happy to use in a wide range of contexts which helps promote discussion on how to be effective and make value flow.

Smallest responsible change is a nice general expression of how I like to tackle the work I do, so that the work flows more smoothly and I get more done.  Creating a very effective way of turning large body of work into a series of value deliveries.

I try where ever to tackle a series of smaller tasks that one big task.  This approach tends to earlier feedback from the results of that work.

For example, when writing some new functionality, I will pick out a single piece of behaviour from the requirements (user story, use case) and express that behaviour in a scenario / example (a.k.a acceptance test / unit test).  Once the behaviour is defined and implemented by code, I am already getting feedback on the work I am doing.  Any feedback from running the behaviour scenarios (a.k.a tests) I receive shapes the next task.  If a failing test still fails, I know I need to work on the implementation code.  If a passing test now fails, I know I have to look at the code and design and maybe refactor.

What does it mean to be responsible?  You ask ten people you will get 10 different answers.  This is not surprising as our experiences and feelings about a situation come from a unique history - our life to date.

The decision on what is a responsible action to take is therefore based on our current circumstances and our previous history, with hopefully a good dash of holistic thinking.

To be able to define and select the next most responsible action to take therefore requires you to think about your circumstances and base your actions on achieving value.

For example, if you a person next to you collapsed it may be the most responsible thing to try and give them immediate attention if you had basic first aid training.  If you had no first aid training, then a cry for help may be the most responsible thing.  If there is no one around, then a call to the emergency services may be the most responsible thing to do.

In software development, if you submit code that breaks the build and the build bunny shames you, it could be the most responsible thing to roll back you code.  It could equally be the most responsible thing to call over some of your team and ask them what is going on (someone may have forgotten to tell you about an API change).  It could also be possible that this issue is always happening with the team and you suggest the team get together and find the root cause to the problem.

Change is happening all the time around us and we need to manage and filter all those changes so we can actually move forward (without a break down).

If you consider the way the brain works with the eye, the eye captures a constant stream of change so the brain has to filter out and focus on just what is important.  If it were not for this filtering effect our brain would be overwhelmed.

It is important to limit the amount of change we are dealing with at any moment in time, so the changes are experienced at the rate we can acceptance and deal with them.  It may be seen as heroic to work 12 hours a day and multi-task like crazy, but that is less likely to deliver significant value to your company than if you work at a pace you can sustain.  If we can find a way to filter out changes (tasks) that are of no value at this time, then we can really focus on those few changes that have real value.

Example from a personal development context
If I want to read a book, what is the smallest responsible change I can do.  Well, I often define a card on my kanban board to define the value I believe I will get from reading the book and some idea of how to attain and check that I gained that value (or perhaps see if there was anything else I gained).  This is the smallest thing I can do and it is probably the most responsible thing to do as well.

Part of this first smallest responsible change may be to decide how to read the book and I have a common approach of reading chapter by chapter and also treating the book as if I were reviewing it for others.  So the next smallest responsible change would be to read the first chapter and start to write down my impression of the book and anything important I had learnt.

The feedback from reading the first chapter may be that I think the book has mislead me about the value I would gain and I would therefore abandon reading any further.  This feedback would then save me much time in the future, as not only would I skip read the rest of the book but I would have a reason as to why I dont want to try read the book at a later date.

If I tried to do this with several books at the same time, increasing the amount of change I was dealing with, there would be a lot of context switching between the information in each book, even more so if the books were on different topics.  I would have to unload and reload different ideas from each book as I switched over.  It would be very easy to mix my impressions and feedback from one book with another and hence make an incorrect value judgement.

Whats in a name - Lean Agile machine

I chose the name lean agile machine for this website and my company in part as a parody on the term lean mean machine.  I was looking for something that expressed the concepts I was interested in at the time lean system thinking and agile software development.

I try approach everything in a lean manner, by focusing on those tasks that provide the most value and guide me towards my goals.  Goals are set in terms of my own direction but also along the lines of reciprocity, aiming to deliver as much value to my clients and to colleagues I work with.

The agile aspects of my approach get people involved as they are best placed to achieve goals when they are empowered and are allowed to define and carry out meaningful work.

These two practices combine to drive much of the social interaction of my life (work, play, cycling, etc) and help me define my values and goals in life.  They also just happen to be useful approaches to sofware development and IT in general, which is lucky as that is the world in which I mainly work in.

Lean and agile principles provide many practices to help shape the effectiveness of the services I provide to a customer or employer.  To me, delivering a software solution is a concequence of social interaction and understanding generated with clients and colleagues.  The actual goal being to build relationships that are productive and help those people involved reach there respective goals - whether that be a big house in the country - married with children - a global traveller - a successful and sustainable business.

Friday, 4 March 2011

Kanban games night

Karl Scotland and I will be running a free games night at Skills Matter on the evening of 7th March at SkilsMatter - London, UK.

Karl has kindly volunteered to run the games night before his talk at QCon later in the week. Karl will be running the ball flow game to help us learn and experience kanban and system thinking concepts in a collaborative way. It will also be a lot of fun, as fun is an effective way to learn.

You should get a lot out of this evening whether your experienced practitioner or you are completely new to kanban, lean, system thinking and theory of constraints. The evening will be a welcoming and safe environment to everyone.

Rough plan for the evening:
6.00 pm An opportunity to networking, chat to people
6.30 pm Start to the evening proper: Introduction and games
8.00 pm Retire to the Hat and Feathers for further discussions (optional)

Event sign-up

The hat and feathers is on the corner of Clerkenwell and Goswell road. You are free to join us there if you cant make the event.

Thank you
John Stevenson | @JR0cket | |

Wednesday, 16 February 2011

Kanban elevator pitch

My elevator pitch for kanban would be along the following lines..

"Kanban is a way to incrementally and continually improve your approach to meeting your goals, by understanding the situation clearly, identifying the real challenges and testing out your chosen options for resolving those challenges."

As with everything Lean and Agile, this elevator pitch will most likely evolve and can be made more specific depending on different audiences, but I am fairly happy with this general pitch.

Thank you

Tuesday, 25 January 2011

Faiding cards to improve focus on Kanban board

I am using Lean Kit Kanban as my online kanban board and I just tried out a neat feature that is helping me focus on important time dependant tasks.

On the Lean Kit Kanban board you can set all kinds of filters to only show certain cards or you can use the filters to fade all other cards that would otherwise be filtered out.  I am using a time based filter fade any card that does not need to be completed in the next 10 days.

With the filter now applied I have more visual information about what may be important to me and therefore can make quicker decisions about which card to tackle next.

This quick visual queue is one of many techniques I used to reduce up front planning.  If I know when something is due (or a date passed when the card has significantly less value) then I can plan "just in time" more effectively.

If none of the time dependent cards are of value or I feel that there may be others of greater value I can quickly switch off the filter with a couple of mouse clicks and see the full board.

If I still am not sure about the next valuable card then I can dive into the backlog.

As an aside, I am wondering if it is worth recording how often I dip into the backlog.  From an emotional stance, it feels like I only go into my backlog three or four times a month and only for a few minutes each time.

Thank you.

Wednesday, 19 January 2011

Kanban clinic

At February's Limited WIP Society meeting we are having a Kanban Clinic where you have your chance to build your own personal or team kanban board from scratch. You can also work with others to help them build a board if you want to see a kanban board evolve.

If you have an existing board (kanban, scrum, or otherwise), please feel free to bring it along (the design not necessarily the board) and get feedback and advice on any aspects you want to improve on the board.

There is no formal presentation although ideas and examples will be shown and questions arising from the practical work will be discussed.

The slides and presentation video from the January Limited WIP socieity meeting are available on the SkillsMatter website.

Thank you

Saturday, 8 January 2011

TDD Kanban for Deliberate Practice

To help keep you in a good flow when you are learning or practising the TDD test first approach, it can be useful to use a simple kanban board to manage your flow.

The TDD kanban helps you to focus on each step, helping you to stick to test-code-refactor.

The TDD kanban board has three lanes as follows

Test - you are writing a single test
Code - you are writing code to pass a particular test that is failing
Refactor - you are changing the internal workings of your code

You only have one card on your kanban board (this is your work in progress limit), this reminds you which activity you should be working on and should help you get into the test-code-refactor routine.

The card itself is blank and does not refer to any required behaviour or example code.

Using the TDD Kanban board
To start, place your one and only card on the test lane of the kanban board.

Once you have written a failing test and run your tests, move the card on the kanban board to the code lane and write just enough code to make the test pass. 

Once you have written enough code to make the test pass (running all tests), move the card on the kanban board to the refactor lane.

When you have finished your refactor work and have run the tests, move the card back to the test lane and write another failing test.

The TDD Kanban concept is from the mini kanban display at Jon Jagger's cyberdojo (that's my hand) at the SkillsMatter Lean Agile exchange 2010.

Tuesday, 4 January 2011

Personal Kanban workshop - 13th January 2011 - Limited WIP Society

To kick off 2011 and to help keep on track with our new years resolutions and goals for the year, the Limited WIP Society are running a personal kanban workshop at SkillsMatter on the 13th January.

Sign up page!!

Personal kanban has been used to manage our busy lives very effectively by a growing number of people and I too have found it invaluable to get so much more out of 2010.

I would like to share the techniques I have been using with personal kanban, such as just-in-time planning, review techniques, managing events, keeping in line with personal goals, etc. The workshop is also an opportunity to show your techniques to manage your priorities.

The workshop will be a great opportunity to gather lots of ideas on how to make the most out of 2011.

I have written articles on personal kanban for personal development and just-in-time skills training.  You will also find the interesting material at the personal kanban 101 website.

Thank you