Allen Ward has a different set of wastes he finds in most types of development work. I find it interesting to compare and contrast the two.
I think Ward hits more fundamental points (e.g. this page suggests the waste lies in not consulting a domain expert, whereas Ward suggests the waste lies in the hand-off it takes to consult a domain expert in the first place, rather than have the development team become domain experts. Or when this page talks about building the wrong product, Ward talks about wishful thinking and being gut-driven rather than data-driven.)
Here are some of the wastes I remember making notes on from Ward's book. If you want more details on any, I'm happy to answer questions.
- Scatter: disruption in communication, communication barriers, changing priorities, distractions.
- Hand-off: essentially when there's a common goal, but different people are in charge of knowledge, responsibility, action, and feedback. Important information disappears into black holes during hand-offs.
- Useless information: reports, updates, analysis, etc. that is created not because it helps the customer, but because someone wants it to feel good.
- Waiting: over-utilised resources cause queues which lengthen feedback, decrease urgency, increase variability of performance, etc.
- Wishful thinking: making gut-driven rather than data-driven decisions, planning further out than you can reliably predict, reducing uncertainty too soon.
- Discarded knowledge: spending time and effort building knowledge, but then filing it away and never reusing it.
Interesting. When I started my career as a software developer I was all about gut-driven design/development: I did what felt good and discarded excess.
After some years of professional experience I became a data-driven person. I felt as if I had the true wisdom the team needed; I discarded any comment that was not backed up by data. This stage didn't last much, it just didn't feel right (oh the irony). Now I'm all about gut-driven development again. Difficult to explain to other engineers with less experience why I'm like this. In fact, I believe one must become a data-driven development before one can actually discard the approach.
- There are some areas where humans can develop good intuition on their own. For example, I believe that with experience, you'll learn to distinguish a good variable name from a bad one. You can go with your gut when naming variables.
There are some areas where human intuition will pretty much always be very wrong. Figuring out what the customer wants is one of them. IIRC good developers guesses right about what the customer wants about 30 % of the time. This is abysmal. This is where you need to let data drive your decisions.
There's lots of psychological research on this. Meehl has his classic studies on clinical versus actuarial reasoning. Kahneman has had his adversarial collaborations with that other guy who promotes intuitive decision making.
The key is to continuously test your abilities to know your limits and don't get overconfident when your gut tells you you're right.
I think Ward hits more fundamental points (e.g. this page suggests the waste lies in not consulting a domain expert, whereas Ward suggests the waste lies in the hand-off it takes to consult a domain expert in the first place, rather than have the development team become domain experts. Or when this page talks about building the wrong product, Ward talks about wishful thinking and being gut-driven rather than data-driven.)
Here are some of the wastes I remember making notes on from Ward's book. If you want more details on any, I'm happy to answer questions.
- Scatter: disruption in communication, communication barriers, changing priorities, distractions.
- Hand-off: essentially when there's a common goal, but different people are in charge of knowledge, responsibility, action, and feedback. Important information disappears into black holes during hand-offs.
- Useless information: reports, updates, analysis, etc. that is created not because it helps the customer, but because someone wants it to feel good.
- Waiting: over-utilised resources cause queues which lengthen feedback, decrease urgency, increase variability of performance, etc.
- Wishful thinking: making gut-driven rather than data-driven decisions, planning further out than you can reliably predict, reducing uncertainty too soon.
- Discarded knowledge: spending time and effort building knowledge, but then filing it away and never reusing it.