Agile & Scrum Flashcards
1
Q
motivations and general info
Agile overview
A
- motivation: waterfall problems
- goes one way
- extreme programming
- tries to avoid problems from waterfall model for small projects
- more effective to change strategy in small teams
- idea is to spend more time developing project than documenting what to do
- have a customer representative to communicate with customer
2
Q
Agile risks
A
- relies heavily on accurate assessment of requirements from the very start
- customers only see product at end of life-cycle, little or no interaction or feedback earlier on
- problems found later on are much harder to correct
3
Q
Agile manifesto
A
- individuals and interactions over processes and tool
- working software over comprehensive documents
- customer collaboration over contract negotiation
- responding to change over following a plan
4
Q
Heavy weight disciplined Model
A
- their focuses are detailed documentation, inclusive planning, and extroverted design.
- starting point -> planned result
5
Q
Adaptive, lightweight Agile processes
A
- since project is small, team who built is able to estimate how long it will take to build
- work in collaboration
6
Q
agile development
A
- be able to predict what end result will be
- know what to build so team has a collection of features
7
Q
Extreme programming (XP)
A
- based on ideas and methods from late 1980s
- published in 1999 by Kent Beck
- doesn’t adhere to any particular language but generally more suited to OOP
- no BDUF - big design up front
- design is emergent
- basic principle - keep it simple
- extra functionality is discouraged
- if story takes longer than 3 weeks to develop, customer is asked to split story into smaller stories and cost and value are assigned again
- don’t want to spend too much time on each story
- make us of iterative models to estimate time taken on each story
8
Q
XP in a nutshell
A
- break down program into stories
- customer can look at cards tell you if anything is important/unimportant
- feedback is not for long-run, rather for what to do next
- assign priorities or value to card and developers assign a cost
- write tasks before code
- until you have implemented code, you won’t know what interface you have
- tasks before code is difficult for large
- tests are supposed to be testing everything
- work instead of documentation
- devs write code to test the features
9
Q
Pair programming
A
- most developers are expected to work on their own
- two people working, one person has role of navigation other of driver
- driver implements, focusing on the tactical
- navigator is more objective (strategic), asks why and provides explanation
- one person looks at the details, one person looks at the big picture
- both programmers in pair are familiar with code by either directly writing or watching the code generation
- knowledge transfer amongst pair is advantageous
- code review - another person on team reviews code
10
Q
Refactoring
A
- any change to a computer program’s code which improves its readability or simplifies its structure without changing its results
- changing structure - not behaviour
- can accelerate adding features
- polish existing code to make better
- improve or change design, architecture, efficiency, quality, not functionality
11
Q
Continuous integration
A
- when devs go to release new code, they run all the unit tests not just theirs on the integration machine
- tests must run at 100%
- when a test fails the problem must have been caused by the last change
- reason: developers know the tests are ran at 100% the last time anything was released
- devs dont work in isolation
- careful not to break others’ code
12
Q
XP testing
A
- implementation of unit tests should be such that they can be automated
- as soon as code is modified it can be tested
- integration and validation of the system can occur on a daily basis using inversal test suite
- a continual indication of progress
- acceptance tests are specified by customers to test features and functionality
13
Q
Acceptance Tests
A
- test cases “extracted from” customer
- test system end-to-end
- tells customer and devs if system has the features its supposed to have
- don’t have to run at 100%
- progress used to measure project velocity - what % of the customer’s acceptance test cases run? - way to gauge progress
14
Q
XP 12 practices
A
- the planning game
- small releases
- metaphor
- simple design
- testing
- refactoring
- pair programming
- collective ownership
- continuous integration
- 40 hour week
- on-site customer
- coding standards
15
Q
The planning game
A
- use stories to facilitate knowledge transfer
- put decisions in the hands of the person
- business decisions -> customer
- software decisions -> developer
- plan only as far as your knowledge allows - next iteration or next release