Ambler Agile Modeling Overview

1 downloads 0 Views 684KB Size Report
Agile Model Driven Development (AMDD) ... AM is a chaordic, practices-based process for modeling ..... Agile and Iterative Development: A Manager's Guide.
Agile Modeling (AM) Overview Scott W. Ambler Senior Consultant, Ronin International www.ronin-intl.com/company/scottAmbler.html

Copyright 2001-2004 Scott W. Ambler

1

Recommended Resources ? ? ? ? ?

www.agilemodeling.com www.agiledata.org www.enterpriseunifiedprocess.com www.agilealliance.org www.ronin-intl.com

Copyright 2001-2004 Scott W. Ambler

2

Questions? Please ask burning questions during the talk The only stupid question is the one that you don’t ask

Copyright 2001-2004 Scott W. Ambler

3

Presentation Overview ? ? ? ? ? ? ?

Warning! Agile Modeling (AM) Agile Model Driven Development (AMDD) AM and XP Agile Documentation Adopting AM Conclusion

Warning! ? ? ?

?

? ? ?

I’m spectacularly blunt at times Many new ideas will be presented Some may not fit well into your existing environment Some will challenge your existing notions about software development Some will confirm your unvoiced suspicions Don’t make any “career-ending moves” Be skeptical but open minded Copyright 2001-2004 Scott W. Ambler

5

What is AM? ?

?

?

?

AM is a chaordic, practices-based process for modeling and documentation. AM is a collection of practices based on several values and proven software engineering principles AM is meant to be tailored into other processes such as XP, RUP, … www.agilemodeling.com

Agile Modeling (AM) Base Software Process (XP, UP, DSDM, ...)

Copyright 2001-2004 Scott W. Ambler

Your Process

6

What Are Agile Models? ?

Agile models: ? ? ? ? ? ? ?

?

Fulfill their purpose Are understandable Are sufficiently accurate Are sufficiently consistent Are sufficiently detailed Provide positive value Are as simple as possible

Agile models are just barely good enough! Copyright 2001-2004 Scott W. Ambler

7

Values of AM Communication ? Simplicity ? Feedback ? Courage ? Humility ?

Copyright 2001-2004 Scott W. Ambler

8

The Core of AM – You need to do at least the core Core Principles ? Assume Simplicity ? Embrace Change ? Enabling the Next Effort is Your Secondary Goal ? Incremental Change ? Model With a Purpose ? Multiple Models ? Maximize Stakeholder Investment ? Quality Work ? Rapid Feedback ? Software Is Your Primary Goal ? Travel Light

Core Practices ? Active Stakeholder Participation ? Apply the Right Artifact(s) ? Collective Ownership ? Consider Testability ? Create Several Models in Parallel ? Create Simple Content ? Depict Models Simply ? Display Models Publicly ? Iterate to Another Artifact ? Model in Small Increments ? Model With Others ? Prove it With Code ? Use the Simplest Tools

Copyright 2001-2004 Scott W. Ambler

9

Agile Models Distilled

www.agilemodeling.com/artifacts/ 8VDJH 0 RGHO LQJ 8VHU,QW HUIDFH' HYHO RSP HQW ( VVHQW LDO 8 VH&DVHV ) HDW XUHV 6 \ VW HP 8 VH& DVHV 8 VHU6 W RULHV 8 0 / 8 VH& DVH' LDJUDP

( VVHQW LDO 8 VHU ,QW HUIDFH3 URW RW \ SH 8 VHU,QW HUIDFH) O RZ ' LDJ UDP 8 VHU,QW HUIDFH3URW RW \ SH

6XSSOHP HQW DU\ 5 HTXLUHP HQW V 0 RGHOLQJ

' HW DLOHG6 W UXFW XUDO 0 RGHOLQJ ([W HUQD,Q OW HUIDFH ( , 6SHFLILFDW LRQ 3K\VLFD'ODW D0 RGHO 3' 0 8 0 / &O DVV' LDJUDP 8 0 / 2 EM HFW ' LDJUDP

%XVLQHVV5 XO HV &RQVW U DLQW V *O RVVDU\ 7HFKQLFDO 5 HTXLUHP HQW V

' \ QDP LF 2 EM HFW 0 RGHO LQJ 80/ 80/ 80/ 80/ 80/ 80/

&RQFHSW XDO ' RP DLQ0 RGHO LQJ

&RP P XQLFDW LRQ' LDJUDP &RP SRVLW H6 W UXFW XUH' LDJUDP ,QW HUDFW LRQ2 YHUYLHZ ' LDJUDP 6 HTXHQFH' LDJUDP 6W DW H0 DFKLQH' LDJ UDP 7LP LQJ ' LDJUDP

&O DVV5 HVSRQVLELO LW \ &RO O DERUDW RU & 5 & &DUGV / RJLFDO ' DW D0 RGHO / ' 0 2 EM HFW 5 RO H0 RGHO 2 5 0 ' LDJUDP 5 REXVW QHVV' LDJUDP 8 0 / &O DVV' LDJUDP

