There are inherent tensions in software development. Many of these tensions are often misunderstood as unresolvable contradictions. Every development process theory is an attempt to unravel these tensions, balance them, or remove them altogether. Every development process practice exposes the difficulty in doing so in whichever particular area it breaks down, or needs special care and attention.
There is the tension around how we write down what we are doing when we often do not know for sure what we are ...