Agile Modeling Emitzá Guzmán Agile Modeling
Agenda Introduction to Agile Modeling Characterisitics of Agile Models Definiton Values Principles Practices Characterisitics of Agile Models Agile Modeling Sessions Applying Agile Modeling: XP Conclusions Agile Modeling May 9 2008
Definition Methodology for modeling and documenting effectively software-based systems. Collection of values, principles and practices that can be applied on a software project. Agile Modeling May 9 2008
Definition It is not a prescriptive process. Its focus is on modeling. Agile Modeling May 9 2008
Agenda Introduction to Agile Modeling Characterisitics of Agile Models Definiton Values Principles Practices Characterisitics of Agile Models Agile Modeling Sessions Applying Agile Modeling: XP Conclusions Agile Modeling May 9 2008
Communication Agile Modeling May 9 2008
Communication Agile Modeling May 9 2008
Simplicity Model enough to fulfill the present needs and worry about the future needs when they appear. Be realistic when modeling! Agile Modeling May 9 2008
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. Agile Modeling May 9 2008
Feedback Cost of fixing defects Probability of introducing defects Agile Modeling May 9 2008
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. Agile Modeling May 9 2008
Humility In order to recognize that one that does not know everything and that one can learn from others. Agile Modeling May 9 2008
Agenda Introduction to Agile Modeling Characterisitics of Agile Models Definiton Values Principles Practices Characterisitics of Agile Models Agile Modeling Sessions Applying Agile Modeling: XP Conclusions Agile Modeling May 9 2008
Principles Software is your primary goal Agile Modeling May 9 2008
Principles Software is your primary goal Enabling the next effort is your secondary rule Agile Modeling May 9 2008
Principles Software is your primary goal Enabling the next effort is your secondary rule Travel light Agile Modeling May 9 2008
Principles Software is your primary goal Enabling the next effort is your secondary rule Travel light Assume simplicity Agile Modeling May 9 2008
Principles Software is your primary goal Enabling the next effort is your secondary rule Travel light Assume simplicity Embrace change Agile Modeling May 9 2008
Principles Software is your primary goal Enabling the next effort is your secondary rule Travel light Assume simplicity Embrace change Make incremental change Agile Modeling May 9 2008
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 Agile Modeling May 9 2008
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 Agile Modeling May 9 2008
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 Agile Modeling May 9 2008
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 Agile Modeling May 9 2008
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 Agile Modeling May 9 2008
Agenda Introduction to Agile Modeling Characterisitics of Agile Models Definiton Values Principles Practices Characterisitics of Agile Models Agile Modeling Sessions Applying Agile Modeling: XP Conclusions Agile Modeling May 9 2008
Practices Iterative and incremental modeling Teamwork Simplicity Validation Agile Modeling May 9 2008
Iterative and Incremental Modeling Apply the right artifacts Student chooses a seminar to enroll in System checks that the student can enroll in that seminar Enroll in Seminar Student pays fees and is enrolled System calculates fees Agile Modeling May 9 2008
Iterative and Incremental Modeling Apply the right artifacts Agile Modeling May 9 2008
Iterative and Incremental Modeling Apply the right artifacts Create several models in parallel Agile Modeling May 9 2008
Iterative and Incremental Modeling Apply the right artifacts Create several models in parallel Iterate to another artifact Agile Modeling May 9 2008
Iterative and Incremental Modeling Apply the right artifacts Create several models in parallel Iterate to another artifact Modell in small increments Agile Modeling May 9 2008
Teamwork Model with others Improve communication Build common vocabulary Provide opportunity to learn from each other Two heads are better than one! Agile Modeling May 9 2008
Teamwork Model with others Active stakeholder participation May 9 2008 Agile Modeling May 9 2008
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 Agile Modeling May 9 2008
Teamwork Model with others Active stakeholder participation Collective ownership Display models publicly Agile Modeling May 9 2008
Simplicity Create simple content Agile Modeling May 9 2008
Simplicity Create simple content Depict models simply May 9 2008 Agile Modeling May 9 2008
Simplicity Create simple content Depict models simply Use the simplest tools Agile Modeling May 9 2008
Validation Consider testability How should the software be tested? Test often and test early Agile Modeling May 9 2008
Validation Consider testability Prove it with code May 9 2008 Agile Modeling May 9 2008
Agenda Introduction to Agile Modeling Characterisitics of Agile Models Definiton Values Principles Practices Characterisitics of Agile Models Agile Modeling Sessions Applying Agile Modeling: XP Conclusions Agile Modeling May 9 2008
Characteristics of Agile Models Fulfill its purpose Agile Modeling May 9 2008
Characteristics of Agile Models Fulfill its purpose Understandable Agile Modeling May 9 2008
Characteristics of Agile Models Fulfill its purpose Understandable Sufficiently accurate Agile Modeling May 9 2008
Characteristics of Agile Models Fulfill its purpose Understandable Sufficiently accurate Sufficiently consistent Agile Modeling May 9 2008
Characteristics of Agile Models Fulfill its purpose Understandable Sufficiently accurate Sufficiently consistent Sufficiently detailed Agile Modeling May 9 2008
Characteristics of Agile Models Fulfill its purpose Understandable Sufficiently accurate Sufficiently consistent Sufficiently detailed Provide positive value Agile Modeling May 9 2008
Characteristics of Agile Models Fulfill its purpose Understandable Sufficiently accurate Sufficiently consistent Sufficiently detailed Provide positive value As simple as possible Agile Modeling May 9 2008
Agenda Introduction to Agile Modeling Characterisitics of Agile Models Definiton Values Principles Practices Characterisitics of Agile Models Agile Modeling Sessions Applying Agile Modeling: XP Conclusions Agile Modeling May 9 2008
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. Agile Modeling May 9 2008
Agile Modeling Sessions 3 Key rules: Create several models in the same session with different artifacts. Just enough people. Just formal enough. Agile Modeling May 9 2008
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. Agile Modeling May 9 2008
Agenda Introduction to Agile Modeling Characterisitics of Agile Models Definiton Values Principles Practices Characterisitics of Agile Models Agile Modeling Sessions Applying Agile Modeling: XP Conclusions Agile Modeling May 9 2008
Applying Agile Modeling: XP Exploration Phase XP concentrates on System Metaphores, but that does not mean that other diagrams can not be created Agile Modeling May 9 2008
Applying Agile Modeling: XP Planning Phase Task cards Sketches of logic of task User Interface Team and customers agree on date in which the smallest implementation will be done-brainstorm of tasks Agile Modeling May 9 2008
Applying Agile Modeling: XP Iteration to release Phase Stand up meetings: developers discuss problems around a whiteboard, drawing sketches to enhance communicationModeling! Agile Modeling May 9 2008
Applying Agile Modeling: XP Productionizing Phase AM done when errors are discovering and Modeling has to be done to work through the problem. Agile Modeling May 9 2008
Agenda Introduction to Agile Modeling Characterisitics of Agile Models Definiton Values Principles Practices Characterisitics of Agile Models Agile Modeling Sessions Applying Agile Modeling: XP Conclusions Agile Modeling May 9 2008
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. Agile Modeling May 9 2008
References www.agilemodeling.com. Agile Modeling. Scott Ambler. Wiley Computer Publishing. www.extremeprogramming.org Agile Modeling May 9 2008
Thank you for your attention! ? Agile Modeling
Exercise Agile Modeling
System Metaphor Agile Modeling May 9 2008
System Architecture Agile Modeling May 9 2008
Exercise: Reminder Flow charts Agile Modeling May 9 2008
Exercise: Reminder CRC Cards What a class knows or does Help with the class responsabilities Agile Modeling May 9 2008
Exercise: Reminder Use Cases Action that provides a measurable value Actor Association Agile Modeling May 9 2008
Exercise: Reminder CRC Model Agile Modeling May 9 2008
Reminder: Exercise User Interfaces Agile Modeling May 9 2008