$ UFKLW HFW XUDO 0 RGHO LQJ 3 URFHVV0 RGHO LQJ &KDQJH&DVHV ) UHH) RUP ' LDJ UDP 8 0 / & RP SRQHQ'WLDJUDP 8 0 / ' HSO R\ P HQ'WLDJUDP 8 0 / 3 DFNDJH' LDJ UDP

' DW D) O RZ ' LDJUDP ' ) ' )O RZ & KDUW 8 0 / $ FW LYLW \ ' LDJUDP

Copyright 2001-2004 Scott W. Ambler

10

Supplementing AM Supplementary Principles ?

?

? ? ? ? ?

Content is More Important Than Representation Everyone Can Learn From Everyone Else Know Your Models Know Your Tools Local Adaptation Open and Honest Communication Work With People’s Instincts

Supplementary Practices ? ? ? ? ? ? ? ?

Apply Modeling Standards Apply Patterns Gently Discard Temporary Models Formalize Contract Models Model to Communicate Model to Understand Reuse Existing Artifacts Update Only When It Hurts

Copyright 2001-2004 Scott W. Ambler

11

Agile Model Driven Development (AMDD) Project Level (www.agilemodeling.com/essays/amdd.htm)

Copyright 2001-2004 Scott W. Ambler

12

AMDD Enterprise Level

(www.agiledata.org/essays/enterpriseArchitecture.html)

Copyright 2001-2004 Scott W. Ambler

13

AMDD – Simple Approach (www.agilemodeling.com/essays/amddApproaches.htm)

Copyright 2001-2004 Scott W. Ambler

14

AMDD – CASE Approach

Copyright 2001-2004 Scott W. Ambler

15

AMDD – Agile MDA Approach

Copyright 2001-2004 Scott W. Ambler

16

AM and XP User Stories

Test Scenarios

Requirements

Achitectural Spike

System Metaphor

New User Story, Project Velocity

Release Planning

Uncertain Estimates

Release Plan

Confident Estimates

Bugs

Iteration

Latest Version

Acceptance Tests

Customer Approval

Small Releases

Next Iteration

Spike Exploration Phase

Planning Phase

Iterations to Release Phase

Productionizing Phase Maintenance Phase

Copyright 2001-2004 Scott W. Ambler

17

Stand Up Meeting at 9:00

AM and XP

Pair Up -- Quick Design Session

Test

Code

Q&A

Refactor

Integrate or Toss

Go Home at 17:00

Copyright 2001-2004 Scott W. Ambler

18

What are Agile Documents?

?

Maximize stakeholder investment Are “lean and mean” Fulfill a purpose Describe information that is less likely to change Describe “good things to know” Have a specific customer and facilitate the work efforts of that customer Are sufficiently accurate, consistent, and detailed

?

Are sufficiently indexed

? ? ? ? ? ?

Copyright 2001-2004 Scott W. Ambler

19

Reasons to Document ?

Valid reasons: ? ? ? ?

?

Your project stakeholders require it To define a contract model To support communication with an external group To think something through

Invalid reasons: ? ? ? ? ? ? ?

The requester wants to be seen to be in control The requester wants to justify their existence The requester doesn’t know any better Your process says to create the document Someone wants reassurance the project is fine You’re specifying work for another group Your development contracts are routinely subject to re-competition Copyright 2001-2004 Scott W. Ambler

20

Why AM? ?

? ?

If you follow the AM principles and practices, by definition you’re modeling and documenting in the most effective way possible AM has been proven to work in practice With an AMDD approach you gain the benefits of modeling without the drawbacks of bureaucracy ? ?

During cycle 0 you identify the landscape During cycles 1+ you model a little, implement a lot, then iterate Copyright 2001-2004 Scott W. Ambler

21

When Will AM Work For You? (JIT) ?

? ? ? ? ?

?

You are taking a (reasonably) agile approach to development You are working iteratively and incrementally Uncertain or volatile requirements Your primary goal is to develop software You have active stakeholder support and involvement The development team is in (reasonable) control of its destiny You have responsible and motivated developers

Copyright 2001-2004 Scott W. Ambler

22

When Won’t AM Work for You? One or more of the previous factors isn’t there ? Your organizational culture is geared towards a prescriptive culture ? You have a large and/or distributed team ?

Copyright 2001-2004 Scott W. Ambler

23

Conclusion ?

Recognize that: ? ?

?

? ?

“Model” != “Document” Modeling is an important part of every software process, including XP Modeling is an important communication technique You need to think outside of the UML box Recognize that you are likely already doing 90% of AM already, and that extra 10% will dramatically improve your productivity Copyright 2001-2004 Scott W. Ambler

24

Join the AM Mailing List www.agilemodeling.com/feedback.htm

Copyright 2001-2004 Scott W. Ambler

25

Backup Slides

Copyright 2001-2004 Scott W. Ambler

26

References and Recommended Reading ?

?

?

?

? ? ?

?

?

?

?

