22
© 2015 SEAN DUNN AGILE ARCHITECTURE: A Contradiction in Terms? Our Journey IHS Inc. Chris Edwards, PEng Sean Dunn, CD, PEng, PMP, CSP AGILE 2015

Agile 2015 architecture (draft)

Embed Size (px)

Citation preview

Page 1: Agile 2015 architecture (draft)

© 2015 SEAN DUNN

AGILE ARCHITECTURE: A Contradiction in Terms?

Our Journey

IHS Inc.

Chris Edwards, PEng

Sean Dunn, CD, PEng, PMP, CSP

AGILE 2015

Page 2: Agile 2015 architecture (draft)

© 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

Page 3: Agile 2015 architecture (draft)

© 2015 SEAN DUNN

OUR VIEW OF AGILE:

TECHNICAL EXCELLENCE

TRANSFORMATIONAL LEADERSHIP

LEAN PRODUCT MANAGEMENT

Page 4: Agile 2015 architecture (draft)

© 2015 SEAN DUNN

THE BEST ARCHITECTURES, REQUIREMENTS, AND DESIGNS EMERGE FROM

SELF-ORGANIZING TEAMS. Agile Manifesto

Is Agile “anti-Architect”?

Page 5: Agile 2015 architecture (draft)

© 2015 SEAN DUNN

WE DID NOT ALWAYS BELIEVE WE NEEDED AN ARCHITECT

Page 6: Agile 2015 architecture (draft)

© 2015 SEAN DUNN

DEVELOPERS

Page 7: Agile 2015 architecture (draft)

© 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?

Page 8: Agile 2015 architecture (draft)

© 2015 SEAN DUNN

Requirements

Design

Code

Test

Deploy

WE KNEW WE WANTED TO AVOID THIS

Page 9: Agile 2015 architecture (draft)

© 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!

Page 10: Agile 2015 architecture (draft)

© 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

Page 11: Agile 2015 architecture (draft)

© 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

Page 12: Agile 2015 architecture (draft)

© 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.

Page 13: Agile 2015 architecture (draft)

© 2015 SEAN DUNN

CASE STUDY: DIFFERENT DESIGN VALUES

Page 14: Agile 2015 architecture (draft)

© 2015 SEAN DUNN

AND THEN … WE WERE WRONG!

Page 15: Agile 2015 architecture (draft)

© 2015 SEAN DUNN

AND THE FALLOUT…

ARCHITECT, YOU WERE WRONG! NOW WE NEED TO DO MORE WORK!

D’OH

Page 16: Agile 2015 architecture (draft)

© 2015 SEAN DUNN

AT THE SAME TIME… INNO-VERSITY’S

VIDEO “GREATNESS” BY

DAVID MARQUET

Page 17: Agile 2015 architecture (draft)

© 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

Page 18: Agile 2015 architecture (draft)

© 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

Page 19: Agile 2015 architecture (draft)

© 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

Page 20: Agile 2015 architecture (draft)

© 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

Page 21: Agile 2015 architecture (draft)

© 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

Page 22: Agile 2015 architecture (draft)

© 2015 SEAN DUNN

QUESTIONS?