Gartner’s analysts David Norton and Mike Blechar recently published “Enterprise-Class Agile Development Defined“. Although the content is very light and the findings not revolutionary, the research presents a high level differentiation between enterprise wide Agile adoption and enterprise class Agile adoption.
Enterprise wide Agile adoption
Our definition of EAD differentiates enterprise-class from enterprise-wide. Across the organization (enterprise-wide), organizations might be doing many self-contained/independent agile development projects that are totally unrelated and that meet specific tactical needs. Or, the projects may be first iterations of agile development projects intended to help organizations gain understanding and insight into how the application solution could subsequently be grown into a more complete solution, which will subsequently be integrated into the current application solution portfolio. Most of the agile development projects we see start out without real concern for the longer-term impact on the application ecosystem and broader solution architecture. They generally fail to scale to the needed enterprise-class solution characteristics we identify in this research, even though the project may consist of hundreds of developers and be classified as enterprise-wide.
Enterprise class Agile adoption
Enterprise-class AD includes assessing the impact on the current and future enterprise solution architecture for the organization to make the right business decisions.
One of the key finding presented by the authors is that:
Agile development methods are increasingly being used within organizations as business differentiators, which is raising their profile from tactical project level to a more strategic enterprise level.
And as such, one of their recommendation is that:
Enterprise-class agile development cannot be driven only by the CIO and application development (AD) teams. Strong business commitment is essential. Don’t attempt to drive enterprise agile from an IT perspective, as it will fail.
In their research, the authors have identified seven key elements that collectively, positively impact enterprise wide software development processes. Taken together, these key elements help organizations achieve an enterprise class Agile adoption.
- Customer-Centric: Exceeds the notion of the business project sponsor to include the corporate strategies and organizational goals. The product owner and team members need to fully understand and be aware of the impact of the solution and its architecture on the overall corporate goals.
- Collaborative and Cooperative: This is not just cooperation between IT and the business, but also within IT departments across the various sections of the organizations, including teams that are not co located.
- Constant Feedback: Though lengthy planning is often eliminated from Agile projects, due to organizational constraints it should not (and possibly cannot) be completely removed. This doesn’t mean to overly invest time and efforts but “just good enough” planning should allow projects to get started. As such, constant feedback isn’t limited to the communication between the IT and Business units but similarly with all support departments and various stakeholders.
- Heterogeneous Environment: There is no magic formula for success, and adaptation is required for a successful adoption.
- Throughout the Software Life Cycle: Agile practices, such as refactoring, applied throughout the life cycle, can extend the useful life of the application.
- Continuous Delivery: Speaks to the need of continuous collaboration between IT and the Business units in the development of a product.
- Adaptive Solutions: Discusses a compromise between a complete top-down architecture and an emerging architecture.