Introduction to Agile and Scrum

  • > 70% of organizations have incorporated some Agile approaches. — Project Management Institute
  • 28% more successful using agile than traditional projects. — Price Waterhouse Coopers
  • 47% agile transformations’ failure rate. — Forbes
    • #1 reason is inexperience with implementing and integrating the Agile methodology. — VersionOne
  • Agile is a mindset that requires culture change.
  • It’s hard to learn Agile from just reading a book.
  • Recognizing when something is wrong is just as important as knowing how to do something right.

Introduction to Agile Philosophy: Agile Principles

What is Agile?

Agile is an iterative approach to project management that helps teams be responsive and deliver value to their customers faster

Agile defining characteristics:

Agile emphasizes:

  • Adaptive planning
  • Evolutionary development
  • Early delivery
  • Continual improvement
  • Responsiveness to change

Agile Manifesto:

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.

Agile Software development:

  • An iterative approach to software development consistent with Agile Manifesto
  • Emphasizes flexibility, interactivity, and a high level of transparency
  • Uses small, co-located, cross-functional, self-organizing teams

Key takeaway:

Build what is needed, not what was planned.

Methodologies Overview

Traditional Waterfall Development:

Introduction to Agile and Scrum Introduction to Agile and Scrum

Problems with waterfall approach:

  • No provisions for changing requirements
  • No idea if it works until the end
  • Each step ends when the next begins
  • Mistakes found in the later stages are more expensive to fix
  • There is usually a long time between software releases
  • Teams work separately, unaware of their impact on each other
  • The people who know the least about the code are deploying it into production

Extreme Programming (XP)

  • In 1996 Kent Beck introduced XP
  • Based on an interactive approach to software development
  • Intended to improve software quality and responsiveness to changing customer requirements
  • One of the first Agile method

Introduction to Agile and Scrum Introduction to Agile and Scrum

Extreme Programming values:

  • Simplicity
  • Communication
  • Feedback
  • Respect
  • Courage

Kanban

What is Kanban?

Kanban | ‘kanban | noun

(also Kanban system) a Japanese manufacturing system in which the supply of components is regulated through the use of an instruction card sent along the production line.

  • An instruction card used in a Kanban system.

Origin

1970s: Japanese, Literally mean ‘billboard, sign’

Core principles of Kanban:

  • Visualize the workflow
  • Limit work in progress (WIP)
  • Manage and enhance the flow
  • Make process policies explicit
  • Continuously improve

Working Agile

  • Working in small batches
  • Minimum Viable Product (MVP)
  • Behavior Driven Development (BDD)
  • Test Driven Development (TDD) (Gherkin Syntax — Developed by Cucumber Company)
  • Pair programming

Introduction to Scrum Methodology

Agile and Scrum:

  • Agile is a philosophy for doing work (not prescriptive)
  • Scrum is a methodology for doing work (add process)

Scrum Overview

Scrum:

  • Is a management framework for incremental product development

  • Prescribes small, cross-functional, self-organizing teams

  • Provides a structure of roles, meeting, rules, and artifacts

  • Uses fixed-length iterations called sprints

  • Has a goal to build a potentially shippable product increment with every iteration

  • Easy to Understand – Difficult to master

    Sprint:

  • A sprint is one iteration through the design, code, test, and deploy cycle

  • Every sprint should have a goal

  • 2 weeks in duration

Steps in the Scrum process:

Introduction to Agile and Scrum Introduction to Agile and Scrum

Agile development is iterative:

Introduction to Agile and Scrum Introduction to Agile and Scrum

The 3 Roles of Scrum

Scrum roles:

  • Product owner
  • Scrum master
  • Scrum team
  1. Product owner:
  • Represents the stakeholder interests
  • Articulates the product vision
  • Is the final arbiter of requirements’ questions
  • Constantly re-prioritizes the product backlog, adjusting any expectations
  • Accepts or rejects each product increment
  • Decides whether to ship
  • Decides whether to continue development
  1. Scrum master:
  • If your team is experienced, you might skip this role, but if you have a team new to Scrum, you require an experienced Scrum master.
    • Facilitates the Scrum process
    • Coaches the team
    • Creates an environment to allow the team to be self-organizing
    • Shields the team from external interference to keep it “in the zone”
    • Helps resolve impediments
    • Enforces sprint timeboxes
    • Captures empirical data to adjust forecasts
    • Has no management authority over the team
  1. Scrum Team:
  • A cross-functional team consisting of
    • Developers
    • Testers
    • Business analysts
    • Domain experts
    • Others
  • Self-organizing
    • There are no externally assigned roles
  • Self-managing
    • They self-assign their own work
  • Membership: consists of 7 ± 2 collaborative members
  • Co-located: most successful when located in one team room, particularly for the first few Sprints
  • Dedicated: Most successful with long-term, full-time membership
  • Negotiates commitments with the product owner – one sprint at a time
  • Has autonomy regarding how to reach commitments

Artifacts, Events, and Benefits

Scrum Artifacts:

  • Product backlog

  • Sprint backlog

  • Done increment

    Scrum events:

  • Sprint planning meeting

  • Daily Scrum meeting (a.k.a. daily stand-up)

  • Sprint

  • Sprint review

  • Sprint retrospective

    Benefits of Scrum:

  • Higher productivity

  • Better product quality

  • Reduced time to market

  • Increased stakeholders satisfaction

  • Better team dynamics

  • Happier employees

    Scrum vs. Kanban:

Introduction to Agile and Scrum Introduction to Agile and Scrum

Organizing for Success: Organizational impact of Agile

Organize for success:

  • Proper organization is critical to success

  • Existing teams may need to be reorganized

    Conway’s Law:

    “Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.”

    — Melvin Conway, Datamation, 1968

    Examples of Conway’s Law:

    If you ask an organization with four teams to write a compiler … you will get a 4-pass compiler!

    How teams should be aligned?

  • Teams are loosely coupled, tightly aligned

  • Each team has its own mission aligned with the business (like a “mini startup”)

  • Teams have end-to-end responsibility for what they build

  • The long-term mission is usually around a single business domain

    Autonomy is important:

  • It’s motivating – and motivated people build better stuff

  • It’s fast – decisions happen locally in the team

  • It minimizes handoffs and waiting, so teams don’t get bogged down

The Agile dilemma!

Introduction to Agile and Scrum Introduction to Agile and Scrum

The entire organization must be Agile:

Introduction to Agile and Scrum Introduction to Agile and Scrum

Agile + DevOps = Alignment

Introduction to Agile and Scrum Introduction to Agile and Scrum

Mistaking Iterative Development for Agile

The biggest pitfall for companies is that, they think they’re agile, but actually they’re just doing an iterative work.

Introduction to Agile and Scrum Introduction to Agile and Scrum

Agile is not…

  • Agile isn’t a new version of a waterfall, software development life cycle (SDLC), where you do legacy development in sprints
  • Agile isn’t just the developers working in each sprint, it involves a cross-functional team
  • The Agile Manifesto doesn’t include the term “Agile project management” (and so there are no “project managers” in Agile)