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
- Individuals and interactions are above processes and tools
- Team of talented individuals
- Process only here to support a talented team
- Working software above comprehensive documentation
- include fast feedback cycles
- put software in hand of customer fast
- Customer collaboration over contract negotiation
- Responding to change over following a plan
12 Agile Principles
- Highest priority is to satisfy the customer
- put software in customer hand as soon as possible
- recommend early and frequent update
- Welcome changing requirements
- change is inevitable
- adaptive planning is key
- Deliver working software frequently
- shorter time scales are preferred
- get feedback to validate you are on the right track
- Business people and developers must work together
- 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
- Most effective mean of communication is FACE to FACE! (but not the only one)
- working software is the primary measure of progress (other metrics are not reliable)
- 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
- Continuous attention to technical and design excellence
- Simplicity
- adding unneeded functionalities is rarely a one time cost and often a hidden commitment to ongoing support
- Empowering your team
- self organising teams is key
- let people close to the work make the decisions
- Reflect on how to become more effective at regular intervals
- not limited to projects but also to teams
- focus on self improvement continuously (Kaizen)