Presentation Transcript
Get the New Agile Attitude:Quality First!: Get the New Agile Attitude: Quality First! Object Mentor, Inc. Copyright  1998-2004 by Object Mentor, Inc
All Rights Reserved www.objectmentor.com www.junit.org www.xprogramming.com fitnesse.org Robert C. Martin (Uncle Bob)
unclebob@objectmentor.com
The Traditional schedule for Quality.: The Traditional schedule for Quality. Waiting at the sphincter muscle. Analysis Design Implementation 1 May 1 Nov 1 Jul 1 Sep Test
When Quality comes at the end.: When Quality comes at the end. It is under the most pressure.
It has the least flexibility.
It is a high stress tedious job.
It is error prone.
Quality cannot be tested in.
Quality is a specification role…: Quality is a specification role… …not a verification role!
The Management Paradox: What is the first thing
known about a project? The Management Paradox
Slide6: ! ! ! !
The Delivery Date is Frozen: The Delivery Date is Frozen
The Spec is Never Frozen: The Spec is Never Frozen
The Waterfall Model: Analysis Design Implementation 1 May 1 Nov 1 Jul 1 Sep The Waterfall Model Managing the Development of Large Software Systems
Dr. Winston W. Royce — 1970
What Royce really meant: Analysis Design Implementation What Royce really meant No dates, full feedback.
Concurrent development.
Royce’s actual diagram.: Royce’s actual diagram.
Royce’s Observation: Royce’s Observation
Royce’s Conclusion: Royce’s Conclusion
The Boss’ Big Meeting.: Analysis Design Implementation 1 May 1 Nov 1 Jul 1 Sep The Boss’ Big Meeting. We have a new project…
Requirements and Failure: Requirements and Failure Jarzombek Study.
Failure attributed to use of waterfall. And let’s not forget the $170,000,000 spent on the FBI system.
Over specification.: Over specification.
Management requires Data: Management requires Data Waterfall fails because it does not produce any data.
Without data we cannot manage the tradeoffs.
The inevitable trade-off.: The inevitable trade-off. Good (Quality)
Fast (Time to Market)
Cheap (Cost Effectiveness)
Done
Pick any three…
Finding the optimum solution.: Finding the optimum solution. We need to manage the project to the best possible outcome.
An outcome that maximizes all four qualities.
To do this, we need:
Data.
Wouldn’t this be great?: Wouldn’t this be great?
…and this…: …and this…
If we had these two charts on the wall…: If we had these two charts on the wall… Then managers could just look at them to see
The status of the project.
Iterative Development.: Iterative Development. UI Comms Control Some UI,
Comms, and
Control for
some behavior Data is generated and used to calibrate the plan
Calculate the Date.: Calculate the Date. The Calculated Date . . . . . . . . [ ]
More data shrinks the error bars.: More data shrinks the error bars. The Calculated Date . . . . . . . . [ ]
Without data, all you can manage is:: Without data, all you can manage is: ! ! !
Without data managers can:: Without data managers can: This project will be done on time!
Or HEADS will ROLL!
OR….: OR…. You guys are great.
I have faith in you.
I know you can do it! I sure hope
you can
But when we have data…: But when we have data… Managers can….
manage.
The control knobs of project mgt.: The control knobs of project mgt. Schedule Quality Staff Scope
How do you know a slice is done?: How do you know a slice is done?
Test in an Agile Department: Test in an Agile Department Test
Tests specify each iteration.: Tests specify each iteration.
Tests specify each iteration.: Tests specify each iteration.
A feature is not specified…: A feature is not specified… Until it’s acceptance test is written.
A feature is not done…: A feature is not done… Until all it’s acceptance tests pass.
Acceptance Tests Are…: Acceptance Tests Are… Automated.
written in a very high level language.
executed frequently.
written by the stakeholders.
A Simple Example: A Simple Example
The result.: The result.
Did I mention that they are automated?: Did I mention that they are automated?
Manual Acceptance Tests.: Manual Acceptance Tests.
Manual Acceptance Tests.: Manual Acceptance Tests.
There aren’t any.
Review Question.: Review Question.
Review Question.: Review Question.
Are there any manual acceptance tests?
The Quality First Attitude:: The Quality First Attitude: Everything can be automatically tested.
When is the best time to write them?: When is the best time to write them? Astute test managers
Talk to the stakeholders days before each iteration.
Write initial acceptance tests for the features they plan to schedule.
Elaborate those acceptance tests once scheduled.
When is the best time to run them?: When is the best time to run them? Continuously.
At every check-in.
No change is allowed to break any passing tests.
Continuous Integration.
Who runs them?: Who runs them? Developers.
Testers.
Managers.
Stakeholders.
…They are run automatically.
…Results are displayed on the wall.
This keeps the data accurate…: This keeps the data accurate… …and actionable.
So…: So… An agile quality department must:
Become the specification department.
Write automated specifications.
Collaborate with developers every week.
Continuously run all acceptance tests.
Get tool support.
And put quality FIRST.: And put quality FIRST. At the front of the process.
Sample Acceptance Tests. : Sample Acceptance Tests. CW-CRM.
FitNesse
Acceptance Testing Tools +: Acceptance Testing Tools + FIT
http://fit.c2.com
FitNesse
http://fitnesse.org
Robert C. Martin (Uncle Bob)
unclebob@objectmentor.com