agile process - university of albertagames/299/lecture7.pdfcmput 299 - fall 2005 project management...

22
1 Agile Process Agile Process CMPUT 299 H. James Hoover Fall 2005 2005-09-27 Version 1.0 CMPUT 299 H. James Hoover Fall 2005 2005-09-27 Version 1.0

Upload: others

Post on 10-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

1

Agile ProcessAgile Process

CMPUT 299

H. James Hoover

Fall 2005 2005-09-27

Version 1.0

CMPUT 299

H. James Hoover

Fall 2005 2005-09-27

Version 1.0

Page 2: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

2

Philosophical Aside -Software Arts

Philosophical Aside -Software Arts

♣ Computing Science has more in common withmaking a movie, producing a play, writing anovel, and managing a company than it does withbuilding bridges, making airplanes, and runningrailways.

♣ We should stop worrying about how to bring moreengineering to CS and ask instead what can CScontribute and learn from the creative activitiestypical of the arts.

♣ Computing Science has more in common withmaking a movie, producing a play, writing anovel, and managing a company than it does withbuilding bridges, making airplanes, and runningrailways.

♣ We should stop worrying about how to bring moreengineering to CS and ask instead what can CScontribute and learn from the creative activitiestypical of the arts.

Page 3: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

3

Activities vs ArtifactsActivities vs Artifacts

♣ CS deals with the vague, rapidly changing,uncertain goals that characterize human activities,not the more stable properties typical of humanartifacts.

♣ CS deals with the vague, rapidly changing,uncertain goals that characterize human activities,not the more stable properties typical of humanartifacts.

Page 4: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

4

Architecture Business CycleLen Bass

Architecture Business CycleLen Bass

OrganizationalGoals

RequirementsSystems

Architecture

Page 5: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

5

ABCABC

♣ Organizational goals influence requirements.

♣ Requirements lead to architecture.

♣ Architectures yield systems.

♣ Systems suggest evolution of organizationalcapabilities and requirements.

♣ Organizational goals influence requirements.

♣ Requirements lead to architecture.

♣ Architectures yield systems.

♣ Systems suggest evolution of organizationalcapabilities and requirements.

Page 6: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

6

What is Architecture(Webster Online)

What is Architecture(Webster Online)

♣ The manner in which the components of a computeror computer system are organized and integrated.

♣ A unifying or coherent form or structure. <the novellacks architecture>

♣ The manner in which the components of a computeror computer system are organized and integrated.

♣ A unifying or coherent form or structure. <the novellacks architecture>

CS architecture principles apply to any domain

Page 7: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

7

Iterative ProcessIterative Process

♣ Applications must evolve

♣ At the same time maintaining architectural integrity.

♣ The architecture must take into account both current needsand future change.

♣ Good reference architectures can accommodate typicalkinds of evolution since these changes follow well knownpaths.

♣ The challenge: handle new opportunities without causingtoo much brittleness in the architecture.

♣ Applications must evolve

♣ At the same time maintaining architectural integrity.

♣ The architecture must take into account both current needsand future change.

♣ Good reference architectures can accommodate typicalkinds of evolution since these changes follow well knownpaths.

♣ The challenge: handle new opportunities without causingtoo much brittleness in the architecture.

Page 8: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

8

Iterative Process …Iterative Process …

♣ An iterative and incremental approach has the followingadvantages:

♣ The application exists early and works early.

♣ It allows early concentration on uncertain or troublesomeaspects.

♣ It lowers integration time and cost, and moves integrationcosts to front of development cycle where costs can't beignored.

♣ An iterative and incremental approach has the followingadvantages:

♣ The application exists early and works early.

♣ It allows early concentration on uncertain or troublesomeaspects.

♣ It lowers integration time and cost, and moves integrationcosts to front of development cycle where costs can't beignored.

Page 9: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

9

Iterative Process …Iterative Process …

♣ Since the system always exists, testing and review canbegin early, and performance and workflow issues surfaceearly when cheaper to fix.

♣ Complex dependencies and interactions between modulesare found earlier, and interface evolution to accommodatethis occurs early.

♣ Since the system always exists, testing and review canbegin early, and performance and workflow issues surfaceearly when cheaper to fix.

♣ Complex dependencies and interactions between modulesare found earlier, and interface evolution to accommodatethis occurs early.

Page 10: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

10

Build a Little

Use/Test a Little

ABC implies that system building is iterativeRequirements gathering

Page 11: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

11

Agile DevelopmentAgile Development

♣Tests capture requirements.

♣Build to the tests.

♣Tests capture requirements.

♣Build to the tests.

