This category is human-system related, a category which we can roughly define as us not understanding the problem and includes:
- Miscommunication and mis-understanding
- Lack of knowledge
- Making assumptions without validating them
- Not knowing what we want until we see it
One mindset shift that might help with this is to consider everything we do to the point where we deliver our software as design; this includes writing the code. This thinking will help us understand that in each step toward delivery we should be asking "Are we building the right thing?"
As we discussed back in Chapter 1, The Software Industry and the Agile Manifesto complex problems tend to hide details that we don't uncover ...