agile methods in a product development setting © 2002 reginald braithwaite- lee lee.com lee.com

26
Agile Methods in a Agile Methods in a Product Development Product Development Setting Setting © 2002 Reginald © 2002 Reginald Braithwaite-Lee Braithwaite-Lee http://www.braithwaite http://www.braithwaite -lee.com -lee.com

Upload: harold-green

Post on 17-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Agile Methods in a Product Agile Methods in a Product Development SettingDevelopment Setting

© 2002 Reginald Braithwaite-© 2002 Reginald Braithwaite-LeeLee

http://www.braithwaite-lee.comhttp://www.braithwaite-lee.com

Page 2: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

NOTICE

This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Page 3: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Most people find the Most people find the concept of programming concept of programming obvious, but the doing obvious, but the doing

impossible. impossible.

Alan PerlisAlan Perlis

Page 4: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Successful ProductsSuccessful Products

Working SoftwareWorking Software

Value for Company and CustomersValue for Company and Customers

Page 5: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Dealing with failure is easy: Work Dealing with failure is easy: Work hard to improve. Success is also hard to improve. Success is also easy to handle: You've solved the easy to handle: You've solved the

wrong problem. Work hard to wrong problem. Work hard to improve. improve.

Alan PerlisAlan Perlis

Page 6: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Agile DevelopmentAgile Development

High Risk ProjectsHigh Risk Projects

Extended TeamsExtended Teams

TestabilityTestability

Page 7: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

It is easier to change the It is easier to change the specification to fit the specification to fit the

program than vice versa. program than vice versa.

Alan PerlisAlan Perlis

Page 8: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Product DevelopmentProduct Development

CompetitiveCompetitive

Very High Risk/Low InformationVery High Risk/Low Information

A Product is complete if it “achieves its A Product is complete if it “achieves its business objective(s) on or before the business objective(s) on or before the desired date”desired date”

Page 9: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

In computing, turning the In computing, turning the obvious into the useful is obvious into the useful is a living definition of the a living definition of the

word “frustration”. word “frustration”.

Alan PerlisAlan Perlis

Page 10: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Key Agile Ideas for Product Key Agile Ideas for Product DevelopmentDevelopment

Product-Centric DeliverablesProduct-Centric Deliverables

Very Short IterationsVery Short Iterations

Eat Your Own DogfoodEat Your Own Dogfood

Page 11: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Is it possible that software is Is it possible that software is not like anything else, that it is not like anything else, that it is

meant to be discarded: that meant to be discarded: that the whole point is to see it as the whole point is to see it as

a soap bubble? a soap bubble?

Alan PerlisAlan Perlis

Page 12: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Product-Centric DeliverablesProduct-Centric Deliverables

Tracks ‘Done-ness’ in terms of Company Tracks ‘Done-ness’ in terms of Company ValueValue

The Deliverable The Deliverable DefinitionDefinition

The The Acceptance TestAcceptance Test

Page 13: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Programmers are not to Programmers are not to be measured by their be measured by their

ingenuity and their logic ingenuity and their logic but by the completeness but by the completeness of their case analysis. of their case analysis.

Alan PerlisAlan Perlis

Page 14: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Predictive Deadlock DetectionPredictive Deadlock Detection

If the running software acquires two locks If the running software acquires two locks (“x”, ”y”) two or more times such that at (“x”, ”y”) two or more times such that at least once it holds x when it attempts to least once it holds x when it attempts to acquire y and at least once it hold y when acquire y and at least once it hold y when it attempts to acquire x, a potential it attempts to acquire x, a potential deadlock shall be signaled.deadlock shall be signaled.

Page 15: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Predictive Deadlock Detection is Predictive Deadlock Detection is acceptable when:acceptable when:

““Nels” can run sample programs with lock Nels” can run sample programs with lock order anomaliesorder anomalies

He is informed of the problemHe is informed of the problem The exact lines of code where the second The exact lines of code where the second

lock is acquired are shownlock is acquired are shown

