69
Agile Modeling Technische Universität München Agile Modeling Emitzá Guzmán

Technische Universität München Agile Modeling Emitzá Guzmán

Embed Size (px)

Citation preview

Page 1: Technische Universität München Agile Modeling Emitzá Guzmán

Agile Modeling

Technische Universität München

Agile ModelingEmitzá Guzmán

Page 2: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

2

Agenda

• Introduction to Agile Modeling- Definiton- Values- Principles- Practices

• Characterisitics of Agile Models

• Agile Modeling Sessions

• Applying Agile Modeling: XP

• Conclusions

Page 3: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

3

Definition

• Methodology for modeling and documenting effectively software-based systems.

• Collection of values, principles and practices that can be applied on a software project.

Page 4: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

4

Definition

• It is not a prescriptive process.

• Its focus is on modeling.

Page 5: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

5

Agenda• Introduction to Agile Modeling

- Definiton- Values- Principles- Practices

• Characterisitics of Agile Models

• Agile Modeling Sessions

• Applying Agile Modeling: XP

• Conclusions

Page 6: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

6

Communication

Page 7: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

7

Communication

Page 8: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

8

Simplicity

Model enough to fulfill the present needs and worry about the future needs when they appear.

Be realistic when modeling!

Page 9: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

9

Feedback

• Only way to determine if the work we have done is correct.

• Ways to obtain feedback:– Develop model as a team– Review the model with the target audience– Implement the model– Acceptance testing

• Obtain feedback from the beginning of the project.

Page 10: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

10

Feedback

Cost of fixing defects

Probability of introducing defects

Page 11: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

11

Courage

In order to:– Make decisions such as system architecture or development

language.– Recognize that one can make mistakes.– To trust that one can overcome future problems in the future

-> Enabling simplicity.

Page 12: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

12

Humility

In order to recognize that one that does not know everything and that one can learn from others.

Page 13: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

13

Agenda

• Introduction to Agile Modeling– Definiton– Values– Principles– Practices

• Characterisitics of Agile Models

• Agile Modeling Sessions

• Applying Agile Modeling: XP

• Conclusions

Page 14: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

14

Principles

• Software is your primary goal

Page 15: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

15

Principles

• Software is your primary goal

• Enabling the next effort is your secondary rule

Page 16: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

16

Principles

• Software is your primary goal

• Enabling the next effort is your secondary rule

• Travel light

Page 17: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

17

Principles

• Software is your primary goal

• Enabling the next effort is your secondary rule

• Travel light

• Assume simplicity

Page 18: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

18

Principles

• Software is your primary goal

• Enabling the next effort is your secondary rule

• Travel light

• Assume simplicity

• Embrace change

Page 19: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

19

Principles

• Software is your primary goal

• Enabling the next effort is your secondary rule

• Travel light

• Assume simplicity

• Embrace change

• Make incremental change

Page 20: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

20

Principles

• Software is your primary goal

• Enabling the next effort is your secondary rule

• Travel light

• Assume simplicity

• Embrace change

• Make incremental change

• Model with purpose

Page 21: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

21

Principles

• Software is your primary goal

• Enabling the next effort is your secondary rule

• Travel light

• Assume simplicity

• Embrace change

• Make incremental change

• Model with purpose

• Use multiple models

Page 22: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

22

Principles

• Software is your primary goal

• Enabling the next effort is your secondary rule

• Travel light

• Assume simplicity

• Embrace change

• Make incremental change

• Model with purpose

• Use multiple models

• Seek rapid feedback

Page 23: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

23

Principles

• Software is your primary goal

• Enabling the next effort is your secondary rule

• Travel light

• Assume simplicity

• Embrace change

• Make incremental change

• Model with purpose

• Use multiple models

• Seek rapid feedback

• Produce quality work

Page 24: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

24

Principles

• Software is your primary goal

• Enabling the next effort is your secondary rule

• Travel light

• Assume simplicity

• Embrace change

• Make incremental change

• Model with purpose

• Use multiple models

• Seek rapid feedback

• Produce quality work

• Maximize customer investment

Page 25: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

25

Agenda

• Introduction to Agile Modeling– Definiton– Values– Principles– Practices

• Characterisitics of Agile Models

• Agile Modeling Sessions

• Applying Agile Modeling: XP

• Conclusions

Page 26: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

26

Practices

• Iterative and incremental modeling

• Teamwork

• Simplicity

• Validation

Page 27: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

27

Iterative and Incremental Modeling

• Apply the right artifacts

Enroll in Seminar

•Student chooses a

seminar to

enroll in

•System ch

ecks that th

e student c

an

enroll in th

at seminar

•System ca

lculates f

ees

•Student pays f

ees and is

enrolled

Page 28: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

28

Iterative and Incremental Modeling

• Apply the right artifacts

Page 29: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

29

Iterative and Incremental Modeling

• Apply the right artifacts

• Create several models in parallel

Page 30: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

30

Iterative and Incremental Modeling

• Apply the right artifacts

• Create several models in parallel

• Iterate to another artifact

Page 31: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

31

Iterative and Incremental Modeling

• Apply the right artifacts

• Create several models in parallel

• Iterate to another artifact

• Modell in small increments

Page 32: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

32

Teamwork

• Model with others

– Improve communication

– Build common vocabulary

– Provide opportunity to learn from each other

Two heads are better than one!

