Username
Password
 
the Scrum
Alliance
Login help
About Membership

Tel Aviv, Israel | 22-23 Mar 2010 | James O. Coplien

This class is taught by a Certified Scrum Trainer but is not a certification course.

There is a popular misconception that Agile development means "no up-front architecture!" Yet every major school of Agile practice advocates architecture. You can do a great Agile architecture in one week or in a single sprint! In this course we’ll teach you how great projects do architecture the Agile way.

The first day of the course examines the goals of Agile development and architecture together. Agile is about human engagment; in programs, that implies interactive interface. It also means responding to change; in software, that means responding keystroke by keystroke rather than card deck by card deck. The objects in the program derive from end user mental models of the business domain. The first step of Agile architecture is to find these objects — the “Model” objects of MVC. At the end of the first day you will know how to create an overall framework that separates domain objects from Use Case code, so that each part can respond to its own pace of change. You will also know how to capture the domain design using object-oriented languages, making it possible to refine domain concepts in a piecemeal, Agile way.

In the second day of the course, we focus on how to incrementally inject new Use Cases into domain objects. Use cases are not objects; yet, in a good OO world, they are not functions, either. We show how to express Use Cases as interactions between roles. We also show how to implement roles in most common object-oriented programming languages, and how to inject those roles dynamically into the domain objects. This architecture, called DCI (for Data, Context and Interaction) was designed by Trygve Reenskaug, the inventor of Model-View-Controller, to more accurately capture the end user mental model and to give the programmer code structures that are easy to reason about. The end result is programs that capture end user mental models (individuals and interactions over processes and tools), a more seamless transition from requirements to code (customer collaboration over contracts), software that is simpler and easier to reason about and sometimes prove correct (working software over documentation), and flexible software that is much easier to change than in traditional object orientation.

The course focuses on interactive systems and draws from a broad range of sources including Trygve Reenskaug’s work on architectural underpinnings of MVC and his new work on the DCI architecture, Jim Coplien’s lightweight domain analysis, dressed-down Use Cases, and role-based development. The course is for architects, designers, and programmers, and is programming-language neutral.


 

Dates:

22-23 Mar 2010

Location:

Tel Aviv, Israel

Venue:

TBD
TBD (E-mail or phone contact below)
Tel Aviv, Israel

Price:

$899 + $0 VAT through scrumtraininginstitute.com

Notes:

This course is based on the forthcoming Wiley book, Lean Architecture for Agile Software Development. All attendees registering at scrumtraininginstitute.com will receive a free copy of the book when it is published (scheduled for May 2010).

 

The agenda is tentative.

 

 

  1. Introduction
  2. Time and Time to Market: Motivating Architecture's Value
    1. YAGNI Re-visited
    2. Case studies and models of profitability with and without up-front work
  3. Architecture and Technique
    1. The Potential for TDD to erode architecture — and the remedy
    2. Symbiosis between architecture and usability: MVC foundations and business objects
    3. The link from architecture to functional requirements and Use Cases
  4. Architecture and Maintainability
    1. Lightweight Domain Modeling
    2. How much architecture?
    3. Software Families
    4. Commonality and Variability Analysis
  5. Domain-Driven Design: Problem Domain Analysis
    1. Commonality and Variation
    2. Domain Starter Sets
  6. Solution Domain Analysis
    1. The Paradigms
    2. Positive and Negative Variation
    3. Simple Domain Parititioning
    4. Variability Tables
    5. Transformational Analysis
    6. Reducing to Code
  7. The MVC-U Four-Layer Architecture
    1. Business Objects and Domain Modeling
    2. Business Objects as Tools
    3. Tools and MVC
  8. Architecture in Process
    1. Incremental Architectural Slices
    2. How much architecture, and when?
  9. Capturing functionality in Code: Trygve Reenskaug's DCI architecture
    1. Code intentionality
    2. A model from the perspective of Aspects
    3. Class and object definitions of weavers
    4. Role definitions
    5. Capturing Use Cases
    6. Methodful roles
    7. Tieing it all together
  10. Summary and Wrapup 

 

  • Designers;
  • Programmers;
  • System and software architects;
  • White-box /clear-box testers;
  • Line managers;
  • User experience folks (there is an important and surprising relationship between HCI and architecture in an Agile system);
  • Domain experts;
  • System Engineers;
  • To a lesser degree, ScrumMasters and Product Owners (wouldn't it be nice to know where architectural PBIs come from and where they go?)

 

 

Lean Architecture and Agile Feature Implementation
 
Shanghai Scrum Gathering
Privacy Policy  |   Legal  |   About the Scrum Alliance  |   Contact Us
Please contact our webmaster Copyright © 2009, Scrum Alliance, Inc. All Rights Reserved. rss