Introduction to and Scott W. Ambler scott.ambler@ronin-intl.com Copyright 2001-2002 Scott W. Ambler 1 Source Documents www.agilemodeling.com The Agile Modeling Workshop Course Notes (www.ronin-intl.com) www.agiledata.org www.modelingstyle.info Copyright 2001-2002 Scott W. Ambler 2 1
Overview Agile Modeling What is Agile Modeling? What are Agile Models? Values of Agile Modeling Principles of Agile Modeling Practices of Agile Modeling Agile Modeling & Other Processes Agile Data What is the Agile Data Method? Philosophies Roles of Agile Data Making it Work in Practice Copyright 2001-2002 Scott W. Ambler 3 Agile Modeling (AM) Copyright 2001-2002 Scott W. Ambler 4 2
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 a light-weight approach for enhancing modeling and documentation efforts for other software processes such as XP and RUP Copyright 2001-2002 Scott W. Ambler 5 Scope of AM Agile Modeling (AM) Base Software Process (XP, UP, DSDM,...) Your Process Copyright 2001-2002 Scott W. Ambler 6 3
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 enough! Copyright 2001-2002 Scott W. Ambler 7 This is an Agile Model Copyright 2001-2002 Scott W. Ambler 8 4
So Is This Copyright 2001-2002 Scott W. Ambler 9 And this Copyright 2001-2002 Scott W. Ambler 10 5
And this Apache Struts <<framework>> IEncryption IAccessControl Security <<infrastructure>> Online Ordering <<application>> XML ICustomer Customer IPersistence Persistence <<infrastructure>> Shipping <<application>> XML IOrder Order JDBC Corporate DB <<database>> Copyright 2001-2002 Scott W. Ambler 11 And this TCUSTOMER # CUST_NO: integer CUST_SOCIAL_SECURITY_NO: char(10) CUST_FIRST_NAME: char(20) CUST_SURNAME: char(20) CUST_SALUTATION: char (5) CUST_PHONE_NO: char(20) TCUSTOMER_ADDRESS # CUST_NO: integer # ADDR_ID: integer ADDR_USAGE_CODE: char(2) TADDRESS # ADDR_ID: integer ADDR_STREET char(40) ADDR_CITY: char(20) ADDR_ZIP: char(20) ADDR_STATE_CODE: char(2) ADDR_COUNTRY_CODE: char(3) Copyright 2001-2002 Scott W. Ambler 12 6
Values of AM Communication Simplicity Feedback Courage Humility Copyright 2001-2002 Scott W. Ambler 13 Principles of AM Core 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 Supplementary 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 Copyright 2001-2002 Scott W. Ambler 14 7
Core Practices of AM 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 Supplementary 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-2002 Scott W. Ambler 15 Observation: There is more to modeling than the UML User Interface Flow External Interface Specification Essential User Interface Prototype User Interface Prototype Component Deployment Change Cases Essential Use Case Model -or- User Stories Use Case Model -or- User Stories State Chart Collaboration CRC Model Business Rules Sequence Class Model (Design) Activity Non-Functional Requirements Constraints Class Model (Analysis) Persistence Model Source Code Copyright 2001-2002 Scott W. Ambler 16 8
The Agile Data (AD) Method Copyright 2001-2002 Scott W. Ambler 17 What is the (AD) Method? The Agile Data (AD) method is a collection of philosophies that will enable IT professionals within your organization to work together effectively when it comes to the data aspects of software-based systems. The AD method is based on the values and principles of the Agile Alliance. The AD method works well with practices of Agile Modeling (AM) (www.agilemodeling.com) Copyright 2001-2002 Scott W. Ambler 18 9
Philosophies of AD 1. Data is one of several important aspects of software-based systems. 2. Development teams must consider and act appropriately regarding enterprise issues. 3. Enterprise groups exist to nurture enterprise assets and to support other groups, such as development teams, within your organization. These enterpris e groups should act in an agile manner that reflects the expectations of their customers and the ways in which their customers work. 4. Each development project is unique, requiring a flexible approach tailored to its needs. One software process does not fit all and therefore the relative importance of data varies based on the nature of the problem being addressed. 5. IT professionals must work together effectively, actively striving to overcome the challenges that make it difficult to do so. 6. You should actively strive to find the sweet spot for any issue, avoiding the black and white extremes to find the gray that works best for your overall situation. Copyright 2001-2002 Scott W. Ambler 19 There is more to modeling than data models! User Interface Flow External Interface Specification Essential User Interface Prototype User Interface Prototype Component Deployment Collaboration Change Cases Essential Use Case Model -or- User Stories Use Case Model -or- User Stories State Chart CRC Model Business Rules Sequence Class Model (Design) Activity Non-Functional Requirements Constraints Class Model (Analysis) Persistence Model Source Code Copyright 2001-2002 Scott W. Ambler 20 10
Data Design Constraints, Data Models The Roles of the AD Method Agile DBAs Standards, Guidelines, "Current State" Guidance Data-Oriented Change Requests, Questions Application Design Constraints, Application Models Information Regarding Current State, Vision for Future System-Oriented Change Requests, Questions Application Developers Development Efforts Enterprise Models, Vision For Future Enterprise Administrators Enterprise Architects Enterprise Models, Vision For Future Copyright 2001-2002 Scott W. Ambler 21 Agile Database Techniques Database refactoring Mapping techniques & technologies Continuous unit testing Up-to-date migration scripts You can work iteratively and incrementally if you choose to! Copyright 2001-2002 Scott W. Ambler 22 11
Making it Work in Practice Copyright 2001-2002 Scott W. Ambler 23 AM, AD, and XP User Stories Test Scenarios Requirements New User Story, Project Velocity Bugs Achitectural Spike System Metaphor Release Planning Release Plan Iteration Latest Version Acceptance Tests Customer Approval Small Releases Uncertain Estimates Confident Estimates Next Iteration Spike Exploration Phase Planning Phase Iterations to Release Phase Productionizing Phase Maintenance Phase Copyright 2001-2002 Scott W. Ambler 24 12
AM, AD, and XP Stand Up Meeting at 9:00 Pair Up -- Quick Design Session Test Q&A Code Refactor Integrate or Toss Go Home at 17:00 Copyright 2001-2002 Scott W. Ambler 25 AM, AD, and the Unified Process Copyright 2001-2002 Scott W. Ambler 26 13
When Will AM & AD Work For You? You are taking an 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 control of its destiny A true champion for agility exists You have responsible and motivated developers You have adequate resources available to you Copyright 2001-2002 Scott W. Ambler 27 When Won t AM & AD 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-2002 Scott W. Ambler 28 14
Resources www.agilemodeling.com www.agiledata.org www.modelingstyle.info www.agilealliance.org www.ronin-intl.com Copyright 2001-2002 Scott W. Ambler 29 Feel Free to Email Me! Scott W. Ambler scott.ambler@ronin-intl.com Copyright 2001-2002 Scott W. Ambler 30 15