The Discipline of Active Stakeholder Involvement
Stakeholdersincluding business stakeholders, operations and support staff, and other enterprise IT professionalsare actively involved on Agile projects. Ideally, stakeholders are involved every single day throughout the life of your project, actively participating in modeling and testing efforts and sometimes even in development (yes, stakeholders can learn to prototype and even to write production code). This level of involvement enables them to see the inner workings of your software development efforts, motivating developers to act in a more professional and disciplined manner. It also motivates developers to focus on the actual priorities of their stakeholders and not their own personal priorities.
Effective active stakeholder involvement requires a clear definition of rights and responsibilities within the team. Stakeholders are commonly responsible for providing information and making decisions in a timely manner, and for prioritizing requirements. Developers must provide accurate estimates in a timely manner, commit to and honor those estimates, and explain the technical trade-offs associated with various decisions. Stakeholders and developers must respect the decisions made by others on the team, even when they disagree For example, a developer might not like how the requirements are prioritized but must still work on them in that order, and a stakeholder may not like the estimate given by a developer for a specific work item but must still respect it. As you can imagine, following these philosophies requires discipline at all times by everyone involved.
It is interesting to observe that by providing working software every iteration and supporting active stakeholder participation, stakeholders are given insight into the actual status of a software development project. This enables business stakeholders to effectively govern IT, the topic of next month's column.