Top 5 things that steals a Software Engineering team’s valuable time!

There could be several things that wastes a Software Engineering team’s time that you and I might have experienced, but I just want to…

Top 5 things that steals a Software Engineering team’s valuable time!

Image from publicdomainpictures.net

There could be several things that wastes a Software Engineering team’s time that you and I might have experienced, but I just want to share the Top 5 that in my opinion are the most aggressive thieves of our time!

This is just a reminder as most of these are pretty straightforward and we have all seen them!

Also, I am not going to have any solutions for you to address these as there might be various solutions to stop or limit these, depending on the type of issues you have!

So without further due, let’s get to it:

Too much WIP (Work In Progress)

These are all the work that we have started but didn’t finish! In manufacturing work this is called inventory! We should remember we need to finish work not just start!

Can you guess how much value a not delivered feature is delivering? Zero!

There is a concept in Lean called resource utilization trap that is the scientific reason for us to put a limit on WIP!

Here is an interesting video that demonstrates this really nice:

Resource Utilization Trap

In my personal opinion, too much WIP is the root of all the other wastes in Software Engineering teams.

I think the ideal WIP limit is ONE! Team should work on ONE item (the most valuable item) at a time, release it, realize the value, then move on to the next item!

This is called One-Piece-Flow in Lean production.

Here is a cool video that demonstrates One-Piece-Flow and how quickly we can realize value compared to higher batch sizes of work. As you can imagine the Cost-Of-Delay in the case of One-Piece-Flow is significantly reduced:

One Piece Flow

But things aren’t really ideal in Software world anyways, so we should maybe just keep the “batch size” as close to 1 as possible!

Unknown Dependencies

These are the things that you didn’t know that needs to happen before you can call the work done!

Things like, that firewall settings that needs to be updated or maybe something that someone in a different team had to release before you can release yours!

Unplanned Work

Yeah, I bet this one is one of the most familiar ones to all of us! Interruptions that prevent us from finishing the work in hand!

The reality is, shit happens and we will have unplanned work anyways, but one way to fight it is to somehow make it visible at least so we know how much unplanned work we are doing and what kind of work they are so we can do something about it!

Conflicting Priorities

This could also waste a lot of time, if there are several project competing for our engineers time and we are not sure which one is more important!

Neglected Work

Remember those work items that we had to set aside because there was a hidden dependency? Happens a lot that when the dependency is resolved, we forget about the half complete work that we set aside at the time, and we miss it until it becomes this urgent thing and turns in to an unplanned work all of a sudden!

I bet this all sounds very familiar! Are you watching if any of these happening in your team? How do you monitor these?

Cheers!