Page 16: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Very Short IterationsVery Short Iterations

Manages RiskManages Risk

Maximizes Response to InformationMaximizes Response to Information

Regular ‘Done-ness’ MetricRegular ‘Done-ness’ Metric

Iteration Iteration ThemesThemes

Page 17: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Around computers it is difficult to find Around computers it is difficult to find the correct unit of time to measure the correct unit of time to measure progress. Some cathedrals took a progress. Some cathedrals took a

century to complete. Can you century to complete. Can you imagine the grandeur and scope of a imagine the grandeur and scope of a

program that would take as long?program that would take as long?

Alan PerlisAlan Perlis

Page 18: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

““Would you like Fries with that Would you like Fries with that Shake?”Shake?”

In this iteration we will display end to end In this iteration we will display end to end Cross-Sell and Up-Sell, showing how Cross-Sell and Up-Sell, showing how ‘Adele’ sets up cross-selling and up-‘Adele’ sets up cross-selling and up-selling, how ‘Michael’ learns about selling, how ‘Michael’ learns about products when browsing, and how products when browsing, and how ‘Suzette’ gathers statistics about Michael’s ‘Suzette’ gathers statistics about Michael’s interests after the fact.interests after the fact.

Page 19: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Eat Your Own DogfoodEat Your Own Dogfood

Define the Absurdly Minimal ProductDefine the Absurdly Minimal Product

Stub Out The ArchitectureStub Out The Architecture

Define the Define the Dogfood MilestoneDogfood Milestone

Page 20: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

The computer is the The computer is the ultimate polluter: its ultimate polluter: its

feces are feces are indistinguishable from indistinguishable from the food it produces. the food it produces.

Alan PerlisAlan Perlis

Page 21: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

The Absurdly Minimal ProductThe Absurdly Minimal Product

Runs on the command lineRuns on the command line Signals in text to StdoutSignals in text to Stdout Runs at least two stub analyzersRuns at least two stub analyzers At least one analyzer reports running At least one analyzer reports running

condition of subject codecondition of subject code

Page 22: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Miscellaneous Miscellaneous RecommendationsRecommendations

Customer Representation by Proxy: Customer Representation by Proxy: Product or Program ManagementProduct or Program ManagementA Defect is “Failure to Pass an A Defect is “Failure to Pass an Acceptance Test”; a Bug is “Anything You Acceptance Test”; a Bug is “Anything You Can Put In The Read Me File”Can Put In The Read Me File”Only Make Promises You Can Keep in the Only Make Promises You Can Keep in the Next Two IterationsNext Two IterationsUse Unit Tests to Prevent Regression and Use Unit Tests to Prevent Regression and Facilitate RefactoringFacilitate Refactoring

Page 23: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Documentation is like Documentation is like term insurance: It term insurance: It

satisfies because almost satisfies because almost no one who subscribes no one who subscribes

to it depends on its to it depends on its benefits. benefits.

Alan PerlisAlan Perlis

Page 24: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

One More Time!One More Time!

Product-Centric DeliverablesProduct-Centric Deliverables– Tracks ‘Done-ness’ in terms of Company ValueTracks ‘Done-ness’ in terms of Company Value– The Deliverable The Deliverable DefinitionDefinition– The The Acceptance TestAcceptance Test

Very Short IterationsVery Short Iterations– Manages Risk/Maximizes Response to InformationManages Risk/Maximizes Response to Information– Regular ‘Done-ness’ MetricRegular ‘Done-ness’ Metric– Iteration Iteration ThemesThemes

Eat Your Own DogfoodEat Your Own Dogfood– Define the Absurdly Minimal ProductDefine the Absurdly Minimal Product– Stub Out The ArchitectureStub Out The Architecture– Define the Define the Dogfood MilestoneDogfood Milestone

Page 25: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

If a listener nods his If a listener nods his head when you’re head when you’re

explaining your program, explaining your program, wake him up. wake him up.

Alan PerlisAlan Perlis

Page 26: Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee  lee.com  lee.com

Thank you!Thank you!