© 2015 SEAN DUNN
AGILE ARCHITECTURE: A Contradiction in Terms?
Our Journey
IHS Inc.
Chris Edwards, PEng
Sean Dunn, CD, PEng, PMP, CSP
AGILE 2015
© 2015 SEAN DUNN
SETTING THE STAGE…
• FIVE TEAMS OF 5-9, INCLUDING QA • MIX OF SCRUM/KANBAN/SCRUMBAN • THICK CLIENT • 1 PRODUCT • C++ • MATURE PRODUCT • LARGE PROJECT TO MAKE CLIENT/SERVER
© 2015 SEAN DUNN
OUR VIEW OF AGILE:
TECHNICAL EXCELLENCE
TRANSFORMATIONAL LEADERSHIP
LEAN PRODUCT MANAGEMENT
© 2015 SEAN DUNN
THE BEST ARCHITECTURES, REQUIREMENTS, AND DESIGNS EMERGE FROM
SELF-ORGANIZING TEAMS. Agile Manifesto
Is Agile “anti-Architect”?
© 2015 SEAN DUNN
WE DID NOT ALWAYS BELIEVE WE NEEDED AN ARCHITECT
© 2015 SEAN DUNN
DEVELOPERS
© 2015 SEAN DUNN
WE STILL NEEDED TO MAKE SOME “BIG DECISIONS”
Language?
C++?
Architectural Approach?
DDD?
SoA?
Layers?
Interfaces?
THERE IS SOME OPTIMUM LEVEL OF CONSISTENCY - HOW TO DEFINE IT?
© 2015 SEAN DUNN
Requirements
Design
Code
Test
Deploy
WE KNEW WE WANTED TO AVOID THIS
© 2015 SEAN DUNN
OUR OBJECTIVES • Encourage developers to think for themselves –
discourage “just tell me what you want me to do”
• Foster design competency
• Maintain minimally sufficient level of consistency
• Promote initiative through clear “rules of engagement”
• Avoid decision-making bottlenecks
• Learn fast!
© 2015 SEAN DUNN
OUR FIRST ATTEMPT: THE ARCHITECTURAL “SCOUT”
Design
Code
Test User Story
Design
Code
Test User Story
X 5 teams
Prototypes Research
Information
© 2015 SEAN DUNN
THIS WAS OK, BUT… • Hard to get all information to everyone all
the time
• The design skills to interpret and apply the
information was varied
• Inter-team friction
– Different design values
– Inter-team communication about design was not
emerging
© 2015 SEAN DUNN
CASE STUDY: MISSED MESSAGES
Team A starts a user story and
recognizes the need for a re-
usable abstraction, and build one.
Team D, not aware an re-usable
component already exists, write
their own.
Team C and D start user stories
needing this abstraction. Realize
one is built already, begin using it.
© 2015 SEAN DUNN
CASE STUDY: DIFFERENT DESIGN VALUES
© 2015 SEAN DUNN
AND THEN … WE WERE WRONG!
© 2015 SEAN DUNN
AND THE FALLOUT…
ARCHITECT, YOU WERE WRONG! NOW WE NEED TO DO MORE WORK!
D’OH
© 2015 SEAN DUNN
AT THE SAME TIME… INNO-VERSITY’S
VIDEO “GREATNESS” BY
DAVID MARQUET
© 2015 SEAN DUNN
THE AGILE ARCHITECT DESIGN SKILLS COACH
FACILITATOR OF DESIGN DISCUSSIONS ARCHITECTURAL SCOUT
AGILE PHILOSOPOHER
MAKER OF A FEW BIG DECISIONS
TECHNOLOGY RESEARCHER
INFORMATION CONDUIT
© 2015 SEAN DUNN
FACILITATING: THE DAILY DESIGN SCRUM
• 1 MEMBER REPRESENTING EACH TEAM
• FACILITATED BY ARCHITECT
• DISCUSS DESIGN UNCERTAINTIES EACH TEAM HAS RUN INTO AND WHAT THEIR COMMON APPROACH SHOULD BE
• 30 MINUTES
© 2015 SEAN DUNN
COACHING: TEACHING OTHERS DESIGN
• DON’T GIVE ANSWERS - ASK QUESTIONS
• HELP GUIDE OTHERS THROUGH DELIBERATE DECISION MAKING AND ENGINEERING TRADE-OFFS
• FIND OPPORTUNITY TO TEACH SOLID DESIGN PRINCIPLES, DESIGN PATTERNS
© 2015 SEAN DUNN
SCOUT: LOOKING AHEAD
• MONITOR BACKLOG FOR UPCOMING FEATURES
• ANTICIPATE NEW DESIGN CHALLENGES
• CONSIDER POTENTIAL TRADE-OFFS
• RESEARCH POTENTIAL SOLUTIONS AND TECHNOLOGIES
• PROVIDE INFORMATION TO ENABLE TEAMS TO PROTOTYPE
© 2015 SEAN DUNN
INFORMATION CONDUIT
• GET HANDS DIRTY IN THE CODE
• KEEP A GOOD AWARENESS OF TECHNICAL SOLUTIONS BEING IMLPEMENTED BY ALL TEAMS
• HELP SHARE INFORMATION BETWEEN TEAMS
© 2015 SEAN DUNN
QUESTIONS?