There are quite a number of good software development practices that are mostly great when teams choose them on their own but often produce terrible results when imposed. Unit tests and writing documentation are two that come to mind.<p>I think the problem isn&#x27;t with the individual practices, it&#x27;s with a theory of management that treats programmers as minions rather than professionals. And, of course, with programmers&#x27; widespread acquiescence to that power relationship.