Agile View of Process Flashcards
1
Q
Main ideas of agile development
A
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
2
Q
Principles 1-6
A
- The highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements even late in development
- Deliver working software frequently, from a couple of weeks to a couple of months.
- 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 the job done
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
3
Q
Principles 7-12
A
- Working software is primary measure of progress
- Agile processes promote sustainable development. The sponsors, developers, and users 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
4
Q
Three issues that agile methods address.
A
- It is difficult to predict which requirements and user priorities will persist and which will change.
- It is difficult to predict how much design is necessary before construction can begin.
- Analysis, design, construction and testing are not as predictable as we might think (from planning point of view).
5
Q
How an agile process manages unpredictability?
A
It adapts to changes incrementally. For this it requires a quick user feedback. To get a feedback a working version (or prototype) must be delivered frequently.
6
Q
Qualities of an agile team.
A
- Competence.
- Common focus.
- Collaboration.
- Decision-making ability.
- Fuzzy problem-solving ability.
- Mutual trust and respect.
- Self-organisation.
7
Q
Key XP activities.
A
- Planning.
- Design.
- Coding.
- Testing.
8
Q
XP planning.
A
- Users writes stories on index cards and assign them ‘value’ (priority).
- Developers assess the stories and estimate their ‘cost’ (in terms of development weeks). If it takes > 3 weeks the story is split.
- Users and team agree on the stories to be included in the increment, delivery dates, ie ‘commitment’.
- If it’s second release the ‘project velocity’ is computed (number of stories per release). This helps estimate delivery dates and scale the next commitment.
Stories can be added or updated at any time and plans change accordingly.
9
Q
Order of story implementation in XP.
A
In three ways:
- All implemented at the same time.
- Ones with higher value implemented first.
- The most risky are implemented first.
10
Q
XP design principles.
A
- KIS(S), No extra functionality (keep to the story).
- CRC cards - the only design document.
- Difficult design - spike solution - prototype.
- Refactoring.
- Design continues both before and after coding started.
11
Q
XP coding.
A
- Starts with writing unit tests.
- Pair programming.
- Continuous integration.
12
Q
Why pair programming?
A
- Keeps focus.
- Problem solving.
- Quality assurance.
13
Q
XP testing.
A
- Created before coding.
- Automatically run after each code change.
- At the end - acceptance tests, written by the user based on the stories.
14
Q
Adaptive Software development.
A
- For building complex software and systems.
- Human collaboration and team self-organisation.
- Three phases: speculation, collaboration, learning.