Write a testWrite some

codePassTest?

No

Yes

Page 12: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

12

This only works if you canperform tests!

This only works if you canperform tests!

Page 13: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

13

Tests? What tests?Tests? What tests?

♣Some kinds of programs easily tested:given this input, what output do we expect

♣GUI-based programs harder, need somekind of test script, and hand play.

♣Ideas are tested by reviews and prototypes.

♣Some kinds of programs easily tested:given this input, what output do we expect

♣GUI-based programs harder, need somekind of test script, and hand play.

♣Ideas are tested by reviews and prototypes.

Page 14: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

14

Scripted TestsScripted Tests

♣Tester follows a script of steps of the form:do this, expect this and checks the resultsagainst the expected outputs (within error)

♣At branch points checkpoint the world soyou do not have to go back and replay

♣Keep the scripts around as regression andacceptance tests

♣Tester follows a script of steps of the form:do this, expect this and checks the resultsagainst the expected outputs (within error)

♣At branch points checkpoint the world soyou do not have to go back and replay

♣Keep the scripts around as regression andacceptance tests

Page 15: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

15

Kinds of TestsKinds of Tests

♣Regression: used to see if a change hasbroken something

♣Acceptance: used to demonstrate that thesystem does roughly what was intended

♣Regression: used to see if a change hasbroken something

♣Acceptance: used to demonstrate that thesystem does roughly what was intended

Page 16: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

16

Kinds of TestsKinds of Tests

♣Manual: a human follows the script andchecks the results (tedious)

♣Automated: a test harness executes thescript and checks the results (repeatable)

♣Manual: a human follows the script andchecks the results (tedious)

♣Automated: a test harness executes thescript and checks the results (repeatable)

Page 17: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

17

Test DesignTest Design

♣ When can you start to test?♣ What can you test?♣ How do you make testing easier?♣ Can you design for testing?♣ How do you test in the presence of multiple

interacting modules?♣ If a test fails, how do you isolate the problem?♣ How much does a test designer need to know

about the internal workings and design decisions?

♣ When can you start to test?♣ What can you test?♣ How do you make testing easier?♣ Can you design for testing?♣ How do you test in the presence of multiple

interacting modules?♣ If a test fails, how do you isolate the problem?♣ How much does a test designer need to know

about the internal workings and design decisions?

Page 18: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

18

Feature Interaction ProblemFeature Interaction Problem

♣As systems become more complex,components that work individually may failwhen put into a cooperating group.

♣Origin in the telecom industry

♣What about computer games?

♣As systems become more complex,components that work individually may failwhen put into a cooperating group.

♣Origin in the telecom industry

♣What about computer games?

Page 19: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

19

TestorsTestors

Page 20: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

20

From http://www.sloperama.com/advice/lesson5.htmFrom http://www.sloperama.com/advice/lesson5.htm

“Verbal communication skills. The tester must be well-spoken. Words that come out of a tester's mouth mustconvey his thoughts clearly, giving information to thelistener. Imagine these two exercises, which will help thetester in developing verbal communication skills. How atester performs in these exercises also reveals the level ofhis existing verbal communication skills. Both of theseexercises are best performed in neighboring cubicles -- thetwo people taking part in the exercise can easily conversebut cannot see what the other is doing.”

Page 21: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

21

“The paperclip exercise. The tester must describe arandomly-bent paper clip to another person who has a penciland paper. The goal is for the tester to get thelistener/"customer" to draw a picture of the bent paper clip,without the tester ever saying the words "paper clip" ordescribing what the object is made of or was originally usedfor in any way whatsoever. Simply describing how the paperclip looks in its present state, the tester must obtain a correctpicture of the paper clip on the second person's piece ofpaper. It can be enlightening for the tester to see what thedrawing looks like, after completing the exercise. Thisexercise can also be performed using pipecleaners or twist-ties. The clip should be bent in a flat (2D) shape, not a 3Dshape, since the listener/"customer" is drawing on 2Dpaper.”

Page 22: Agile Process - University of Albertagames/299/Lecture7.pdfCMPUT 299 - Fall 2005 Project Management 7 Iterative Process Applications must evolve At the same time maintaining architectural

CMPUT 299 - Fall 2005Project Management

22

“The building blocks exercise. This exercise is used atNintendo of America to train or test their Customer Supportrepresentatives. Both parties to the exercise have identicalboxes of wooden building blocks. The tester builds astructure from his building blocks and describes his structureto the other participant in the exercise. If the tester does itwell, the two structures will be identical. If the two structuresare not identical, the tester can learn how he ought toimprove.”