Agile Development & Values

Agile Development & Values

It evolved from lightweight methods with intentions to:

  • reduce formal documentation and bureaucracy
  • refocus on delivery of working software
  • improve adaptability to changing requirements from customers or other stakeholders

It let to a group of developers proposing the “Agile manifesto” which states to value:

  • individuals / interactions over processes / tools
  • working software over comprehensive documentation
  • customer collaboration over contract negotiation
  • responding to change over following a plan
Link to original

Agile Principles

Agile Principles

  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 competitive advantage.
  3. Deliver working software frequently.
  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. Sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design.
  10. Simplicity - maximising work not done is essential.
  11. Best architectures, requirements, and designs emerge from self-organising teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes its behaviour.
Link to original

Lean Development & Values

Lean Development & Values

Inspired by the Toyota Production System, a lean manufacturing methodology aims to:

  • eliminate waste
  • design out overburden
  • design out inconsistency

In comparison to lean, push manufacturing requires significant amounts of inventory:

While pull manufacturing is less reliant on inventory:

Link to original

Lean Principles

Lean Principles

  1. Eliminate waste
  2. Build integrity / quality in
  3. Amplify learning / create knowledge
  4. Decide as late as possible
  5. Deliver as fast as possible
  6. Empower the team / respect people
  7. Optimise the whole: when seeking improvements, try to benefit as many people as possible (avoid technical debt)
Link to original

User Story

User Story

Brief informal description of a software feature.

As a customer, I want to see a list of all my accounts and the balance in each after logging in, so I can asses my financial situation at a glance.

Example Templates:

  • As given persona, I want to do something, so that business value.
  • As given persona, I want to do something.
  • As a who, when & where, [..].
  • In order to receive value, as who I want to do something.
Link to original

INVEST

Good user stories are based on I.N.V.E.S.T.:

  • Independent
  • Negotiable
  • Valuable / Vertical
  • Estimable
  • Small
  • Testable
Link to original

Agile Planning

Agile Planning

We start by creating a (sometimes prioritised) list of tasks that need to be started, this is called the backlog.

All tasks have some X story points, which measure how much effort it takes to complete it. We do not make estimates of actual time but relative time taken.

Link to original

Planning Poker

Planning Poker

All team members have a deck of cards like

The team discusses the task and each member of the team puts down a card (face-down) for each task, they then discuss their choices. Rounds of discussion are repeated until a consensus arises.

Link to original

Velocity Tracking

Velocity Tracking

A project’s velocity is the no. of story points completed over unit time. Hence, if we want steady work, ideally the velocity stays constant.

If the velocity starts falling, it may be an indicator that technical debt is showing up slowing down the team.

Link to original

Kanban Board

Kanban Board

An agile tool commonly used to visualise and monitor project status / progress is Kanban. Tasks are split up into different columns.

  1. Kanban boards visualise project status.
  2. Team should limit work in progress.
  3. Supports flow management.
  4. Policies need to be discussed.
  5. Team should listen to feedback on how well the process and board works.
  6. Team should aim to improve collaboratively and evolve experimentally.
Link to original

Scrum Methodologies

Scopeboxing

Scopeboxing: fix scope, adjust time

Link to original

Timeboxing

Timeboxing: fix time, adjust scope

Link to original

Retrospective

A retrospective is a team meeting where you reflect on a piece of work. What went well, what could be committed to, etc.

Link to original

Daily Scrum

A daily scrum is usually a ~15 minute meeting time-boxed in the morning for discussing work for next 24 hours.

Link to original