Agile Auditing. Raven Catlin
to examine the project life cycle and development life cycle. A Guide to the Project Management Body of Knowledge (PMBOK® Guide – Sixth Edition; Project Management Institute 2017) states that “Project life cycles can be predictive or adaptive. Within a project life cycle, there are generally one or more phases that are associated with the development of the product, service or result. These are called a development life cycle … and can be predictive, iterative, incremental, adaptive, or hybrid models.”
TABLE 1.1 Views of Agile
Agile as a Methodology | Agile as a Mindset | Agile as a Movement |
---|---|---|
Practices matter more than mindset. | Mindset matters more than practices. | Mindset and practices are inexorably connected. |
The practices and methods of Agile were already determined by others. | The principles and values of Agile were already determined by others. | I have an active role to play in determining how Agile principles and practices are articulated and applied in my team or organization. |
Individuals within teams must collaborate and interact in prescribed and predefined ways. | Individuals within teams must independently develop an Agile mindset. | Individuals within team must work together toward a shared set of goals and values. |
The PMBOK® Guide goes on to explain that:
The traditional model, otherwise called waterfall, is a predictive life cycle where the project scope, time, and cost are determined in the early phases of the cycle. Any changes to scope are carefully managed. However, Agile is an adaptive life cycle and it may be iterative and incremental.
“In an iterative life cycle, the project scope is generally determined early in the project life cycle, but time and cost estimates are routinely modified as the project team's understanding of the product increases. Iterations develop the product through a series of repeated cycles, while increments successively add to the functionality of the product.” Iterative means repetitious actions. In Agile, iterations of project designing, planning, executing, testing, inspecting, and improving are repeated until a project is complete. The iterations increase functionality during a project until it is complete. In comparison, the waterfall includes single stages for designing (requirements definition), planning (project planning), testing/execution, and inspecting. In waterfall, the project constraints of scope, time, and cost are estimated at the beginning of a project. Agile frameworks determine and allow for flexibility on scope, time, and cost during an iteration.
“In an incremental life cycle, the deliverable is produced through a series of iterations that successively add functionality within a predetermined time frame. The deliverable contains the necessary and sufficient capability to be considered complete only after the final iteration.
“Adaptive life cycles are Agile, iterative, or incremental. The detailed scope is defined and approved before the start of an iteration. Adaptive life cycles are also referred to as Agile or change‐driven life cycles.
“A hybrid life cycle is a combination of a predictive and an adaptive life cycle. Those elements of the project that are well known or have fixed requirements follow predictive development life cycle, and those elements that are still evolving follow an adaptive development life cycle.”
Project managers must select the right approach, be it traditional, iterative, incremental, adaptive, or hybrid, to manage the project throughout the project's life cycle. The project manager, or the project team in some approaches, must balance the constraints of time, scope/quality, and cost. Constraints are anything that restricts the actions of the project team (Heldman 2005). In projects using some of the Agile frameworks, we restrict the time (i.e., Agile projects should be less than one month), and often restrict the cost, and estimate the scope. The scope is what will be covered or achieved, as agreed with the customer, in a particular project. The scope includes the functions, features, data, content, standards, and so forth that will be provided during the project. In some Agile frameworks, scope is adjusted frequently to fit in the fixed time and cost constraints and teams do not add more time to complete Agile projects. In Agile, all constraints are value‐driven, meaning one starts with the value proposition for Agile projects. Therefore, Agile projects focus only on necessary and enough processes to create the product. Moreover, Agile encourages adapting the project as needed to accomplish desired and changing goals.
Agile is also a mindset reflected in your organization's culture. To do Agile project management, you must begin with the Agile mindset (see Chapter 6, Creating the Agile Mindset). Your culture must support your efforts to execute your projects in an Agile way. We've dedicated an entire chapter to creating the Agile culture (see Chapter 17, Preparing Your Organization for Agile Auditing/Creating the Agile Culture) because the right culture is essential to the success of being and doing Agile. As Denning once stated, the wrong culture can kill any Agile efforts (Denning 2018). Use the following guiding principles as a foundation for the Agile mindset, methodology, and movement:
Agile means we start with our internal or external customers and continuously consider customer needs. Customer needs change. Sometimes customers don't know what they need until they see what they do not need. An Agile team's role in completing projects is just as crucial as determining customer needs and figuring out how to deliver value. Agile is customer‐centric.
Agile means we collaborate early and often. We start by identifying customer needs, write our requirements from the customer's view, and determine the work we can complete as a collaborative team. There is constant communication between team members. We do not wait until a specific meeting or time to communicate and collaborate. If you need to work with a Team Member, you let them know immediately. If you need something from a Team Member to complete your work, you tell them as soon as you know you need it, and preferably before you need it to complete your next task. Agile requires collaboration early in every project and frequently throughout the life of the project.
Agile means we plan for uncertainty. We not only recognize uncertainty exists; we expect it and plan for it. We are equipped with the tools and knowledge needed to address ambiguity in processes and in customer needs. We are prepared for the unexpected because we planned for it. Agile is being prepared for change.
THE AGILE MANIFESTO
Let's continue our understanding of Agile with a little history lesson. Agile was created for software development projects by 17 software practitioners. Collectively, these practitioners are referred to as the Agile Alliance. These 17 individuals met in Snowbird, Utah, in February 2001 to “uncover better ways of developing software.” The 17 software practitioners created the Agile Manifesto, which states (Beck et al. 2001):
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
The Agile Alliance, officially formed in late 2001, is a nonprofit organization that promotes, disseminates, and develops the use of Agile and supports people using Agile (Agile Alliance 2001). While the roots of Agile are in developing software, other industries, disciplines, functions, and professions use Agile, including marketing, sales, construction,