Understanding Agile

The California Department of Technology (CDT) is developing guidance and tools for state departments and agencies to leverage for their usage of agile practices. Understanding Agile is the first release of a three part series to provide state project practitioners, executive leaders, and stakeholders information on agile practices, values, terms, and recommendations based on best practice. This foundational document will help ensure a common understanding of what agile is, and prime organizations for more in-depth conversations about adopting and using agile methodologies.

The CDT continues to develop additional information for organizations to enable successful IT project outcomes. Part two of this series will introduce topics such as planning for agile and assessing organizational readiness, leading to part three which will provide practical guidance and tools – a “how to” guide – for organizations that identify agile as the best approach to implement their project. The complete three part series will enable organizations to focus on the delivery of business value and outcomes to their customers in an incremental and continuous way that is suitable for the government setting. Check back regularly for release dates for parts two and three.

Click here or on the cover page to download Understanding Agile.

Explore Understanding Agile

A summary of each section of Understanding Agile is briefly highlighted in the panels below. Click on a panel to expand the view and see the additional content. For the complete text of each section see the PDF of Understanding Agile.

Introduction

Agile development practices present an alternative approach to the waterfall method more commonly employed in the State of California for information technology (IT) projects. As the landscape evolves and there is a growing awareness and desire to use agile, state organizations need to be equipped with basic information to be able to make informed decisions about the path forward for their project needs. “Understanding Agile” explores key agile concepts within the context of project management and system development; compares and contrasts waterfall and agile; and discusses next steps for organizations that want to further explore using agile.

Agile Defined

Agile is an approach in which the solution for a business problem or opportunity can evolve over the life of the project. It promotes:

  • Frequent delivery of usable system functionality
  • Iterative planning as user needs are more defined
  • Delivery of high-value functionality early in the project
  • Team is empowered to make decisions and accountable for taking ownership
  • Continuous improvement by incorporating feedback and lessons learned on an ongoing basis

Agile is a way of thinking and doing with several core principles that should be followed. These include the following six concepts detailed in “Understanding Agile”:

  • Iterative development
  • User centered design
  • Iterative planning
  • Flexible scope management
  • Team ownership
  • Continuous improvement of processes

Agile Myths

To better understand what agile is, it may be helpful to understand what it is not. The following agile myths are explained in “Understanding Agile”:

  • Myth 1 – Agile Means “No Planning”
  • Myth 2 – Agile Means “No Governance”
  • Myth 3 – There is No Documentation with Agile
  • Myth 4 – Agile Practices are New
  • Myth 5 – Agile Only Works with Small Projects
  • Myth 6 – Agile = Scrum
  • Myth 7 – Implementing Agile is Easy
  • Myth 8 – Pure Agile is the Answer
  • Myth 9 – Agile is Undisciplined

Waterfall and Agile

There is a spectrum of project management and system development approaches available for projects to choose from, anchored on either ends by the predictive waterfall approach and the adaptive agile approach. To better describe the ends of this spectrum, “Understanding Agile” compares and contrasts the following key characteristics of agile with the more familiar aspects of waterfall. The table below identifies the characteristics that will be explored and summarizes the difference between waterfall and agile approaches.

Characteristic Waterfall Agile
Scope and Resource Management Fixed scope with estimated resources and time Fixed resources and time with estimated scope
Product Development Cycle Product delivered at the end with a linear, phased approach Product delivered incrementally with short term, iterative development cycles
Project Management Planning Detailed, long-term project planning completed prior to execution Continuous planning based on iterations
Team Composition Definitive team roles with individual assignments of accountability Flexible, cross-functional team roles with the team sharing accountability equally
Stakeholder Involvement Stakeholders are typically involved at the beginning and end of project development Stakeholders are deeply involved throughout project development

Selecting the Right Approach

Many state organizations may not be ready to fully adopt agile as a project management and/or development approach, but certain agile practices related to the organization and project planning can be leveraged in a traditional waterfall environment. “Understanding Agile” explores the appropriate use of agile, waterfall, and the modular approach.

Transitioning to Agile

To institutionalize a culture that supports adaptive strategies, state organizations should create a plan to identify and address the potential challenges it may face when adopting agile. “Understanding Agile” describes the following success criteria for being more adaptive in pursuit of being agile:

  • Access to Business Owners
  • Multi-skilled Teams
  • Ability to Collocate Teams
  • Executive Support
  • Stakeholder and User Involvement
  • Pilot Approach
  • Access to Agile Expertise and Transition Support
  • Flexibility with Documents and Meetings

Next Steps

As State organizations evaluate adopting agile, consideration should be given to making small, incremental changes. “Understanding Agile” recommends next steps if an organization is interested in becoming more agile in its project management and system development practices. Below are recommended next steps that your organization can take:

  1. Engage a certified agile expert
  2. Create a roadmap
  3. Form an executive team
  4. Identify a pilot project
  5. Train pilot program participants
  6. Kick off the pilot project
  7. Gather feedback
  8. Share successes