Summary - Agile

Agile Overview

The Agile Manifesto

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.

12 Principles of Agile

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity–the art of maximizing the amount of work not done–is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Links:

Scrum

Scrum is a process framework used to manage product development and other knowledge work. Scrum is structured in a way that allows teams to incorporate practices from other frameworks where they make sense for the team’s context.

Scrum Values

Teams following scrum are expected to learn and explore the following values:

  • Commitment
  • Team members personally commit to achieving team goals

  • Courage
  • Team members do the right thing and work on tough problems.

  • Focus
  • Concentrate on the work identified for the sprint and the goals of the team.

  • Openness
  • Team members and stakeholders are open about all the work and the challenges the team encounters.

  • Respect
  • Team members respect each other to be capable and independent.

Scrum Principles

  • Transparency
  • The team must work in an environment where everyone is aware of what issues other team members are running into. Teams surface issues within the organization, often ones that have been there for a long time, that get in the way of the team’s success.

  • Inspection
  • Frequent inspection points built into the framework to allow the team an opportunity to reflect on how the process is working. These inspection points include the Daily Scrum meeting and the Sprint Review Meeting.

  • Adaptation
  • The team constantly investigates how things are going and revises those items that do not seem to make sense.

Scrum Events

The events that are contained within each sprint are valuable opportunities to inspect and adapt the product or the process (and sometimes both).

  • The Sprint
  • The heartbeat of scrum. Each sprint should bring the product closer to the product goal and is a month or less in length.

  • Sprint Planning
  • The entire scrum team establishes the sprint goal, what can be done, and how the chosen work will be completed. Planning should be timeboxed to a maximum of 8 hours for a month-long sprint, with a shorter timebox for shorter sprints.

  • Daily Scrum
  • The developers (team members delivering the work) inspect the progress toward the sprint goal and adapt the sprint backlog as necessary, adjusting the upcoming planned work. A daily scrum should be timeboxed to 15 minutes each day.

  • Sprint Review
  • The entire scrum team inspects the sprint's outcome with stakeholders and determines future adaptations. Stakeholders are invited to provide feedback on the increment.

  • Sprint Retrospective
  • The scrum team inspects how the last sprint went regarding individuals, interactions, processes, tools, and definition of done. The team identifies improvements to make the next sprint more effective and enjoyable. This is the conclusion of the sprint.

Links: