topic: Kanban wastes

Tags agile kanban prioritisation skill/professional_skills

You can think of kanban as a way to prioritize work. Kanban is a methodology used in professional dev teams and even manufacturing.

We use Kanban techniques because:

  • it’s common in the industry, so junior coders must get it.
  • it works well, we use kanban to keep people moving in the right direction and make sure everyone has the support that they need

A good day

When we are getting things right, then the following should all be true:

  1. Students should be working on their highest priority task at all times.
  2. Students should be working at a sustainable rate, they shouldn’t burn themselves out or go too slow.
  3. Students should learn the good habits that make work on a professional dev team successful.
  4. If there are any problems then those problems need to be surfaced and dealt with quickly. The longer a problem waits to be addressed, the more costly it is to fix.
  5. Everyone gets their work done in a way that grows their understanding and skills.

Sources of waste

Kanban is a method for eliminating waste. It is a methodology that comes from manufacturing, but it makes a lot of sense in the context of software development as well.

What is waste? There are a few different kinds:

Partially done work

This is somewhere where resources have been sunk, but no value has yet been created.

For example: imagine you owned a car factory. You can’t sell half a car. You can only sell a car that is complete. Same with software. Half a feature is useless. Completing work adds value.

Therefore: bias your actions towards finishing things. Junior coders often like to chase shiny new things and start new projects before finishing what they started. This is normal, it’s also ineffective.

What this means in terms of Tilde: The more important a card is, the closer it will be to the right of the board.

Extra processes

These are activities that don’t add value and should be removed.

  • is there a process that should be removed?
  • is there a process that can be replaced with a form?
  • is there a process that can be made more efficient?

If you see something useless happening, please voice your concerns :)

Extra features

This isn’t super relevant in education. But you’ll come across it later in life. Generally, coders call this “scope creep”. It’s nasty stuff.

Task switching

Multi-tasking doesn’t work. For brain-workers, attention is golden. Focusing on one thing at a time is the way to go.

What does this mean in terms of Tilde? If you are in the middle of a task, try not to get distracted. Focus on finishing what you are working on. Then look for the next high priority task.

If you task switch every time something new comes along and invite your teammates to tap you on the shoulder every 5 minutes you won’t get much focus in.

Have you heard of flow? It’s the best place to be for a dev. It generally takes 20 minutes to get into the flow. Getting out of flow is expensive.

Waiting

Of course, waiting is pointless. If someone is waiting for you, your highest priority task would be to unblock them.

This means the following things take precedence over writing new code:

  1. Reviewing cards in the Review column
  2. Reviewing pull requests

Motion

If a card keeps bouncing back between review feedback and review then that’s wasteful. For every bounce, there will be some wasteful waiting going on. There’s also an emotional cost, it sucks to have to deal with the same task over and over.

How this relates to Tilde:

  • when you review someone’s work, try to give them all the info they will need to succeed
  • when you receive feedback on your work, make sure you address all the feedback

Defects

The earlier you find a problem, the cheaper it is to fix. This is true in software and life. Did your grandmother ever tell you “a stitch in time saves 9”? Cheesy but true.

If someone doesn’t get feedback, then they don’t get to learn about their mistakes. They then just make the same mistakes.

This is another reason why giving people thorough feedback is such an important task. And it’s another reason why people need to act on feedback quickly and completely.

Minimizing inventory

Imagine you are building cars. Cool. Now imagine you have a big giant box of gearboxes sitting in a pile waiting to be used. Producing more gearboxes wouldn’t be the top priority unless you were going to run out soon. Gearboxes take time, effort and attention to produce, the materials cost money.

Now imagine Tshepo has 10 cards in his review feedback column. He also has 2 cards in the Review column. This situation isn’t super cool.

If the effort is put into reviewing Tshepo’s 2 Review cards, then the feedback would just clog up his feedback column. There might be a better way to add value.

In this case, helping Tshepo by doing some pairing with him could be useful, maybe he needs some support.

Generally, if there are too many things clogging up a column, it means something has gone wrong. When something goes wrong it’s important to:

  • fix the situation
  • figure out what went wrong. Surface the root cause. Perhaps there is a process change that is needed

Resources

Kinds of waste: https://www.computer.org/csdl/pds/api/csdl/proceedings/download-article/12OmNwJybT0/pdf


RAW CONTENT URL