am dd introduction

18
Copyright 2001-2005 Scott W. Ambler 1 Introduction to Agile Model Driven Development (AMDD) Scott W. Ambler Senior Consultant, Ambysoft Inc. www.ambysoft.com/scottAmbler.htm l

Upload: karlos

Post on 29-Sep-2015

216 views

Category:

Documents


0 download

DESCRIPTION

Agile Development

TRANSCRIPT

  • Copyright 2001-2005 Scott W. Ambler*Introduction to Agile Model Driven Development (AMDD) Scott W. AmblerSenior Consultant, Ambysoft Inc.www.ambysoft.com/scottAmbler.html

    Copyright 2001-2005 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*About These SlidesSome slides have notesYou may use these slides, or a subset thereof, in presentations or training materialsYou must indicate that the slide is Copyright Scott W. Ambler 2005You must not remove copyright notices from the diagramsYou may not sell or license the material contained within this file without the express permission of Scott W. AmblerVisit www.agilemodeling.com/essays/amddPresentation.htm for updates

    Copyright 2001-2005 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*Agile Modeling (AM)AM is a chaordic, practices-based process for modeling and documentationAM is a collection of practices based on several values and proven software engineering principlesAM is a light-weight approach for enhancing modeling and documentation efforts for other software processes such as XP and RUP

    Copyright 2001-2005 Scott W. Ambler

    A Base Software Process(e.g. XP, RUP, DSDM, FDD, )

    Principles and Practices ofAgile Modeling (AM)

    Your Software Process

    Other Techniques(e.g. Database refactoring)

    Copyright 2001-2005 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*The Core of AMYou Need to Adopt at Least the CoreCore PrinciplesAssume SimplicityEmbrace ChangeEnabling the Next Effort is Your Secondary GoalIncremental ChangeModel With a PurposeMultiple ModelsMaximize Stakeholder InvestmentQuality WorkRapid FeedbackSoftware Is Your Primary GoalTravel Light

    Core PracticesActive Stakeholder ParticipationApply the Right Artifact(s)Collective OwnershipCreate Several Models in ParallelCreate Simple ContentDepict Models SimplyDisplay Models PubliclyIterate to Another ArtifactModel in Small IncrementsModel With OthersProve it With CodeSingle Source InformationUse the Simplest Tools

    Copyright 2001-2005 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*Agile Model Driven Development (AMDD)Project Level (www.agilemodeling.com/essays/amdd.htm)

    Copyright 2001-2005 Scott W. Ambler

    Initial RequirementsModeling(days)

    Initial ArchitecturalModeling(days)

    Model Storming(minutes)

    Implementation(Ideally Test Driven)(hours)

    Cycle 1: Development

    Reviews(optional)

    All Cycles(hours)

    Cycle 0: Initial Modeling

    Cycle 2: Development

    Cycle n: Development

    Copyright 2003-2005Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*What Are Agile Models?Agile models:Fulfill their purposeAre understandableAre sufficiently accurateAre sufficiently consistentAre sufficiently detailedProvide positive valueAre as simple as possibleAgile models are just barely enough!

    Copyright 2001-2005 Scott W. Ambler

    Value

    Effort

    Ideal

    Copyright 2005 Scott W. Ambler

    Realistic

    Just Barely Good Enough

  • Copyright 2001-2005 Scott W. Ambler*Agile Modelswww.agilemodeling.com/artifacts/

    Copyright 2001-2005 Scott W. Ambler

    Conceptual Domain Modeling

    - Class Responsibility Collaborator (CRC) Cards- Logical Data Model (LDM)- Object Role Model (ORM) Diagram- Robustness Diagram- UML Class Diagram

    Usage Modeling- Acceptance Tests- Essential Use Cases- Features- System Use Cases- Usage scenario- User Stories- UML Use Case Diagram

    Supplementary Requirements Modeling

    - Business Rules- Conceptual Cases- Constraints- Glossary- Technical Requirements

    User Interface Development

    - Essential User Interface Prototype- User Interface Flow Diagram- User Interface Prototype

    Architectural Modeling

    - Change Cases- Free Form Diagram- Security Threat Modeling- UML Component Diagram- UML Deployment Diagram- UML Package Diagram

    Dynamic Object Modeling

    - UML Communication Diagram- UML Composite Structure Diagram- UML Interaction Overview Diagram- UML Sequence Diagram- UML State Machine Diagram- UML Timing Diagram

    Process Modeling

    - Data Flow Diagram (DFD)- Flow Chart- UML Activity Diagram- Value Stream Map- Workflow diagram

    Detailed Structural Modeling

    - External Interface (EI) Specification- Physical Data Model (PDM)- UML Class Diagram- UML Object Diagram

    Copyright 2003-2005Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*Tests as Primary ArtifactsReduce Documentation by Single Sourcing InformationAcceptance tests are considered to be primary requirements artifactsYou can reduce your requirements documentation dramatically by not recording the same information twiceUnit tests are considered to be detailed design artifactsYou can reduce your design documentation dramatically and increase the chance that your detailed design artifacts are kept up to date by coderswww.agilemodeling.com/essays/singleSourceInformation.htm

    Copyright 2001-2005 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*Agile DocumentationTravel light You need far less documentation than you thinkAgile documents:Maximize stakeholder investment Are conciseFulfill a purpose Describe information that is less likely to change Describe good things to knowHave a specific customer and facilitate the work efforts of that customer Are sufficiently accurate, consistent, and detailed Are sufficiently indexed Valid reasons to document:Your project stakeholders require itTo define a contract modelTo support communication with an external groupTo think something throughwww.agilemodeling.com/essays/agileDocumentation.htm

    Copyright 2001-2005 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*Communication ModesAlways Strive to Use the Most Effective Approach

    Copyright 2001-2005 Scott W. Ambler

    Communication Effectiveness

    Richness of Communication Channel

    Cold

    Hot

    Paper

    Audiotape

    Videotape

    Email conversation

    Phone conversation

    Video conversation

    Face-to-face conversation

    Face-to-faceat whiteboard

    DocumentationOptions

    ModelingOptions

    Copyright 2002-2005 Scott W. AmblerOriginal Diagram Copyright 2002 Alistair Cockburn

  • Copyright 2001-2005 Scott W. Ambler*The Cost of Traditional BRUFSuccessful Projects Still Have Significant WasteSource: Jim Johnson of the Standish Group, Keynote Speech XP 2002

    Copyright 2001-2005 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*Agile Software Requirements ManagementChanging Requirements Are a Competitive Advantage if You Can Act on Them: www.agilemodeling.com/essays/changeManagement.htm

    Copyright 2001-2005 Scott W. Ambler

    HighPriority

    LowPriority

    {

    Each iteration implement the highest-priority requirements

    Each new requirement is prioritized and added to the stack

    Requirements may be reprioritized at any time

    Requirements may be removed at any time

    Requirements

    Copyright 2004 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*Active Stakeholder ParticipationThe Stakeholders are the Experts, Shouldnt They Model?Project stakeholders should:Provide information in a timely mannerMake decisions in a timely mannerActively participate in business-oriented modelingwww.agilemodeling.com/essays/activeStakeholderParticipation.htm www.agilemodeling.com/essays/inclusiveModels.htm

    Copyright 2001-2005 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*Model With OthersThe modeling equivalent of pair programmingYou are fundamentally at risk whenever someone works on something by themselvesSeveral heads are better than one

    Copyright 2001-2005 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*Effectiveness of Requirements Gathering Techniques

    Copyright 2001-2005 Scott W. Ambler

    Focus Groups

    Active Stakeholder Participation

    Electronic Interviews

    On-Site Customer

    Reading

    Joint Application Design (JAD)

    Legacy Code Analysis

    CollaborativeInteraction

    Restricted Interaction

    Face-To-Face Interviews

    Observation

    Copyright 2005 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*Relative Effectiveness of User Representatives

    Copyright 2001-2005 Scott W. Ambler

    Effectiveness

    Business Analyst as User

    Personas

    Actual Stakeholder

    Product Manager

    Copyright 2005 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*References and Recommended ReadingAmbler, S.W. (2002). Agile Modeling: Effective Practices for XP and the UP. New York: John Wiley & Sons.Ambler, S.W. (2003). Agile Database Techniques. New York: John Wiley & Sons.Ambler, S.W. (2004). The Object Primer 3rd Edition: AMDD with UML 2. New York: Cambridge University Press.Ambler, S.W. (2005). The Elements of UML 2.0 Style. New York: Cambridge University Press.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.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.Larman, C. (2004). Agile and Iterative Development: A Managers Guide. Reading, MA: Addison Wesley Longman, Inc.Palmer, S.R. & Felsing, J.M. (2002). A Practical Guide to Feature Driven Development. Upper Saddle River, NJ: Prentice Hall PTR.

    Copyright 2001-2005 Scott W. Ambler

  • Copyright 2001-2005 Scott W. Ambler*Online Resourceswww.agilemodeling.com

    www.agilealliance.org

    www.controlchaos.com

    www.ambysoft.com

    www.agiledata.org

    www.enterpriseunifiedprocess.com

    Copyright 2001-2005 Scott W. Ambler

    **AM is a partial method which is meant to be tailored into other processes such as RUP, FDD, and XPThe AM site has a wealth of material

    *www.agilemodeling.com/practices.htmwww.agilemodeling.com/principles.htm

    The supplementary principles and practices are good ideas which you should also consider adopting*You should do some initial modeling up front to identify a plausible architecture and the scope of your effortDo the detail just in time (JIT) via model storminghttp://www.agilemodeling.com/essays/modelReviews.htm *http://www.agilemodeling.com/essays/barelyGoodEnough.html Agile models are the most effective possible because you invest just enough effort to get the job done.

    If the model isnt good enough yet then you can invest more effort into it and still get value.

    If the model is good enough, for your current needs, or more than good enough, then any more work done on it would be a waste.

    Good enough is in the eye of the beholder, so this can be tough. Active Stakeholder Participation and Model With Others to know what the audience for the model actually needs, dont guess.*Software development is complexEach type of model is good at one type of view, but you need many viewsNo starting point, no ending pointhttp://www.agilemodeling.com/essays/phasesExamined.htm You need to know a range of techniques to be effective, but you dont need to know all of themIn each category there are often several similar techniques, use the one that works for you*You want to store information in the best place possible, and thats often in tests, not documents**Software development is a communication gameDocumentation is the worst way to communicateWhatever your situation, use the most effective means at your disposal to communicatehttp://www.agilemodeling.com/essays/communication.htm *Looked at hundreds of successful projects which took a traditional/serial approach with a big requirements up front (BRUF) strategyAll projects delivered software into production many projects in the Chaos study didnt deliver49% of functionality delivered wasnt used by stakeholders, 19% rarely usedThe main point to make is even when you succeed you still have close to 2/3 wastage**Software development is a lot like swimming, very dangerous to do it alonehttp://www.agilemodeling.com/practices.htm#ModelWithOthers *www.agilemodeling.com/essays/agileRequirements.htm

    Prefer collaborative techniques over restricted interaction techniques

    Prefer techniques high up on the chart over lower ones (the arrow indicates effectiveness)*There are different ways to represent stakeholders, the best way it to get the actual stakeholders actively involved on your project**