Applying Agile Values
to   Enterprise Architecture
Software Architectural Trends
Past, Present, and Onwards
                        by: Benjamin Scherrey
                           Chief Systems Architect
                     Proteus Technologies, Co. Ltd.

                               Twitter: @proteusguy
                 Email: scherrey@proteus-tech.com
                             http://proteus-tech.com
Architecture
       Architecture is Form not Structure

      Keeps the effort focused on Value

   Identifies the Stable Parts of the System

 Introduces Constraints (Architectural Drivers)

The result of tough decisions made now in order
        to make future decisions easier
Goals of Architecture
           Reduce Cost of Change

     Reduce Coupling/Increase Cohesion

     Support Locality of Decision Making

Shared Vision Upon Which Whole Team Can Proceed
Enterprise Architecture
        Pitfalls
   Bigger Budgets, Lowered Expectations

          Throw It Over the Wall Design

              Beautiful Works of Fiction
“People confuse the rules of drawing with the rules of construction not
               realizing that they are not the same.”
                                           -- Leon Battista Alberti
                                                 Italian Renaissance
                        Architect (1404-1472)
Enterprise Architecture
        Pitfalls
          “Magazine Architecture”

            Don't forget about the
              people who will be
                subjected to your
                          system!
How Much Architecture?

      Big Upfront Design
              vs.
      No Upfront Design
              vs.
     Rough Upfront Design
Agile Values
 "Programs must be written for people to
read, and only incidentally for machines to
                 execute."
                    — Hal Abelson
                         (Structure and Interpretation of
        Computer Programs, Second Edition)

    "Having the faculty of quick motion.
 Nimble. Active. Readiness." — Oxford English
                      Dictionary


    “An Architecture makes you Ready.”
                        — James Coplien
Agile Architecture
                 An Agile Model
          The Agile Manifesto – Utah 2001

Individuals and interactions over processes and tools
Working software over comprehensive documentation
  Customer collaboration over contract negotiation
     Responding to change over following a plan

         Agile is a Direction, not a Destination.
             There is more than one path!
Agile Architectural “Values”
        Mayo-Smith Pyramid




 Beware: Grandiose Designs Incur Grandiose Risks
   Scope fixed, budget & schedule may suffer.

     Focus: Immediate, practical functionality
    maximizes value of each increment while
                   reducing risk.
   Scope flexible, budget, schedule under control.
Agile Architecture How-to
Agile is a reaction against methodological
       excesses (Plans are useless)

        Put a Stick in the Ground

          Design Lives in Code

            RESTful Services
Agile Architecture How-to
     SCRUM (An actual discipline!)
    (Reducing cost of change/Early Feedback)


 Test Driven Development & Continuous
               Integration

                  SPIKEs

            Iteration Reviews
Architecture without the
       “Architect”
No Software Architects in Asia (Few Anywhere)

          Think Like an Architect
      (identify value stream/fit into ecosystem)


  Send out Scouting Parties (Fail Fast)

Hire a Guide (proper use of consultants)
21 st   Century Architecture
          Challenges
  FAT Object Interfaces (Enterprisey)

Brittle Distributed Dependencies (SOAP)

         How to Test for Value?

        General Loss of Cohesion
New Architecture on the
       Horizon
Failures of the Object Oriented Model

   Ah-ha moments & revolutions

        Lost our Use Cases

       Responsibility Design
Domain Context Interaction


      What the System Is
              vs.
     What the System Does
Domain Context Interaction


          Use Cases

  Proper Object Oriented Model
Domain Context Interaction



            Roles
         (vs. Classes)
Domain Context Interaction



         Contexts

Applying Agile Values to Enterprise Architecture Software Architectural Trends Pase, Present, and Onwards

  • 1.
    Applying Agile Values to Enterprise Architecture Software Architectural Trends Past, Present, and Onwards by: Benjamin Scherrey Chief Systems Architect Proteus Technologies, Co. Ltd. Twitter: @proteusguy Email: scherrey@proteus-tech.com http://proteus-tech.com
  • 2.
    Architecture Architecture is Form not Structure Keeps the effort focused on Value Identifies the Stable Parts of the System Introduces Constraints (Architectural Drivers) The result of tough decisions made now in order to make future decisions easier
  • 3.
    Goals of Architecture Reduce Cost of Change Reduce Coupling/Increase Cohesion Support Locality of Decision Making Shared Vision Upon Which Whole Team Can Proceed
  • 4.
    Enterprise Architecture Pitfalls Bigger Budgets, Lowered Expectations Throw It Over the Wall Design Beautiful Works of Fiction “People confuse the rules of drawing with the rules of construction not realizing that they are not the same.” -- Leon Battista Alberti Italian Renaissance Architect (1404-1472)
  • 5.
    Enterprise Architecture Pitfalls “Magazine Architecture” Don't forget about the people who will be subjected to your system!
  • 6.
    How Much Architecture? Big Upfront Design vs. No Upfront Design vs. Rough Upfront Design
  • 7.
    Agile Values "Programsmust be written for people to read, and only incidentally for machines to execute." — Hal Abelson (Structure and Interpretation of Computer Programs, Second Edition) "Having the faculty of quick motion. Nimble. Active. Readiness." — Oxford English Dictionary “An Architecture makes you Ready.” — James Coplien
  • 8.
    Agile Architecture An Agile Model The Agile Manifesto – Utah 2001 Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Agile is a Direction, not a Destination. There is more than one path!
  • 9.
    Agile Architectural “Values” Mayo-Smith Pyramid Beware: Grandiose Designs Incur Grandiose Risks Scope fixed, budget & schedule may suffer. Focus: Immediate, practical functionality maximizes value of each increment while reducing risk. Scope flexible, budget, schedule under control.
  • 10.
    Agile Architecture How-to Agileis a reaction against methodological excesses (Plans are useless) Put a Stick in the Ground Design Lives in Code RESTful Services
  • 11.
    Agile Architecture How-to SCRUM (An actual discipline!) (Reducing cost of change/Early Feedback) Test Driven Development & Continuous Integration SPIKEs Iteration Reviews
  • 12.
    Architecture without the “Architect” No Software Architects in Asia (Few Anywhere) Think Like an Architect (identify value stream/fit into ecosystem) Send out Scouting Parties (Fail Fast) Hire a Guide (proper use of consultants)
  • 13.
    21 st Century Architecture Challenges FAT Object Interfaces (Enterprisey) Brittle Distributed Dependencies (SOAP) How to Test for Value? General Loss of Cohesion
  • 14.
    New Architecture onthe Horizon Failures of the Object Oriented Model Ah-ha moments & revolutions Lost our Use Cases Responsibility Design
  • 15.
    Domain Context Interaction What the System Is vs. What the System Does
  • 16.
    Domain Context Interaction Use Cases Proper Object Oriented Model
  • 17.
    Domain Context Interaction Roles (vs. Classes)
  • 18.