(USA and Canada) There is a lot of discussion and need recently on Agile Delivery for quality implementation of strategic and transformational programs faster and below approved cost. In this article we will review:
What Does “Agile Execution” Mean?
The need to move towards Agile Execution
Agile Approaches and
Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. The term was coined in 2001 when the Agile Manifesto was formulated. Refer to the Manifesto at http://agilemanifesto.org/
Iterative (Agile) delivery fundamentally means "re-do". Iterative development helps you improve your product based on empirical requirements and design. There is a high percentage of re-work as business usage of the delivered product increases based on new requirements.
Incremental (Phased Approach) delivery approach fundamentally means "add onto". Incremental development can occur if requirements and high level design are documented.
Agile Execution increases “Probability” of end solution to meet the actual needs for End Users. It also allows for more “frequent”, “working product demo” or delivery of the solution based on prioritized use cases from enterprise strategy roadmap. Agile Execution allows for more accurate estimation and is based on foundational need of “collaboration”, "prioritization" and "continuous learning" towards faster delivery.
There are many documented Agile Approaches including but not limited to: Scrum, XP: eXtream Programming, Kanban, Crystal, Feature Driven Development, Scaled Agile Framework (SAFe), Distributed Agile and Disciplined Agile (DAD). All of these Agile Approaches have detailed studies with documented constraints, exceptions and advantages. Agile Approach selection for a company/program delivery is usually based on and tailored towards specific company culture and strategic requirements.
" Key Enablers" are the most important part of ensuring success for any Agile Program. There are 3 Key Enablers for Agile Program Management: "Program Teams Maturity", "Information Enterprise" and "Program Maturity Measurement".
Program Teams Maturity involves best practices of Collaboration, Co-Location, Technical practices of simplicity in Design, Quality of Deliverables, Knowledge creation and working software / reports that are the principal measure of Team's progress.
Information Enterprise involves approach and supporting processes towards "Increased delivery speed (Velocity)", "Improved Efficiency ( More Automation) ", "Enhanced Quality (First Time Right)" and measurement of "Business Satisfaction Index" based continuous delivery of useful software.
Program Maturity Measurement involves measuring and improving processes towards "Improved Effectiveness(Earned Business Value)" , "Improved Enterprise Prioritization", "Improved re-use of Technical Objects" and "Agile Distributed Teams" based on standard enterprise metrics.
There are a number of best practices that support the 3 Key Agile Program Management Enablers. These best practices can be grouped into 4 categories: Process, People, Technology and Leadership.
Agile best practices for "PROCESS" require "Prioritized Requirements" and user sessions detailing "Minimum Viable Product" discussions with Business, Engagement of Business in Scrum Meetings, Working with Architecture Team on "Initial Architecture Envisioning" and consistent usage of "estimator tool".
Agile best practices for "PEOPLE" require "Motivated Team Members", "Co-Location", "Knowledge Sharing" and "Multiple Roles by same resource".
Agile best practices for "TECHNOLOGY" require "Consistent usage of Tools (JIRA/TFS/Others)", "Standard Burn Down Matrix" and "Data Replication".
Agile best practices for "LEADERSHIP" require "Acceptance to re-work as part of Agile", "Top Down Support", "Timely Removal of Impediments" and support for “Zero-Transition Teams”.
There is more culture and processes to Agile Delivery than technology. Not every project/program can be delivered using Agile Processes.
Usage of an "Agile Project / Program Qualification" Check List is the best way to confirm correct delivery approach.
Some of the questions on the "Agile Project / Program Qualification" are mentioned below and are related to 4 categories: Process, People, Technology and Leadership.
People: Can the project/program resources be co-located? , Do we have commit to Zero transition teams? (Same team members on the product)
Process: Can business be part of Agile Teams?, Does business provide with prioritized use cases and requirements.?
Technology: Do we have mature and standard technology for Agile?, Do we have defined agile metrics?
Leadership: Do we have Agile Top Down Culture committed by Leadership? Is Leadership ready to work towards quick decision making assuming there will be re-work and knowledge that decisions may be changed later?
These Agile Program best practices will provide Predictability towards Program Metrics, Visibility to Strategic results and "Flexibility" towards program delivery.