Level 171 Level 173
Level 172

Extreme Programming

45 words 0 ignored

Ready to learn       Ready to review

Ignore words

Check the boxes below to ignore/unignore words, then click save at the bottom. Ignored words will never appear in any learning session.

All None

Automated test
A __________ case that runs without any human intervention. The __________ checks to make sure the system calculates the expected values.
A role on the team for someone who watches the process as a whole and calls the team's attention to impending problems or opportunities for improvement.
Commitment schedule
A release and a date. The __________ is refined one iteration at a time, and modified through reestimation and recovery.
A role on the team for choosing what stories the system has to satisfy, what stories are needed first and what can be deferred, and for defining tests to verify the correct functioning of the stories.
Engineering task
One thing the programmer knows the system must do. __________s must be estimable at between one to three ideal programming days. Most __________s will derive directly from stories.
The tendency of a system to get buggier over time, and for changes to become much more expensive.
The phase of development when the customer communicates generally what all the system could do.
Functional test
A test written from the perspective of the customer.
Ideal programming time
The measure of an estimation tactic where you ask yourself, "How long would this take without distractions and disasters?"
A one- to four-week period. At the beginning, the customer chooses the stories to be implemented in the __________. At the end the customer can run their functional tests to see if the __________ succeeded.
Iteration plan
A pile of stories and a pile of tasks. Programmers sign up for tasks and estimate them.
Load factor
The measured ratio between ideal programming time and the calendar. Typically between 2 and 4.
A role on the team for allocating resources.
Pair programming
A __________ technique where two people program with one keyboard, one mouse, and one monitor. In XP the __________ typically change a couple of times a day.
The other person who is pair programming with you.
Planning game
The XP __________ process. Business gets to specify what the system needs to do. Development specifies how much each feature costs and what budget is available per day/week/month.
The phase of development when the customer is actually making money with the system.
A person who writes computer programs by following a design document.
A planning move where the customer preserves the completion date of a release by reducing the scope of the release in response to increased estimates or decreased team speed.
A planning move where the team __________ all the stories remaining in the release.
A change to the system that leaves its behavior unchanged, but enhances some nonfunctional quality—simplicity, flexibility, understandability, performance.
A pile of stories that together make business sense.
a case with rich information and episodes; lessons may be derived form this kind of case in a case base
System metaphor
A story that everyone—customers, programmers, and managers—can tell about how the system works.
Team speed
The number of ideal programming weeks the team can produce in a given amount of time.
Test case
An automated set of stimuli and responses for the system. Each __________ should leave the system the way it found it, so __________s can run independently of each other.
A role on the team for measuring progress with numbers.
Unit test
A test written from the perspective of the programmer.
What is XP?
a discipline of software development based on values of simplicity, communication, feedback, and courage
History of XP
Published by Kent Beck in 99, created earlier, motivated by the need to embrace change
Why Simplicity?
Do what is needed, nothing more.
Why Communication?
Discuss features and work together in 'war room' style office
Why Feedback?
Get immediate information from the on site client, take discussion to adapt process to fix project
Why Courage?
Be open about progress to client, be willing to make changes from origional intentions
Why Respect?
Balance amongst the team
XP Practices
Planning Game, Test Driven Development, Pair Programming, Merciless Refactoring, Simple Design, Collective Code Ownership, Continuous Integration, On Site Customer
Lesser XP Practices
Small Releases, Sustainable Development, Apply Coding Standards, System Metaphors (adds to the other 8), as well as stand up meetings and retrospectives
Explain Planning Games
A meeting that occurs once per iteration, where the team are given story cards and must score them on their importance
Explain Test Driven Development
Writing the test before the code, so you know what the code has to do to pass the test. Automate whenever possible
Explain Pair Programing
Two programmers work as a pair together on one workstation. One, the driver, writes code while the other, the navigator, reviews each line of code as it is typed in. Encourages discussion, quality control and helps with training.
Explain the concept of Simple Design
Make design incremental and light weight as will solve the problem. "YAGNI"=You aren't going to need it, so if they didn't pay for it don't just add it!
Explain the concept of Merciless Refactoring
If two bits of code look the same, refactor it. You are changing the code without changing functionality, which can help to reduce bugs (less code to break)
Explain Collective Code Ownership
Everyone ones the code, not just developers. If you break the code, it's your responsiblity to fix it, and if you make a major change you tell everyone first
Explain Continuous Integration
Code should be integrated using the integration platform several times a day; small and fast
Explain the On Site Customer
The customer shouldn't be an outside contact, they should be working in and around the team for direct communication