Agile Modeling Home Page

Inclusive Modeling: User Centered Approaches for Agile Software Development

Scott W. Ambler Home Page
Agile Modeling One of the core practices of Agile Modeling (AM) is Active Stakeholder Participation, which insists that stakeholders be available to provide information, make decisions, and even be involved in modeling.  Although many traditionalists will tell you that it’s preposterous to expect stakeholders to be actively involved in modeling, agilists know otherwise, as do user centered design (UCD) practitioners.   

 

Unfortunately most stakeholders don't understand the complex diagrams preferred by many traditional modelers, nor do they want to take the time to learn them (the same thing can be said of many developers, but that's a different discussion).   The implication is that the models typically supported by software-based modeling tools will hinder communication with stakeholders rather than foster it.  The secret is to adopt inclusive models which use simple tools and simple techniques that stakeholders can easily learn and therefore use to help capture and analyze requirements for your system.  Yes, some stakeholders have the ability to understand some of the more sophisticated modeling techniques, and can learn to use complex modeling tools, but it's rare to find such people in practice (when you do, act accordingly).  The point is that "inclusive" is situational, although my experience is that the simpler the tool or technique the more inclusive it becomes.

Inclusive models can be used to improve the communication which you have with your project stakeholders.  Stakeholders can be active participants in modeling if developers are willing to work with inclusive models.  Yes, you will very likely find that you need to use other types of models in order to design your software, and that’s ok.  Inclusive models and inclusive tools are an important aspect of model storming.  If you truly value interactions and individuals over processes and tools as the Agile Alliance suggests then you’ll consider adopting inclusive modeling techniques.

 

Simple Tools

There are many simple tools available to you, including:

  • Whiteboards

  • Index cards

  • Post-its

  • Flip chart paper

  • String

  • Word processor (ok, not so simple but most people know how to use them)

 

Simple Techniques

The following table summarizes common inclusive modeling techniques, and Agile Models Distilled summarizes a larger number of models (many of which are technical in nature).  The examples are from a university system case study or from an online e-commerce system.

Technique Suggested Tool Usage Example
Change Cases
  • Index Cards
  • Word Processor
Explore potential, architectural level requirements to identify potential changes which could occur in the future.

Change case: Registration will occur completely via the Internet.

Likelihood: Medium likelihood within two to three years, very likely within ten years.

Impact: Unknown. Although registration will be available online starting in September, we currently expect less than one quarter of registrations to be made via the Internet this year. Response time will be an issue during the peak use periods, which are the two weeks prior to the beginning of classes each term, as well as the first week of classes.

 

Class Responsibility Collaborator (CRC) cards
  • Index Cards
Explore business entities, such as Student and Seminar, and the relationships between them via domain modeling.  Developers can use CRC cards to do detailed structural modeling of their object designs.
Essential Use Cases
  • Flip Chart
  • Word Processor
Explore how people will use a system. 

Name: Enroll in Seminar

Identifier: UC 17

Basic Course of Action:

  • Student provides her name and student number

  • Registrar verifies the student is eligible to enroll in seminars. If not eligible then student informed and use case ends.

  • Registrar asks student which seminar they’d like to enroll in.  If they don’t know registrar provides student with course catalog if required.

  • Student chooses a seminar or decides not to enroll at all.

  • Registrar checks student record to see if student has previously passed prerequisite courses.  If not eligible student is asked to choose another.

  • Registrar validates the seminar fits into student’s schedule.

  • Registrar calculates fees

  • Student verifies the cost and either indicates she wants to enroll or not.

  • Registrar enrolls the student in the seminar and bills them for it.

  • The registrar writes enrollment receipt.

 

Essential User Interface Prototypes
  • Flip Chart
  • Post It
Identify user interface requirements without committing to a design too early in the project.
Features
  • Index Cards
  • Word Processor
Identify what people would like from the system
  • Add a student to a seminar waiting list.

 

  • Calculate the average mark on a transcript.

 

  • Drop a student from a seminar.

 

Free Form Diagrams
  • Whiteboard
  • Paper
Pretty much everything.

User Interface Sketch
  • Whiteboard
  • Paper
Define rough design of a screen or page.
User Stories
  • Index Cards
Explore how people will use a system. 

 

Recommended Resources

 
The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2   The Object Primer 3rd Edition: Agile Model Driven Development with UML 2 is an important reference book for agile modelers, describing how to develop 35 types of agile models including all 13 UML 2 diagrams.  Furthermore, this book describes the techniques of the Full Lifecycle Object Oriented Testing (FLOOT) methodology to give you the fundamental testing skills which you require to succeed at agile software development.  The book also shows how to move from your agile models to source code (Java examples are provided) as well as how to succeed at implementation techniques such as refactoring and test-driven development (TDD).  The Object Primer also includes a chapter overviewing the critical database development techniques (database refactoring, object/relational mapping, legacy analysis, and database access coding) from my award-winning Agile Database Techniques book.
Agile Modeling   Agile Modeling: Effective Practices for Extreme Programming and the Unified Process is the seminal book describing how agile software developers approach modeling and documentation.  It describes principles and practices which you can tailor into your existing software process, such as XP, the Rational Unified Process (RUP), or the Agile Unified Process (AUP), to streamline your modeling and documentation efforts.  Modeling and documentation are important aspects of any software project, including agile projects, and this book describes in detail how to elicit requirements, architect, and then design your system in an agile manner.
Elements of UML 2.0 Style   The Elements of UML 2.0 Style describes a collection of standards, conventions, and guidelines for creating effective UML diagrams. They are based on sound, proven software engineering principles that lead to diagrams that are easier to understand and work with.  These conventions exist as a collection of simple, concise guidelines that if applied consistently, represent an important first step in increasing your productivity as a modeler.  This book is oriented towards intermediate to advanced UML modelers, although there are numerous examples throughout the book it would not be a good way to learn the UML (instead, consider The Object Primer).  The book is a brief 188 pages long and is conveniently pocket-sized so it's easy to carry around.

 

Let Me Help

I actively work with clients around the world to improve their information technology (IT) practices as both a mentor/coach and trainer.  A full description of what I do, and how to contact me, can be found here

 


Canadian Flag

Copyright 2004-2007 Scott W. Ambler

Last updated: March 3, 2007
This site owned by
Ambysoft Inc.

Agile Data (AD)  |  Agile Unified Process (AUP)  |  Enterprise Unified Process (EUP)  |  My Writings