Agile Flashcards
12 principles of Agile:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale
- Business people and developers must work together daily throughout the project
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done
- The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation - Working software is the primary measure of progress
- Agile processes promote sustainable development. Team members should be able to maintain a constant pace indefinitely
- Continuous attention to technical excellence and good design enhances agility
- Simplicity–the art of maximizing the amount of work not done–is essential
- The best architectures, requirements, and designs emerge from self-organizing teams
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly
benefits of Agile:
- improved quality
- increased team motivation
- better business
- greater frequency of release
etc.
Agile team:
Agile teams are self-organizing. Everyone in the team:
- is responsible for the outcome
- Evolves the solution collaboratively
- Participates in most or all decisions
- Contributes to stories, testing, planning, sweeping floors, …
Incremental development
?
Value driven
- Focus on minimum viable
product (MVP) - Learn from customer feedback
- Adapt plan
- Iterate & increment
- Progressive elaboration
Plan driven
- Focus on project completion
- No value increments of product
- Big bang value at the end
- No feedback cycles
Continuous delivery
the ability to get changes of all types into production, or into the hands of users, safely and quickly in a sustainable way
Continuous delivery, goal and achievement method:
- goal: to make deployments predictable, routine affairs that can be performed on demand
- Achieve this by: ensuring our code is always in a deployable state
Advantages/benefits of continuous delivery:
- Low risk releases
- Faster time to market
- Higher quality
- Lower cost
- Better products
- Happier teams
Customer (Agile)
Agile advocates customer and developers work together, daily.
- customer provides direction for product
- Customer heavily involved:
- Making known requirements
- Quantifying when requirements are met
Customer (Scrum)
Product Owner that is customer/represents customer
customer (XP)
customer as member of the team
Planning, traditional:
- massive upfront planning
- little to no re-plan
- plan driven
- non-adaptive planning
planning, agile:
- Small upfront planning
- Continuous planning
- Value driven
- Adaptive planning
User stories =
agile requirements. Defining a user story:
- Reminders
- Cards to have conversation
- JIT analysis
User story, exercise:
As “who” I want
“what” so that
“why”
INVEST in great user stories:
- Independent
- Negotiable
- Valuable
- Estimable
- Scalable (small sized)
- Testable
acceptance criteria:
written in Given-When-Then format:
- Given “a precondition”
- When “I preform XYZ function”
- Then “I expect ABC result”
Timeboxing =
end date of iteration is “fixed”.
Unfinished stories move to next iteration.