130 likes | 264 Views
Extreme Hour. Role-Playing The XP Process. What Is Extreme Programming?. User Stories: Function, Qualities, Priority, Scope. Schedule: By negotiation. 1 week iteration. Testing: Automate unit & functional tests Unit test before code Pairing: Two heads, one keyboard
E N D
Extreme Hour Role-Playing The XP Process
What Is Extreme Programming? • User Stories: Function, Qualities, Priority, Scope. • Schedule: By negotiation. 1 week iteration. • Testing: Automate unit & functional tests Unit test before code • Pairing: Two heads, one keyboard Better quality, less bugs, faster! • Refactor: Simplest code, then simplest system • YAGNI: You Aren’t Going To Need It - minimize diagrams & documents • Communicate: Stand Up Meetings, CRC Carding, …
Why Is Extreme Programming? • Give management a steering wheel • Get feedback early & often • Minimize overtime & heroics • Keep deliverables deliverable • Eliminate neurotic process • Flatten cost-of-change curve • Maximize work flow & pride
Our company refocuses as a pest control automation product group. Our flagship will capture the high-end domestic segment of this well established market. Accept this dramatic new vision. Plan, Schedule, Develop and Quality Assure our initial release. Project timeframe: One Hour! Extreme HourVision: A Better Mousetrap
Sixty Minute Project • 10Minutes User Stories & Spike Architecture • 10Minutes estimate Priority & Scope • 10Minutes 1st Commitment Schedule • 10Minutes Iteration 1 • 10Minutes 2nd Commitment Schedule • 10Minutes Iteration 2 • Release! • Timeframes Not To Scale
Dramatis Personae • Coach keeps process flowing • Tracker records and times everything • Customers specify but don’t estimate • QA runs acceptance tests • Developers estimate and implement • Rules: • If It Ain’t Drawn, It Ain’t Delivered. • If It Ain’t Written, It Ain’t Required. • QA can’t see what developers do till iteration’s end
Customers suggest Stories. Tracker helps write ‘em up. QA quantifies relevant qualities per story. Developers spike Architecture. NB: 1 Pen for every 2 Engineers: Pairing! Learn Ideal Time 10 Minutes: User Stories, Test Fixtures, Spikes
Customers & Tracker sort Stories into 3 piles: Must Have Market Advantage Really Cool Then rank relative priorities within each pile. Developers assign Ideal Minute costs to Stories based on Spike times. Max story size 3 ideal minutes, or else split/clarify. If developer estimates disagree, optimist wins. QA reviews architecture & notes risks on stories. 10 Minutes: Estimate Priority & Scope
10 Minutes:Initial Commitment Schedule • Coach, Tracker, & Customers schedule stories for 2 Iterations. • Schedule priority & risk first. • Use “Load Factor 2” for Project Velocity • Yes, we want to see a blow-out • QA draws Acceptance Test fixtures.
QA writes down Acceptance Tests for each Story. QA can’t see what developers draw until end of Iteration. NB: In real XP, QA communicates with Developers & Customers. Developers pair. Each pair picks 1 User Story & 1 pen. First draw simplest thing that could possibly work. Then Refactor drawing to make simplest system. Customers + Tracker modify and reprioritize Iteration 2 Stories. 10 Minutes: Iteration 1
10 Minutes: 2nd Commitment Schedule • Customers reveal new Stories & Developers estimate them. • QA “run” tests, Tracker notes bugs as stories • Customers prioritize bug vs. new stories • QA & Developers modify Acceptance Test Fixtures • Coach, Tracker & Customers schedule Second Iteration • Priority & Risk First • Use Measured Project Velocity
Developers pair. Each pair picks 1 User Story & 1 pen. First draw simplest thing that could possibly work. Then Refactor drawing to make simplest system. Customers + Tracker modify and reprioritize Iteration 3 Stories. QA writes down Acceptance Tests for each Story. QA can’t see what developers draw until end of Iteration. NB: In real XP, QA communicates with Developers & Customers. 10 Minutes: Iteration 2
Release! QA “runs” tests. Can we release? Do we need an iteration 3?