Share
Embed
Agile Methods in a Product Development Setting
Reg Braithwaite
January 14, 2002
Transcript
25 slides
-
Agile Methods in a Product Development Setting © 2002 Reginald
Braithwaite braythwayt.com -
Most people find the concept of programming obvious, but the
doing impossible. Alan Perlis -
Dealing with failure is easy: Work hard to improve. Success
is also easy to handle: You've solved the wrong problem. Work hard to improve. Alan Perlis -
It is easier to change the specification to fit the
program than vice versa. Alan Perlis -
Product Development Competitive Very High Risk/Low Information A Product is
complete if it “achieves its business objective(s) on or before the desired date” -
In computing, turning the obvious into the useful is a
living definition of the word “frustration”. Alan Perlis -
Key Agile Ideas for Product Development Product-Centric Deliverables Very Short
Iterations Eat Your Own Dogfood -
Is it possible that software is not like anything else,
that it is meant to be discarded: that the whole point is to see it as a soap bubble? Alan Perlis -
Product-Centric Deliverables Tracks ‘Done-ness’ in terms of Company Value The
Deliverable Definition The Acceptance Test -
Programmers are not to be measured by their ingenuity and
their logic but by the completeness of their case analysis. Alan Perlis -
Predictive Deadlock Detection If the running software acquires two locks
(“x”, ”y”) two or more times such that at least once it holds x when it attempts to acquire y and at least once it hold y when it attempts to acquire x, a potential deadlock shall be signaled. -
Predictive Deadlock Detection is acceptable when: ➢“Nels” can run sample
programs with lock order anomalies ➢He is informed of the problem ➢The exact lines of code where the second lock is acquired are shown -
Very Short Iterations Manages Risk Maximizes Response to Information Regular
‘Done-ness’ Metric Iteration Themes -
Around computers it is difficult to find the correct unit
of time to measure progress. Some cathedrals took a century to complete. Can you imagine the grandeur and scope of a program that would take as long? Alan Perlis -
“Would you like Fries with that Shake?” In this iteration
we will display end to end Cross-Sell and Up-Sell, showing how ‘Adele’ sets up cross-selling and up-selling, how ‘Michael’ learns about products when browsing, and how ‘Suzette’ gathers statistics about Michael’s interests after the fact. -
Eat Your Own Dogfood Define the Absurdly Minimal Product Stub
Out The Architecture Define the Dogfood Milestone -
The computer is the ultimate polluter: its feces are indistinguishable
from the food it produces. Alan Perlis -
The Absurdly Minimal Product ➢Runs on the command line ➢Signals
in text to Stdout ➢Runs at least two stub analyzers ➢At least one analyzer reports running condition of subject code -
Miscellaneous Recommendations Customer Representation by Proxy: Product or Program Management
A Defect is “Failure to Pass an Acceptance Test”; a Bug is “Anything You Can Put In The Read Me File” Only Make Promises You Can Keep in the Next Two Iterations Use Unit Tests to Prevent Regression and Facilitate Refactoring -
Documentation is like term insurance: It satisfies because almost no
one who subscribes to it depends on its benefits. Alan Perlis -
One More Time! Product-Centric Deliverables – Tracks ‘Done-ness’ in terms
of Company Value – The Deliverable Definition – The Acceptance Test Very Short Iterations – Manages Risk/Maximizes Response to Information – Regular ‘Done-ness’ Metric – Iteration Themes Eat Your Own Dogfood – Define the Absurdly Minimal Product – Stub Out The Architecture – Define the Dogfood Milestone -
If a listener nods his head when you’re explaining your
program, wake him up. Alan Perlis