Page 33: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

33

Teamwork

• Model with others

• Active stakeholder participation

Page 34: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

34

Teamwork

• Model with others

• Active stakeholder participation

• Collective ownership– Promotes communication– Reduces documentation– Reduces dependancy on one single person– Better understanding of the system– Rapid feedback

Page 35: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

35

Teamwork

• Model with others

• Active stakeholder participation

• Collective ownership

• Display models publicly

Page 36: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

36

Simplicity

• Create simple content

Page 37: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

37

Simplicity

• Create simple content

• Depict models simply

Page 38: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

38

Simplicity

• Create simple content

• Depict models simply

• Use the simplest tools

Page 39: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

39

Validation

• Consider testability

– How should the software be tested?

– Test often and test early

Page 40: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

40

Validation

• Consider testability

• Prove it with code

Page 41: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

41

Agenda

• Introduction to Agile Modeling– Definiton– Values– Principles– Practices

• Characterisitics of Agile Models

• Agile Modeling Sessions

• Applying Agile Modeling: XP

• Conclusions

Page 42: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

42

Characteristics of Agile Models

• Fulfill its purpose

Page 43: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

43

Characteristics of Agile Models

• Fulfill its purpose

• Understandable

Page 44: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

44

Characteristics of Agile Models

• Fulfill its purpose

• Understandable

• Sufficiently accurate

Page 45: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

45

Characteristics of Agile Models

• Fulfill its purpose

• Understandable

• Sufficiently accurate

• Sufficiently consistent

Page 46: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

46

Characteristics of Agile Models

• Fulfill its purpose

• Understandable

• Sufficiently accurate

• Sufficiently consistent

• Sufficiently detailed

Page 47: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

47

Characteristics of Agile Models

• Fulfill its purpose

• Understandable

• Sufficiently accurate

• Sufficiently consistent

• Sufficiently detailed

• Provide positive value

Page 48: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

48

Characteristics of Agile Models

• Fulfill its purpose

• Understandable

• Sufficiently accurate

• Sufficiently consistent

• Sufficiently detailed

• Provide positive value

• As simple as possible

Page 49: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

49

Agenda

• Introduction to Agile Modeling– Definiton– Values– Principles– Practices

• Characterisitics of Agile Models

• Agile Modeling Sessions

• Applying Agile Modeling: XP

• Conclusions

Page 50: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

50

Agile Modeling Sessions

• Duration:

– At the beginning of a project: hours or daysMore than 2 or 3 days put your product at risk.

– During the construction of the projectBrainstorm Sessions: 10 to 20 minutes.

Page 51: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

51

Agile Modeling Sessions

• 3 Key rules:

– Create several models in the same session with different artifacts.

– Just enough people.

– Just formal enough.

Page 52: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

52

Brainstorm Sessions

• Stand-up meetings around a whiteboard or a table preferred.

• Focused on a single topic (a small chunk of requirements)

• Stop modeling once goal is fulfilled.

Page 53: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

53

Agenda• Introduction to Agile Modeling

– Definiton– Values– Principles– Practices

• Characterisitics of Agile Models

• Agile Modeling Sessions

• Applying Agile Modeling: XP

• Conclusions

Page 54: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

54

Applying Agile Modeling: XP

• Exploration Phase

XP concentrates on System Metaphores, but that does not mean that other diagrams can not be created

Page 55: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

55

Applying Agile Modeling: XP

• Planning Phase

Team and customers agree on date in which the smallest implementation will be done-brainstorm of tasks

Task cardsSketches of logic of taskUser Interface

Page 56: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

56

Applying Agile Modeling: XP

• Iteration to release Phase

Stand up meetings: developers discuss problems around a whiteboard, drawing sketches to enhance communicationModeling!

Page 57: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

57

Applying Agile Modeling: XP

• Productionizing Phase

AM done when errors are discovering and Modeling has to be done to work through the problem.

Page 58: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

58

Agenda• Introduction to Agile Modeling

– Definiton– Values– Principles– Practices

• Characterisitics of Agile Models

• Agile Modeling Sessions

• Applying Agile Modeling: XP

• Conclusions

Page 59: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

59

Conclusions

• Agile Modeling can be used in a software process in order to enhance modeling.

• In order to say you are Agile Modeling you need to follow all of the Principles and Practices of Agile Modeling.

Page 60: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

60

References

• www.agilemodeling.com.

• Agile Modeling. Scott Ambler. Wiley Computer Publishing.

• www.extremeprogramming.org

Page 61: Technische Universität München Agile Modeling Emitzá Guzmán

Agile Modeling

Technische Universität München

Thank you for your attention!

?

Page 62: Technische Universität München Agile Modeling Emitzá Guzmán

Agile Modeling

Technische Universität München

Exercise

Page 63: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

63

System Metaphor

Page 64: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

64

System Architecture

Page 65: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

65

Exercise: Reminder

• Flow charts

Page 66: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

66

Exercise: Reminder

• CRC Cards

What a class knows or doesHelp with the class

responsabilities

Page 67: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

67

Exercise: Reminder

• Use Cases

Actor

Action that provides a measurable value

Association

Page 68: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

68

Exercise: Reminder

• CRC Model

Page 69: Technische Universität München Agile Modeling Emitzá Guzmán

May 9 2008 Agile Modeling

Technische Universität München

69

Reminder: Exercise

• User Interfaces