Nobody sets out to cause it. “Could it also…” is a normal and often good idea. The problem is when additions are absorbed without anyone noticing what they cost.
How it happens
- A function was described loosely and each person understood it differently.
- New ideas arrive as the product becomes tangible.
- Small requests are accepted without counting them.
- Nobody owns the question of whether something is in or out.
A simple discipline
- Write the scope, with what is excluded.
- Keep a change list. Every new request goes on it, however small.
- Price each change in time and money before deciding.
- Decide together whether to add it now, swap it for something, or park it for the next stage.
- Review the list regularly, so everyone sees where the project is going.
It is not about saying no
Good ideas should be welcome. The point is to make their cost visible so that they are decisions, not accidents. A parked idea that is written down is not lost; it is the start of the next version.
From the developer’s side, a good practice is to say early, “this is a change, here is what it affects”, rather than quietly absorbing it and surprising you later.