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