Have you ever been to the Supermarket when it is busy, you only have a litre of milk to buy and you try to find out which checkout to go to to get through sooner?
There is a choice of three. So you guess. Line up, then find out you chose the wrong one. The one you didn’t pick is flowing quicker and you are stuck where you are.
Where am I going with this? Well, each person behind the checkout has the job of processing groceries that go through the checkout. This is a basic oversimplification, and I apologise in advance to anyone who is or has works behind a checkout.
Each customer has a load of groceries that need to be processed. Some people shop for a week (Or longer) some only shop for a day or 2, some only get what they need then and there.
Now, our customers are autonomous, but let’s say that our shoppers are zombies and they need help choosing which lane to go through. We need help. Someone to direct and manage/assign people (work) to a certain lane (people).
Let’s call our person a “manager”.
Our manager is busily trying to juggle our zombies to different lanes to manage the workload. Our zombies with only a tub of ice cream would want to go through quicker, whereas our zombie with two trolleys is taking forever to get through the checkout. So, our “manager” reorganizes. Halts work midway through re-arranges everything and thus has to be hands on all the time. This will end in chaos. With people, you are more likely to end up with chaos as people will get irate. It seems crazy, but that is how work is usually organized in a traditional manner. We get large bodies of work. It is assigned to people. If everyone is busy and a priority piece of work comes along, someone is disrupted and the work is re-arranged. The priority is done and then the bulk load starts up again.
The system here is a “push” system. You push customers to a particular lane and they are serviced by that lane.
Now, if you look at the queues for some department stores. They are arranged differently. There is a single queue, and whichever register is free, services the customer.
Customers are slightly different with Department stores. They do not have anywhere near as many items is customers in Supermarkets have. They only have a few generally. They may have trolleys, but that is for big items. Not for a large amount of items – usually.
The system here is a “pull” system. As each register is free, a customer (piece of work) is pulled off the queue and serviced. You will notice that the queues flow a lot faster than they do in a supermarket too.
Now, Supermarkets have caught onto this and have tried a couple of methods over the years to fix the problem of improving the flow of customers through their registers. One methods was to use an express checkout. Customers who have only a few items (a small amount of work) go through the express lane. Whereas everyone else goes through the slow lane.
This can work, but there are times when you have the express lane queues snake a long way too again during busy times.
Another way Supermarkets have tried to alleviate the problem is through self checkout. Here, our checkout operator is replaced by a machine, but the queue structure is the same as the department store model.
So where is this analogy going?
Well, with the push method of working, large bodies of work – some pieces not needed for weeks or months are pushed onto one person. That person works on that piece of work and delivers it at the end. If a more higher priority piece of work comes along, things are rearranged, this causes disruption and the person then works on the higher priority piece of work. In some places, this is taken as being “Agile” because the higher priority piece of work was able to be worked on. Nevermind about the disruption.
A better way to work is to take the department store model. Smaller pieces of work – only what you need now, not what you need weeks or months later, is worked on. This requires breaking down the contents of those large trolleys into only what you need for the next day or two. If something of a higher priority is required, let’s say someone with a tub of ice cream that will melt any second because the aircon is out at the supermarket on a 45oC day, there is no rearranging of anything. That piece of work only has to wait a short time before it is serviced.
Break down your work into small chunks. Rearrange those chunks into priority order based on value, due date or whatever. Then have your people “pull” those pieces of work off the queue to work on them. You will get things done quicker. There is no need to manage the work, it will manage itself with only a few rules.
- If you are working on something, complete it ASAP. Not later than possible (ie don’t cause intentional delays), not sooner than possible (don’t cut corners or do hacks), but as soon as reasonably possible.
- If you are free, pick up the next task on the queue. No cherry picking.
- Once you complete the task, go to step 1.
If there is a piece of work that a person cannot do because of a lack of skill, think of it as an opportunity to have that person learn that skill. They may require help from someone who has that skill, they may need significant help, but they will gain the experience and then you have 2 people with that skill.
If a person is on leave, it doesn’t matter, the work rearranges itself.
There is one overhead though, everyone needs to know everything about everything. It needs a level of knowledge dissemination, communication and collaboration, but that is what the Daily Standups are for. To help the team coordinate the work. Share knowledge and in the process eliminate handovers from one person to the whole team as the whole team knows everything.
Do you work this way? Does it work? Does it disintegrate into chaos? Let me know in the comments.