Achieving an agile mindset

Original by Reinie, 2020 

This summary note was Posted on

Agility is a mindset

  • Pursue an overarching agile mindset
  • Enables a more sustainable approach
  • Allows to blend methodologies to create the right approach
    • planning your project adaptively
    • focusing on value
    • enabling effective collaboration
    • creating short feedback cycles
  • Agility (circular) is different from a waterfall process (linear)
  • Expectation of collaboration can be demanding
  • Can be challenging for distributed teams
  • Agile more likely to empower the team in the planning and in its change
  • Risk increase the longer you wait to validate what your team has produced
  • Value is only realised at the end of the chain
  • Early delivery approach, feature by feature

Agile manifesto

  • 2001: Agile manifesto for software development with 4 values and 12 principles
  • Built on earlier agile methodologies, based on first hand experience
    • Scrum 1993: uses 1-2 weeks sprints and incremental iteration approach. Formalises application of feedback from previous sprints
    • XP 1996 (eXtreme Programming): focuses on the technical side of product delivery. Specifies 12 specific practices teams must follow.
    • FDD: 1997 (Feature Driven Development): No more that 2 weeks to produce a feature. More formalised approach to engineering. Designed with scale in mind

4 Agile Values

  1. Individuals and interactions are above processes and tools
    • Team of talented individuals
    • Process only here to support a talented team
  2. Working software above comprehensive documentation
    • include fast feedback cycles
    • put software in hand of customer fast
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan

12 Agile Principles

  1. Highest priority is to satisfy the customer
    • put software in customer hand as soon as possible
    • recommend early and frequent update
  2. Welcome changing requirements
    • change is inevitable
    • adaptive planning is key
  3. Deliver working software frequently
    • shorter time scales are preferred
    • get feedback to validate you are on the right track
  4. Business people and developers must work together
  5. Build project around motivated and talented individuals
    • need time to learn to work together
    • keep team intact for as long as possible
    • new projects are usually matched to existing teams to minimise learning learning curve of working together
  6. Most effective mean of communication is FACE to FACE! (but not the only one)
  7. working software is the primary measure of progress (other metrics are not reliable)
  8. Use a sustainable pace
    • reduce burnout or turnover otherwise quality decrease on the long term
    • allow however for a surge in effort (rare) but should be able to go back to sustainable pace to recharge
  9. Continuous attention to technical and design excellence
  10. Simplicity
    • adding unneeded functionalities is rarely a one time cost and often a hidden commitment to ongoing support
  11. Empowering your team
    • self organising teams is key
    • let people close to the work make the decisions
  12. Reflect on how to become more effective at regular intervals
    • not limited to projects but also to teams
    • focus on self improvement continuously (Kaizen)