Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Agile Methods in a Product Development Setting

Agile Methods in a Product Development Setting

Reg Braithwaite

January 14, 2002
Tweet

More Decks by Reg Braithwaite

Other Decks in Programming

Transcript

  1. 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
  2. It is easier to change the specification to fit the

    program than vice versa. Alan Perlis
  3. 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”
  4. In computing, turning the obvious into the useful is a

    living definition of the word “frustration”. Alan Perlis
  5. 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
  6. Programmers are not to be measured by their ingenuity and

    their logic but by the completeness of their case analysis. Alan Perlis
  7. 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.
  8. 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
  9. 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
  10. “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.
  11. Eat Your Own Dogfood Define the Absurdly Minimal Product Stub

    Out The Architecture Define the Dogfood Milestone
  12. 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
  13. 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
  14. Documentation is like term insurance: It satisfies because almost no

    one who subscribes to it depends on its benefits. Alan Perlis
  15. 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