Ambler, S.W. (1998a). Building Object Applications That Work: Your Step-By-Step Handbook for Developing Robust Systems with Object Technology. New York: Cambridge University Press. Ambler, S. W. (1998b). Process Patterns – Building Large-Scale Systems Using Object Technology. New York: Cambridge University Press. Ambler, S. W. (1999). More Process Patterns – Delivering Large-Scale Systems Using Object Technology. New York: Cambridge University Press. Ambler, S.W. (2002). Agile Modeling: Effective Practices for XP and the UP. New York: John Wiley & Sons. Ambler, S.W. (2003a). The Elements of UML Style. New York: Cambridge University Press. Ambler, S.W. (2003b). Agile Database Techniques. New York: John Wiley & Sons. Ambler, S.W. (2004). The Object Primer 3 rd Edition: AMDD with UML 2. New York: Cambridge University Press. Ambler, S.W. & Constantine L.L. (2000a). The Unified Process Elaboration Phase. Gilroy, CA: CMP Books. Ambler, S.W. & Constantine L.L. (2000b). The Unified Process Construction Phase. Gilroy, CA: CMP Books. Ambler, S.W. & Constantine L.L. (2001). The Unified Process Inception Phase. Gilroy, CA: CMP Books. Ambler, S.W. & Constantine L.L. (2002). The Unified Process Transition and Production Phases. Gilroy, CA: CMP Books.

Copyright 2001-2004 Scott W. Ambler

27

References and Recommended Reading ?

?

?

?

?

?

?

?

?

?

Beck, K. (2000). Extreme Programming Explained – Embrace Change. Reading, MA: Addison Wesley Longman, Inc. Beck, K. & Fowler, M. (2001). Planning Extreme Programming. Reading, MA: Addison Wesley Longman, Inc. Bennett, D. (1997). Designing Hard Software: The Essential Tasks. Greenwich, CT: Manning Publications Co. Binder, R. (1999). Testing Object-Oriented Systems: Models, Patterns, and Tools. Reading, MA: Addison Wesley Longman, Inc. Constantine, L.L. & Lockwood, L.A.D. (1999). Software For Use: A Practical Guide to the Models and Methods of Usage-Centered Design. New York: ACM Press. Fowler, M. (1997). Analysis Patterns: Reusable Object Models. Menlo Park, California: Addison Wesley Longman, Inc. Fowler, M. & Scott, K. (1999). UML Distilled: Applying the Standard Object Modeling Language. Reading, MA: Addison Wesley Longman, Inc. Gane, C., Sarson, T. (1979). Structured Systems Analysis: Tools and Techniques. Englewood Cliffs, New Jersey: Prentice Hall, Inc. Jefferies, R., Anderson, A., & Hendrickson, C. (2001). Extreme Programming Installed. Reading, MA: Addison Wesley Longman, Inc. Kruchten, P. (1999). The Rational Unified Process: An Introduction. Reading, MA: Addison Wesley Longman, Inc.

Copyright 2001-2004 Scott W. Ambler

28

References and Recommended Reading ?

?

?

?

?

?

?

?

?

?

?

Larman, C. (2004). Agile and Iterative Development: A Manager’s Guide. Reading, MA: Addison Wesley Longman, Inc. Meyer, B. (1997). Object-Oriented Software Construction, Second Edition. Upper Saddle River, NJ: Prentice-Hall PTR. Page-Jones, M. (2000). Fundamentals of Object-Oriented Design in UML. New York: DorsetHouse Publishing. Palmer, S.R. & Felsing, J.M. (2002). A Practical Guide to Feature Driven Development. Upper Saddle River, NJ: Prentice Hall PTR. Roman, E., Ambler, S.W., & Jewell, T., (2002). Mastering Enterprise Java Beans, 2/e. New York: John Wiley & Sons. Rosenberg, D and Scott, K. (1999). Use Case Driven Object Modeling With UML: A Practical Approach. Reading, MA: Addison Wesley Longman, Inc. Rumbaugh, J., Jacobson, I. & Booch, G., (1999). The Unified Modeling Language Reference Manual. Reading, MA: Addison Wesley Longman, Inc. Schneider, G. & Winters, J.P. (1998). Applying Use Cases: A Practical Guide. Reading, MA: Addison Wesley Longman, Inc. Vermeulen, A., Ambler, S.W., Bumgardner, G., Metz, E., Misfeldt, T., Shur, J., & Thompson, P. (2000). The Elements of Java Style. New York: Cambridge University Press. Warner, J. & Kleppe, A. (1999). The Object Constraint Language: Precise Modeling With UML. Reading, MA: Addison Wesley Longman, Inc. Wiegers, K. (1999). Software Requirements. Redmond, WA: Microsoft Press.

Copyright 2001-2004 Scott W. Ambler

29

Online Resources www.agilemodeling.com www.agilealliance.org www.ronin-intl.com www.ambysoft.com www.agiledata.org www.enterpriseunifiedprocess.com Copyright 2001-2004 Scott W. Ambler

30

Suggest Documents