CHAPTER 1: WHAT IS AGILE?2
āAgileā is a collective term for methodologies (and practices) that have emerged over the past two decades to increase the relevance, quality, flexibility, and business value of software solutions. These adaptive management approaches are specifically intended to address the problems that have historically plagued software development and service delivery activities in the IT industry, including budget overruns, missed deadlines, low-quality outputs, and dissatisfied users.
Although there is a broad range of Agile methodologies in the IT industry ā from software development and project delivery approaches to strategies for software maintenance ā all Agile methodologies share the same basic objectives:
ā¢To replace upfront planning with incremental planning that adapts to the most current information available (āApply, Inspect, Adaptā)
ā¢To minimize the impact of changing requirements by providing a low overhead structure to accommodate variations to the originally identified requirements throughout the project
ā¢To build in quality upfront and then relentlessly confirm the integrity of the solution throughout the process
ā¢To address technical risks as early in the process as possible to reduce the potential for cost and time blowouts as the project progresses
ā¢To entrust and empower staff to continuously deliver high business-value outputs
ā¢To provide frequent and continuous business value to the organization by focusing staff on regularly delivering the highest-priority features in the solution as fully functional, fully tested, production-ready capabilities
ā¢To encourage ongoing communication between the business areas and project team members to increase the relevance, usability, quality, and acceptance of delivered solutions
Agile methodologies are common-sense approaches for applying the finite resources of an organization to continuously deliver low risk, high business-value software solutions.
The last two bullet points in this list cannot be emphasized enough. Where traditional waterfall software development projects focus on using extensive upfront documentation to detail user requirements before development work can even begin, Agile approaches rely on shared communication between the development team and the business users throughout the project, with the business usersā highest-priority requested features regularly presented to them as fully functional software to confirm whether or not the delivered solution meets their requirements.
Some of the most common Agile methodologies (also referred to as āAgile methodsā) include:
ā¢Iterative strategies for managing software development projects, such as Scrum, Dynamic Systems Development Method (DSDM), Feature-Driven Development⢠(FDDā¢), the Rational Unified ProcessĀ® (RUPĀ®), and the Agile Unified Process (AUP)
ā¢Strategies for optimizing software development work, such as eXtreme Programming (XPā¢), and Lean Development
ā¢Strategies for managing software development projects, as well as maintenance and support activities, such as Kanban and Scrumban
ā¢Extensions of Agile methods to support large enterprise-wide teams and shared corporate objectives, such as the Scaled Agile FrameworkĀ® (SAFeĀ®), Scrum of Scrums, Large-Scale Scrum Framework (LeSS), and Nexus
These Agile methodologies have been (and continue to be) successfully used by thousands of organizations worldwide3, most notably in the US and Europe. Some of the more prominent organizations using Agile methodologies include Lockheed Martin4, Yahoo!5, Microsoft6, US Citizenship and Immigration Services7, Spotify8 and Hewlett Packard Enterprise9.
2 Everything You Want to Know about Agile: How to get Agile results in a less-than-Agile organization, Jamie Lynn Cooke, IT Governance Publishing (2012) has been adapted for use in this book, serving the same purpose as in the original.
3 As evidenced by the number of signatories to the Agile Manifesto by March 2018, agilemanifesto.org.
4 How Lockheed Martin Is Taking On Agile,2015, https://content.pivotal.io/blog/how-lockheed-martin-is-taking-on-agile.
5 Scrum Case Studies Yahoo!, 2014, www.scrumcasestudies.com/yahoo.
6 Meeting the challenges of agile development at enterprise scale (2017): microsoft.com/itshowcase/Article/Content/881/Meeting-the-challenges-of-agile-development-at-enterprise-scale
7 PERSPECTIVE: How USCIS Ensures Section 508 Compliance in Agile Development 2018, www.hstoday.us/federal-pages/dhs/uscis-dhs-federal-pages/perspective-how-uscis-ensures-section-508-compliance-agile-development/
8 Spotifyās Secret For Competing With Apple, Amazon, And Google, 2014, https://labs.openviewpartners.com/spotify-great-agile-example-scrum-done-right/#.WwI9vOq5vIW
9 Case Study: HPE Software (2010 to 2018): scaledagileframework.com/hpe-case-study/
CHAPTER 2: THE POWER AND PERILS OF AGILE
The ability of Agile approaches to deliver real results is both its greatest strength and its greatest exposure. Organizations often get so excited about the effectiveness of Agile approaches that they become complacent to its perils.
For organizations that have been burned by historical failures in their IT projects, the ability to receive working software on a regular basis can be refreshing, almost enchanting. Management and staff tend to see Agile as the ācure-allā for what has historically plagued the software industry. They are often so excited by the tangible outputs of their Agile software projects that they do not stop to consider where these approaches may be lacking.
The lopsided process diagram
The following diagram shows the process used in a common Agile method (āScrumā) to transition the high-level requirements identified by the business users (referred to as āProduct Ownersā) into prioritized functions that are implemented by the Agile development team:
The focus of this diagram is on the activities undertaken to translate the high-level business requirements identified by the business users into actionable functions that the development team can work on in the upcoming iteration. In particular, the diagram shows the importance of using a prioritized list of requested features (the āProduct Backlogā) as the basis for interactive discussion and clarification with the Agile development team. The Agile development team then uses the requirements information (and any supporting materials) provided by the business users to estimate the amount of effort required to deliver each requested feature. The objective is to produce an agreed list of system capabilities that the Agile development team believes can be achieved in the upcoming iteration (the āSprint Backlogā).
The irony is that this one diagram equally shows some of the greatest strengths and the greatest weaknesses in Agile methods.
The right-hand side of this diagram depicts the ScrumMasterās, Scrum Team Membersā, and Product Ownerās use of interactive dis...