Ok, this may seem like heresy, but Scrum isn't enough for organizations to succeed with agile on software development efforts. Scrum provides techniques for the incremental definition and management of work and Scrum describes the roles, collaboration, and communication patterns for Scrum teams. While these address some software development challenges, their are several others that must be considered to achieve the hyper-productivity that's possible with agile.
When I discuss agile with my customer/clients/prospects, I advocate a mashup of Scrum and Extreme Programming (XP) practices and activities. Scrum provides the management framework and XP the developer and individual contributor best practices. Additionally, if your practicing agile at any level of scale (more than 3 teams that are collaborating on a release), there are important "program management" and "product planning" activities that both Scrum and XP do not address.
So when I evaluate how agile an organization is, here are the key activities and practices I look for:
- Cross-functional teams that include the customer (or their proxy), development, test, documentation and any one else required to create "the whole product"
- Incremental delivery of production quality capabilities at regular intervals
- Test-driven development that builds quality in from the beginning
- Automated and unattended build, test and reporting and I maniacal focus on build quality
And for enterprise class agile, we've got to consider program and product management. There are some in the Scrum community that advocate the "Scrum of Scrums" and "Super Scrum" for these activities respectively. I've seen these used quite effectively.
- The Scrum of Scrums is a program management meeting. It's run by a Scrum Master, attended by all Scrum Masters and Product Owners, and typically occurs twice a week. Its a tactical meeting where Scrum Masters discuss cross-team impediments, team acceleration or deceleration, and other topical issues.
- The Super Scrum is a product planning meeting. Its run by the Chief Product Owner, attended by all Product Owners and Scrum Masters, and is held about twice monthly. The purpose of this meeting is to discuss long term product vision and direction and to continuously evaluate product-level backlogs and priorities. For this meeting to be effective, it must stay at the vision, theme, and epic level. Lets leave it to our teams to do the heavy lifting!
A successful agile implementation relies on the existence and interplay of all of these practices and activities. It is not easy to get there and there are many practical challenges and considerations. But with team and management support, and a fair amount of intestinal fortitude, the hyper-productivity of agile is within your reach!