Planning for agility
There is no doubt that agile development techniques (of which there are several, Scrum, XP, Lean etc.) are an excellent way to empower a development team and enable them to really engage in the process of delivering software. I will focus, such that I need to, on scrum; my preference. These techniques delegate responsibility (not accountability) to the technical team, led by a scrum master. This enables them to decide what is done when and how these decisions are made relating to any given set or state of the requirements. The daily scrum meeting assigns priorities for work and addresses issues arising. It is a technical forum where the team frankly raise and discuss their issues and experiences. Scrum is usually composed of a series of sprints where requirements/features/stories (use cases) are solved in design and code. But how do you surface this kind of project within your business and how do you report on the unknown?