Fundamentally, assumptions are facts that we tentatively decide to accept as true so we can continue to make progress, even though we know those assumptions might end up being wrong. Assume standard temperature and pressure, or assume a frictionless plane, or assume a spherical cow. Rather than measuring exact temperatures and pressures, or coefficients of friction, or the shape of a cow, these assumptions allow us to continue working on our problem. If our assumption is way off (there’s no such thing as a spherical cow, after all), then our answer will also be way off. If our assumption is roughly accurate, our answer might be good enough for our purposes.
It’s probably obvious by now how assumptions can both help and hinder your requirements work. That’s why assumptions should always be tracked and listed – that way everybody knows exactly what assumptions are being made, what is affected by an incorrect assumption, and how to update requirements based on faulty assumptions. This is exactly the process we use, and what we recommend to everybody.
The problem lies with assumptions that are unspoken. For example, if I ask somebody for directions, I am assuming that they know where things are located, but I am also assuming more basic things such as what language they speak. Assumptions that you believe are likely to be true are correspondingly catastrophic when it turns out that they’re wrong.
I experienced this recently with a client. I was talking to them about “business requirements,” which are typically high-level features that don’t account for the solution, which comes later. The client, of course, had their own twist on processes and documents, and what they called “business requirements” DID account for the solution. We had several meetings that were very confusing because despite the fact that we used the same language, that language meant different things to each of us.
If you and a colleague are having trouble coming to a consensus on something that seems basic or obvious, stop and try this: re-examine all of your assumptions, and check that you’re both talking about the same thing before continuing. You’ll be surprised how often you’ve simply made different assumptions.