Intro to Agile

Projected Time

Prerequisites

N/A

Motivation

The benefits of Agile software development includes:

Which companies use agile development?

Objectives

Participants will be able to:

Specific Things to Learn

Materials

Definition of Agile

“Agile is the ability to both create and respond to change in order to succeed in an uncertain and turbulent business environment.” - Jim Highsmith - co-author of the Agile Manifesto

More specifically, Agile is a set of values and principles, which describe a culture in which change is welcome (and even seen as a competitive advantage), and the customer is the focus of the work.

Agile advocates adaptive planning, iterative and incremental development, close collaboration with the customer, and cross-functional teams to build working software.

Agile values and principles, as outlined in the Agile Manifesto, underpin a lot of software development methods and practices, such as Scrum or Extreme Programming (XP).

Agile is an umbrella term

Each agile methods has a slightly different approach for implementing the core values from the Agile Manifesto, just as many computer languages manifest the core features of object-oriented programming in different ways.

Plan-driven(Waterfall) vs. Agile development

Agile and Waterfall are very different software development methodologies and are good in their respective way.

However, there are certain major differences highlighted below -

Note: This comparison doesn’t imply that one is good and the other is bad –> both are “tools” and there is no such thing as a bad tool, just an inappropriate use of that tool.

What is plan-driven development?

The idea behind plan-driven is that the better the planning and the better you understand the plan, the better the execution of the plan and the outcome.

Plan-driven development is often called sequential or waterfall -> because tasks are performed in a sequence. E.g. you first write the requirements, you complete the design, you implement the design, then you do the testing and ship the product.

What kind of projects/tasks are well suited for a sequential development?

The Stacey Complexity Model

Stacey-diagram

Categories

The Stacey complexity graph divides tasks into four different categories.

Dimensions of the diagram

Sources / further reading:

Describe step-by-step what needs to be done to prepare a cup of tea. (Baking a cake by following a recipe is another example to use). This should illustrate a defined process. Plot “making a cup of tea” on the Stacey graph.

Taking a shower in a new hotel room is quite different from that. E.g. you have to figure out the dials, you have to experiment to find the right temperature. This illustrates an empirical process “apply, inspect & adapt” Plot “taking a shower” on the Stacey graph.

Think about where software development projects sit on this graph? And why …?

Characteristics of plan-driven software development projects

Challenges with plan-driven software development projects

But, real projects rarely follow the sequential flow that the model proposes.

At the beginning of most projects, there is often a great deal of uncertainty about requirements and goals (see agreement axis in the Stacey graph).

How is Agile different?

Agile principles: http://agilemanifesto.org/principles.html

Agile Manifesto

The Agile Manifesto is a formal proclamation of four key values and 12 principles to guide an iterative and people-centric approach to software development.

The four core values of agile software development as stated by the Agile Manifesto emphasize:

“That is, while there is value in the items on the right, we value the items on the left more.”

Common Agile Methods

Common Agile Practices

Process:

Technical:

These are just a few examples, there is so much more. Explore Subway Map to Agile practices: https://www.agilealliance.org/agile101/subway-map-to-agile-practices/

Minimum Viable Product (MVP)

Minimum Viable Product (MVP) is a concept from Lean Startup by Eric Reis, defined as an MVP as “the version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort.”source

Simply put, an initial version of a product with the minimum core features that will satisfy initial users.

Some benefits of MVP are:

Further reading: Minimum Viable Product by Agile Alliance

Common Agile Misconceptions

XP Simulation Game

If you have time play the XP game to illustrate the following concepts:

All material and an outline of the game can be found and downloaded here: http://www.agilebelgium.be/xpgame/

Personal Take-Aways

Incorporate the following in personal study:

Supplemental Resources