I went to the local Capital Kanban meetup yesterday evening. It was a bunch of Project Managers discussing Kanban and waste in IT. Seemed completely out of my comfort zone and a way to meet new people in tech here in town so I attended. It turned out to be really cool and way more interesting than my expectations were. I wanted to mention some of those here, specifically some of the IT wastes that were mentioned I see all the time, the insights I got from the paper airplane factory game, and some after meeting talk that changed my perspective on what I perceive as problems in our industry with good software east of California (hah, trick question, there IS no good software done east of California…).
IT Wastes
Andrea Ross did a presentation about waste in IT. Kanban, the production process used by Toyota then turned into a Project Management and Software Development, has 7 or 8 forms of what it calls waste. These are primarely in the factory line production process, so you have to draw your own metaphors and similes, and that’s what Andrea’s presentation extrapolated on.
From a high level, these are:
- Defects / Rework
- Overproduction
- Waiting
- Non-Standard Over Processing
- Transportation / Logistics
- Intellect
- Motion
- Excess Inventory
Her slides that have bullet point examples for each one are pretty self-explanatory. What was interesting to me was the sheer volume of bullet points I see all the time, together, in the same projects I work on. Some can’t be avoided, nature of the business and all that. Still, it was pretty eye opening to see that a traditional Factory Production process has identified these items as the core waste items, and software development has plenty of them with just about the same meanings. I won’t cover them in detail here as her slides do.
Kanban, Bottlenecks, and Waste
The concept of Kanban is to quickly identify bottlenecks in the existing production process, and iterate to improve the process to fix them.
Notice I said “existing” and “process”. The existing part is where Kanban has been easier to market than say Six Sigma which is bought into wholesale, hence why it’s easier to be a Six Sigma consultant than a Kanban one. Kanban you basically overlay on top of what you have and it surfaces the problems your existing process has pretty clearly. Meaning, if you see a bunch of cards on a Kanban board that are in the “Analysis” column, and very few in the rest, it’s pretty clear where the bottle neck is located.
Now the “process” part is analogous to the production line; in this case all that goes into making software from the traditional waterfall perspective: design, development, deployment. However, the key here is you aren’t fixing the “bottleneck”, but rather the process itself. That is what I learned through our Paper Airplane Factory exercise quite clearly. There are a series of games like this that can be modified, but the point is they help teach the bottleneck vs. process modification process extremely clearly.
The key takeaway for me was fixing the bottleneck, like the 5 developers + 1 manager in a war room during a troubling moment during a software project, is actually a form of waste. Yes, it’s great teams rise up to tackle these problems in the moment. However, it’s important to note that it’s the Project Manager’s job to both recognize this as waste and fix the actual process problem. I’ll explain this below.
Note: If you’re concerned about spoilers, please be aware of 2 things. First, there are more than just the airplane factory game that you can find online. Second, if you do read the following section and later participate in the exercise, please either let the teacher/presenter know, or try not to modify the process too much to allow others to learn.
Airplane Factory
The game is like so (abridged version, you can find the full instructions here):
- Divide your people into 4 groups, each sitting adjacent to each other. Circle or semi-circular seating arrangements works best to encourage intentional bottleneck adjustment engagement.
- Cut up the airplane folding instructions alone the designated lines.
- Give the first part of the instructions to the first group in the line. Give the second part of the instructions to the second group, and repeat on down the line. Some people may not necessarily have designated jobs beyond passing papers, etc. This is intentional to illustrate the intellect waste of not using human IP… and also to note how they’ll often become efficient passers, helpers, or even QA.
- Ensure the group/person who’s last in line is aware of how far the plane must fly as a metric of defining a successful plane.
- Setup a 5 minute timer, start it, and yell “Go!”
- After 5 minutes, identify how many successfully flown airplanes were made as well as how much waste (crumpled papers, non-flying planes, etc) were created. That’s the round 1 score.
- Iterate.
The iterate step is where you reflect on what just happened and attempt to modify the process. I’ll go over how ours went down so you get an idea.
Round 1
Line Setup: We had 8 people in our line. Round 1, we had 1 lady do the half fold, the 2nd guy do the additional 2 folds + paper sides cut, Andrea and I pass the paper to our left, another lady handle the 1st wing folds, and a gentleman at the end to make the wings and throw it. Our last person was a lady who handled QA and scoring.
Process: Very quickly we had a bottleneck with the lady at my stations left. The instructions weren’t very clear and she struggled to learn how to do the first one. Both Andrea and I quickly went to help; Andrea attempting to do it with her, me taking a picture of the instructions with my iPhone, and attempting to duplicate at my desk while ensuring I kept passing the planes to my left into an ever growing pile.
Once I figured it out (I had actually built the exact same plane last week for my daughters birthday present which has an electronic propeller you attach), I told the ladies to ignore the “requirements” as they were crap and I walked them through how to successfully complete their step. I then quickly returned to my desk which had a pile of unmoved inventory.
The only person who didn’t struggle with their assembly was the 1st in the line who had to fold paper in half.
I believe we ended up with 2 planes and 1 waste.
Takeaway: Our teacher quickly pointed how we went “downstream” to fix the production line process. This is a reactionary, and completely normal mode, to fix production line problems. It’s also wrong. You’re supposed to identify the upstream problem causing it and fix that. Additionally, we didn’t stop the line to ensure we fixed this problem first before continuing, also wrong. Car companies like Toyota do this via a chain that’s pulled to stop the line so they can ensure the problem is resolved. Sometimes they even take part of their line off the main line to ensure things keep moving.
As a side note, apparently GM used to keep going. Door doesn’t fit right? Keep going; jam the mofo on there. They’d end up with a lot full of cars pretty quickly… even if they were low quality. Ford was similar, but they’d ensure the cars were actually sold first before they sold them, thus not resulting in lots full of inventory they couldn’t sell like GM… even if the quality of pre-sold cars was still low.
We also noted various other problems such as no training in each plane’s building instructions, no one stopping if the station after them go overwhelmed with their ever growing stack, and sometimes idle resources (people with not much to do).
Round 2
Improvements: First, the teacher actually implemented designated stack areas with a piece of paper on each station, and then wrote a number on the paper; this was the max amount of completed planes you could place for the next station to build so you didn’t exacerbate a bottleneck.
Second, I become a designated passer to my left while my partner moved to the left station to have a 2 women team doing the complicated folding.
Process: My job was pretty easy; pass, and ensure I don’t bottleneck it. Every single station was faster since they had practiced their portion. The guy to my right had actually done his first 3 paper cuts wrong in round 1 which caused confusion to my left station, but had it down pat in round 2. The last station still experimented with various angles of folding to see how far the plane could actually fly. We actually had the last women in the line, QA, send a messed up plane back through the line as an unfolded piece of paper because it didn’t fly right; w00t, less waste!
A bottleneck, again, formed to my left, but the girls found a way to divide up the 2 step process between them to be more efficient. As our 5 minutes progressed, they got faster and eventually started making progress on the backlog.
We made 5 planes, 1 waste.
Takeaway: We built 4 planes with 1 waste. The first person, as usual, was too fast. The guy to my right had an inefficient process because he’d have to fold, pick up the scissors, cut, then put ’em down again. We had all abandoned our airplane instructions by this point.
Round 3
Improvements:Â Everything else was fine, so we decided to give me the cutting job and the guy to my right would just fold. The girls to my left on-the-fly modification was good and we kept it.
Process: My first 3 were slow, but once I practiced, I was uber fast and we were humming. The girls to my left were killing it. I managed to keep my right stack always below or at 2 in the pile. Very quickly it became apparent the 1st person was too fast; she was constantly folding and then waiting before she was allowed to make another.
We made 8 airplanes, no waste.
Takeaway: Those of with spouses were already getting texted like mad to leave, but we all WANTED to see Round 3 succeed better than 2, and see if we made the process perfect. We didn’t; it went the complete opposite direction to the front of the line needing minor modifications. Overall, though, our output increased a lot, our waste went down, and it was very clear that the adjustments we made + the teachers maximum stack amounts were working well.
My Overall Takeaways
I went to this meeting to both meet new people in town to network with as well as to get out of my comfort zone. I find when I do the latter, I learn a lot and sometimes get a new perspective. It gave me a new appreciation for Project Managers who have not just 1, but 5 projects they have to manage to make an attempt to do this on. This also assumes they get enough time to really learn about each teams issues, where those bottlenecks are, and what the best ways are to address them. NOT by just fixing the bottlenecks, but by fixing the process itself, ensuring stop guards are in place not as many items/cards in a column, etc.
It also made me intimately aware of how I, as a consultant, immediately want to fix the bottleneck, and have learned ways (such as the war room) to solve them… when in reality, it’s a PM issue for a greater process problem. The other thing that makes it more complex is the whole “all things being equal”. For example, a Kanban board a PM would use on the whole process vs. just the Kanban board my software team would use. If my team fails to do TDD and ends up with a variety of bugs in the system because we’re forced to develop quickly and produce bad work, this show up on hers as us being the bottleneck. Without time to talk to us and really empower us to change our process, nothing will change.
I see this time and time again. The excuses, which are sometimes valid, range from “the software’s good enough even with the bugs”, or “TDD is too much work for not enough value” or “we can’t write a test suite for a huge mess that isn’t even testable”. …and that’s just a small portion of what I’ve seen gone wrong. If you’ve ever worked for a design agency, or even a large firm that has a huge new client, it’s very apparent many teams have a hard time getting sign off from clients which causes a bottleneck in the analysis column on the Kanban board because the items either pile up, or priority constantly shifts… yet they never actually make it out of their column.
A PM there who works with the government offered his strategies for dealing with the strange QA cycles government agencies will have where it goes into a black hole for 6 weeks thus really screwing up his Kanban metrics.
Overall, it was neat to be in a room with people who were geeking out on improving process. You see a lot of software developers get bored with programming or frustrated with how their lack of process is going, so they read up on XP and Agile. When you look at what these PM’s deal with, it makes you feel like just a small part in a larger overall process.
More importantly, my preconceptions about leadership being the problem 99% of my problem projects really had a wrench thrown in. I was bitching about it to one of the PM’s, and quickly explained, in great detail, why some big companies which don’t have a hard line metric such as money to predict performance will often use Lean methodologies since “ensuring customer satisfaction” is hard to measure depending on your business, and requires a more exploratory way of doing business. That said, it was great to hear that the common problems I experience in software dev with solutions were the same, just 1 of many that PM’s have to deal with.
I highly encourage software developers to partake in one of these exercises, even if you do Scrum vs. Kanban. Really eye opening stuff.