We want to do our best work, and yet often cannot manage to do so. Circumstances conspire to impede progress, impair communications, and prevent success. Organizations want to know how much software will cost, and when it will be delivered. Developers want to be proud their work, and they want it to have meaning. However, my view from the trenches indicates that many times these desires are not fulfilled.
I teach classes in Object-Oriented Design, but the most common question I receive is not technical. Students want advice about how to do good work in organizations which profess to be Agile but seem to actively resist their efforts. Bright, committed, and highly motivated programmers feel prevented from acting in the best interests of their organizations. In the short-term they despair, and in the long, they depart.
Agile hasn’t failed them, but we might be failing Agile. It’s time to take an honest look at the problem and get practical about solutions.