| Agile and Lean Software Development
An Executive Briefing |
| |
| | | | Description: | As market and technological change accelerate and business opportunities become more fleeting, business agility and efficiency are increasingly seen as critical to success. In software development, several methods, collectively known as agile or lean, have emerged as key to achieving such agility.
We commonly hear terms such as Scrum, eXtreme Programming and Kanban. Certain practices such as Backlogs, Sprints and Test Driven Development are touted as silver bullets to our software development woes. But a holistic understanding of how these pieces fit together, how to pragmatically adopt them in your organisation, and the benefits to expect from them can be elusive.
This half day briefing is intended as an introduction to agile and lean development methods – it gives a broad overview of the methods themselves, the benefits promised, their impact on the software development industry, how to approach implementing them and the real-world problems you should expect. This serves as a great ‘level-setting’ activity for your organization, providing a common vocabulary to attendees and prompting discussions and reflection.
| | Suitable for: | An understanding of the ‘Big Picture’ is essential to all those considering adoption of agile and lean in their software development organisations: CEOs, CIOs, IT Managers, Project Managers, Transformation Agents, Senior Management, Senior Technical Leaders, Developers, Analysts, Testers. Many of the principles and benefits also apply to product and service development in general. | | Duration: | Half Day | | Course Objectives: | On completion of this briefing delegates will:
• Understand the fundamental difference between traditional, sequential development processes, and empirical and adaptive methods such as Scrum and Kanban
• Be familiar with the values, principles and major scientific bodies of knowledge underlying these methods
• Appreciate the many benefits offered such as improvements in quality, efficiency, predictability, time to market and support for innovation
• Be aware of the state of agile and lean adoption in industry, and some benefits realized.
• Know the major agile and lean methods in use, and the role of the most important practices in those methods.
• Understand the changes to organizational roles and structure required to nurture high performing, self-organising teams and scaling agile methods across the organisation
• Be aware of lessons learned from real-life implementations and potential pitfalls.
• Appreciate the alternate strategies for successful adoption, and possible next steps in moving toward a more agile and efficient software development organization
|
| | | | | Contents
Plan Driven versus Agile: Agile is a fundamentally different process control model from more traditional methods – its adaptability comes from continuous assessment, feedback and learning as development progresses. It uses empirical rather than deterministic control methods. This paradigm shift has widespread implications for the adopting organization.
Overview of the Agile Manifesto: Published in 2001, the manifesto describes the common values and principles shared by all agile methods, such as Scrum and XP. However, it is often misinterpreted as a license to dispense with process disciplines such as planning and documentation – a myth addressed in this module.
Business Benefits of Agile: Agile promises multiple benefits including improvements in quality, productivity, time to market and total lifetime costs. These, and others described in this module, complement the responsiveness and flexibility at the heart of agile.
State of Agile Adoption: From the first public appearance of Scrum in 1995, the agile movement has steadily gained traction in global industry, overtaking waterfall in popularity in the last couple of years. As the movement matures, there is emerging evidence that the promised benefits are now being realized en-masse in professional development teams.
Commonly Adopted Agile Methods: Of all the specific implementations of agile, combinations of Scrum and XP have emerged as the most popular, though many others such as DSDM, ASD, FDD and Crystal still maintain a minor presence. This module provides an overview of the practices used most commonly, and introduces the emerging Lean and Kanban based approaches.
Team Roles and Perspectives: Agile methods re-emphasise the importance of individuals and the team in creating great software – self-organisation, joint accountability and team oriented performance management drive new behaviours in the team. This module provides a fresh look at leadership, coordination, product management and other stakeholder roles.
Lessons Learned: Ken Schwaber, co-inventor of Scrum, stated that 75% of agile implementations will fail to realize expected benefits. Agile is not a prescriptive method – implementing it as per the text book does not guarantee success. Experiences and lessons learned across industries and project contexts reveal agile adoption ‘anti-patterns’ and provide symptoms of problems as well as suggesting remedies.
Scaling and Distributing Agile: Methods such as Scrum and XP recommend team sizes of less than 10 co-located members with few dependencies on outside groups. But most adoptions must deal with larger teams, offshore members, legacy code, separate teams for architecture, database or platform technologies, and other real-world difficulties. Here we discuss how these have been overcome in companies with large scale agile adoption running to thousands of developers.
Adoption Strategies: Implementation of agile can be bottom-up (initiated by development teams), top-down (mandated by management), all at once (‘shock-therapy’) or gradual (evolutionary). All of these involve moving along an ‘adoption curve’ through stages such as piloting and scaling until transformation is achieved. This module discusses the various adoption strategies and considerations to be taken into account in executing them.
| | | | top of page | | |
|
|
|
|
|
|
| |