SlideShare a Scribd company logo
1 of 55
Download to read offline
Architecture)in)an)) 
Agile)World) 
Don McGreal 
don.mcgreal@ImprovingEnterprises.com 
@donmcgreal 
linkedin.com/in/donmcgreal!
Agenda' 
! Agile and Architecture 
! Reducing Technical Risks 
! Team Makeup & Roles 
! Architecture Anti-Patterns
What'is'So/ware'Architecture?'
Business'Goals' 
• What business goals could affect our 
Architectural decisions?
Non9Func;onal'Requirements' 
" Usability' 
" Scalability' 
" Portability' 
" Maintainability' 
" Availability' 
" Accessibility' 
" Supportability 
" Security 
" Performance 
" Cost 
" Legal 
" Cultural 
" ...
Does'it'compare'to'building'this?' 
' 
• Standard' 
House' 
'
…'or'this?' 
' 
• House???' 
'
…'or'this?' 
' 
• ???' 
'
Level'of'Complexity' 
Simple' 
Everything'is'known' 
Complicated' 
More'is'known'than'unknown' 
Complex' 
More'is'unknown'than'known' 
Chao;c' 
Very'liNle'is'know' 
Source:'Ralph'Stacey,'University'of'HerRordshire'
Empirical'vs'Defined'Processes' 
Defined) Empirical) 
Predict'the'Future' 
Ini;al'informa;on'and'assump;ons'are' 
valid'throughout'the'planning'horizon.' 
' 
Adapt'to'the'Future' 
Frequent'inspec;on/adapta;on'rather' 
than'predic;ve'planning' 
' 
Examples:'' 
assembly'line,'construc;on,'accoun;ng,' 
orchestra' 
Examples:'' 
sales,'marke;ng,'crea;ve'wri;ng,'band' 
Plan' Do' P' D' P' D' P' D' P' D'
Team)(BA,)QA,)Dev,)etc.))creates) 
and)es@mates)Sprint)Backlog)(tasks)' 
• Business)Case) 
• Financing) 
• Scope)&)Approach) 
• Contracts) 
• Ini@al)Release)Plan) 
• Assemble)Team) 
Sprint)Planning) 
1)day) 
• Acceptance)) 
Defined) 
• Team)commits) 
• Tasks)created) 
Product)Owner) 
establishes)vision)and) 
priori@zes)Product)Backlog) 
Sprint 
1)to)4)weeks) 
Releasable) 
Increment) 
Daily)Scrum 
<)15)minutes) 
Burn)down) 
Scrum' 
Sprint)Review 
1/2)day) 
Sprint)Retrospec@ve 
1/2)day) 
Burn)up) 
velocity)
BigDUF'or'LiNleDUF?' 
Monday) Tuesday) Wednesday) Thursday) Friday) 
Sprint)) 
1) 
Sprint)) 
2) 
Sprint)Planning) 
Sprint)Planning) 
LDUF) 
PB)Grooming) 
PB)Crea@on) 
PB)Sizing) 
Release)Planning) 
PB)Grooming) 
Sprint)Review) 
Retrospec@ve) 
Sprint)Review) 
Retrospec@ve)
Non9Func;onal'Requirements' 
" Usability' 
" Scalability' 
" Portability' 
" Maintainability' 
" Availability' 
" Accessibility' 
" Supportability 
" Security 
" Performance 
" Cost 
" Legal 
" Cultural 
" ...
Non9Func;onal'Requirements' 
" Usability' 
" Scalability' 
" Portability' 
" Maintainability' 
" Availability' 
" Accessibility' 
" Supportability 
" Security 
" Performance 
" Cost 
" Legal 
" Cultural 
" ... 
Captured'as:' 
' 
" Acceptance' 
Criteria' 
" Defini;on'of' 
Done' 
" User'Stories'
Sprint'Capacity'over'Time' 
100' 
90' 
80' 
70' 
60' 
50' 
40' 
30' 
20' 
10' 
0' 
Infrastructure'/' 
Architecture' 
Func;onality'
…'but'one'is'different' 
" Usability 
" Scalability 
" Portability 
" Maintainability 
" Availability 
" Accessibility 
" Supportability 
" Security 
" Performance 
" Cost 
" Legal 
" Cultural 
" ...
Most'Important'Architecture'Goal?' 
• Maintainability
Agenda' 
! Agile and Architecture 
! Reducing Technical Risks 
! Team Makeup & Roles 
! Architecture Anti-Patterns
Technical'Debt'in'an'Unhealthy'Team' 
Time'available'for' 
new'feature' 
development' 
Time'struggling'with'' 
complexity'and'debt' 
*From'Scrum.org’s' 
Professional'Scrum'Master' 
cer;fica;on'course'
Yuck.' 
*From'Scrum.org’s' 
Professional'Scrum'Master' 
cer;fica;on'course'
Stabiliza;on:'Plan'vs.'Reality' 
Plan" 
P D P D P D RC P D P D P D RC P D P D P D RC Release 
Actual" 
" 
P D P D P D RC P D P D P D RC P D P D P D RC Stabilization"Release 
*From'Scrum.org’s' 
Professional'Scrum'Master' 
cer;fica;on'course'
How'do'you'get'out'of'debt?' 
1. Stop'crea;ng'debt' 
2. Make'a'small'payment'each'Sprint' 
3. Repeat'from'2' 
*From'Scrum.org’s' 
Professional'Scrum'Master' 
cer;fica;on'course'
• Business)Case) 
• Financing) 
• Scope)&)Approach) 
• Contracts) 
• Ini@al)Release)Plan) 
• Assemble)Team) 
Sprint)Planning) 
1)day) 
• Acceptance)) 
Defined) 
• Team)commits) 
• Tasks)created) 
Product)Owner) 
establishes)vision)and) 
priori@zes)Product)Backlog) 
Sprint 
1)to)4)weeks) 
Daily)Scrum 
<)15)minutes) 
Burn)down) 
Defini;on'of' 
Sprint)Review 
1/2)day) 
Sprint)Retrospec@ve 
1/2)day) 
Burn)up) 
Done)Release?) 
Compliance' 
velocity) 
Team)(BA,)QA,)Dev,)etc.))creates) 
and)es@mates)Sprint)Backlog)(tasks)' 
Sprint)Review 
1/2)day) 
Done)Task?) 
Unit'Tested' 
Code'Reviewed' 
Checked9in' 
others?' 
' 
Done)Feature?) 
Acceptance'Tested' 
On'Test'Server' 
Performance'Tested' 
others?' 
' 
' Done)Sprint?) 
Versioned' 
In'UAT' 
Integrated' 
others?' 
' 
' 
Labeled' 
Training' 
others?' 
' 
' 
Releasable) 
Increment) 
Done'
Paying'off'Debt' 
Feature))Name) Scheduled) Ac@ve) Blocked) Closed) 
' 
Feature''1' 
Task1.4' Task1.2' 
' 
Task1.3' Task1.1' 
Feature''2' 
' 
Task2.3' Task2.1' 
Task2.2' 
Feature''3' Task3.3' Task3.1' 
Task3.2' 
Task3.4'
Paying'off'Debt' 
Feature))Name) Scheduled) Ac@ve) Blocked) Closed) 
' 
Feature''1' 
Task1.4' Task1.2' 
' 
Task1.3' Task1.1' 
Design)Task) 
' 
Feature''2' 
' 
Task2.3' 
Upgrade)Task) 
Task2.1' 
Task2.2' 
ENGINEERING)&) 
MAINTENANCE) 
Eng.)Task)1) 
Bug) 
Eng.)Task)2) Upgrade)Task) 
'
Design Patterns 
!= 
Good Design
What'is'a'PaNern?'
Design'PaNern'Structure' 
Pattern Name: A descriptive and unique name that helps in identifying and referring to the pattern." 
" 
Intent: A description of the goal behind the pattern and the reason for using it." 
" 
Motivation (Forces): A scenario consisting of a problem and a context in which this pattern can be used." 
" 
Structure: A graphical representation of the pattern, such as Class diagrams and Interaction diagrams." 
" 
Consequences: A description of the results, side effects, and trade offs caused by using the pattern." 
" 
Implementation: A description of an implementation of the pattern; the solution part of the pattern." 
" 
Sample Code: An illustration of how the pattern can be used in a programming language" 
" 
Known Uses: Examples of real usages of the pattern." 
" 
Related Patterns: Other patterns that have some relationship with the pattern."
Core'Aspects'of'Good'Design' 
✓✓ Low Coupling 
Good 
Design 
✓ High Cohesion
Coupling'vs.'Cohesion'
Core'Aspects'of'Bad'Design' 
X • Duplication 
Bad 
Design 
• Ambiguity 
• Complexity
Bad'Smells' 
The Bloaters 
Long Method, Large Class, Data Clumps 
The OO Abusers 
Type Attribute, State Attribute, Indecent Exposure 
The Dispensables 
Lazy Class, Dead Code, Data Class 
The Couplers 
Feature Envy, Message Chains, Middleman 
The Change Preventers 
Divergent Change, Shotgun Surgery, Non-localized Logic
How'do'we'get'there?' 
XBad ➔ ✓Good 
Design 
Design
Refactoring' 
X ➔ Design Bad 
✓ Good 
Design 
Refactoring 
to / towards / away from 
Design 
Patterns 
Bad 
Smells
Refactoring' 
X ➔ Design Refactoring 
✓ Good 
to / towards / away from 
Design 
Patterns 
Bad 
Smells 
Encapsulate Field! 
Extract Method ! 
Generalize Type! 
Pull Up! 
Push Down! 
Rename Method ! 
...! 
Bad 
Design
Agenda' 
! Agile and Architecture 
! Reducing Technical Risks 
! Team Makeup & Roles 
! Architecture Anti-Patterns
Ver;cal'Teams' 
TEAM)1) TEAM)2) TEAM)3) TEAM)4) 
Presentation 
Business 
PersisDBt ence
Ver;cal'Features' 
TEAM)1) TEAM)2) TEAM)3) TEAM)4) 
Presentation 
Features' Features' Features' Features' 
Business 
PersisDBt ence
Ideal'Team'Composi;on' 
VP' 
QA' 
'Manager' 
Product'Manager' 
QA' 
QA' 
QA' 
Dev' 
Dev' 
Dev' 
Dev' 
Architecture' 
Manager' 
Architect' 
Architect' 
Architect' 
DBA'' 
Manager' 
DBA' 
DBA' 
Team)A) 
Team)B)
Realis;c'Team'Composi;on' 
VP' 
QA' 
'Manager' 
Product'Manager' 
QA' 
QA' 
QA' 
Dev' 
Dev' 
Dev' 
Dev' 
Architecture' 
Manager' 
Architect' 
Architect' 
Architect' 
DBA'' 
Manager' 
DBA' 
DBA' 
Team)A) 
Team)B) 
What' 
now?'
Specialists '' 
1. IDEAL:'Specialists'are'dedicated'to'a'team'and' 
par;cipate'throughout'the'sprint.' 
' 
2. REALISTIC:'Specialists'service'mul;ple'teams'and' 
par;cipate'as'needed.' 
' 
3. WORST)CASE:'Specialists'do'not'par;cipate'in'a' 
sprint,'but'someone'on'the'team'takes' 
responsibility'for'working'with'them.'
Architect'Roles' 
• Enterprise'Architect'' 
(policies'&'standards)' 
• Infrastructure'Architect'' 
(systems'&'network'design)' 
• Solu;on'Architect'' 
(advisory'&'governance)'' 
• Applica;on'Architect'' 
(on'teams)'
Where'to'Plug'In?' 
Monday) Tuesday) Wednesday) Thursday) Friday) 
Sprint)) 
1) 
Sprint)) 
2) 
Sprint)Planning) 
Sprint)Planning) 
LDUF) 
PB)Grooming) 
PB)Crea@on) 
PB)Sizing) 
Release)Planning) 
PB)Grooming) 
Sprint)Review) 
Retrospec@ve) 
Sprint)Review) 
Retrospec@ve)
Agenda' 
! Agile and Architecture 
! Reducing Technical Risks 
! Team Makeup & Roles 
! Architecture Anti-Patterns
Logic'in'Wrong'Layer' 
Think about what would need to change in other 
layers if one was swapped out or modified. 
Presentation 
Controller Façade 
Business 
Integration 
Persistence 
S 
h 
a 
r 
e 
d
No'Architectural'Vision' 
! A single architecture vision should be well 
defined and communicated across the team and 
organization. 
! The vision should map to business goals and 
objectives. 
! All decisions should be made with this vision in 
mind.
Swiss'Army'Knife' 
! Do not try to anticipate every possible use of the 
system and over-design the interfaces - this will 
lead to needless complexity. 
! Do the simplest thing that works, within 
the Architectural Vision.
Threading' 
Do your homework! 
✓ Typically not necessary 
✓ Adds massive complexity 
✓ Hard to maintain, test, and debug 
✓ Rely on the application frameworks 
threads
Caching' 
Do your homework! 
✓ Do you even need a cache? 
✓ Can you keep everything in memory? 
✓ Rely on persistence framework’s caching
Ivory'Tower'Architect' 
! It is very hard to truly know the best 
solutions for design problems if you are 
not working (coding) on the project. 
! It takes many iterations of a solution 
before it finally works - so you can’t 
suggest a solution then leave.
Custom'Frameworks' 
! May seem like a good idea at first. But... 
– Who will maintain it? 
– Who will upgrade it when it’s depended upon libraries 
are upgraded? Java version? 
– How long will your new hires need to learn it? Who 
will teach them? 
! Look for an off-the-shelf solution first. 
– You can hire/train people on it easier. 
– It will be upgraded for you.
So, to sum up…
Emergent'Architecture' 
Agile'architects'build' 
plans'and'founda;ons' 
that'embrace'change' 
' 
Today’s'technologies'' 
and'enterprise'' 
frameworks'give'us' 
this'flexibility' 
We)just)need)to) 
take)advantage)of) 
them.)
Thank You! 
Don McGreal 
don.mcgreal@ImprovingEnterprises.com 
@donmcgreal 
linkedin.com/in/donmcgreal!
Questions? 
Don McGreal 
don.mcgreal@ImprovingEnterprises.com 
@donmcgreal 
linkedin.com/in/donmcgreal!

More Related Content

What's hot

Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0iasaglobal
 
The tension between agile and architecture
The tension between agile and architectureThe tension between agile and architecture
The tension between agile and architecturePeter Hendriks
 
Are You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software ArchitectAre You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software ArchitectRandy Ynchausti
 
Introduction to Agile Architecture
Introduction to Agile ArchitectureIntroduction to Agile Architecture
Introduction to Agile ArchitectureThomas Malt
 
Refactoring, Emergent Design & Evolutionary Architecture
Refactoring, Emergent Design & Evolutionary ArchitectureRefactoring, Emergent Design & Evolutionary Architecture
Refactoring, Emergent Design & Evolutionary ArchitectureBrad Appleton
 
WANTED: Seeking Single Agile Knowledge Development Tool-set
WANTED: Seeking Single Agile Knowledge Development Tool-setWANTED: Seeking Single Agile Knowledge Development Tool-set
WANTED: Seeking Single Agile Knowledge Development Tool-setBrad Appleton
 
Resource Adaptive Systems
Resource Adaptive SystemsResource Adaptive Systems
Resource Adaptive SystemsTom Mueck
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile ArchitectureSteve Green
 
Documentation in the agile software development process
Documentation in the agile software development processDocumentation in the agile software development process
Documentation in the agile software development processFabian Kiss
 
Emergent Architecture - March 2011
Emergent Architecture - March 2011Emergent Architecture - March 2011
Emergent Architecture - March 2011atlantascrum
 
Agile Overview As V1.2
Agile Overview As V1.2Agile Overview As V1.2
Agile Overview As V1.2Anjan Roy
 
Lightweight Documentation: An Agile Approach
Lightweight Documentation: An Agile ApproachLightweight Documentation: An Agile Approach
Lightweight Documentation: An Agile ApproachStephen Ritchie
 
Agile archiecture iltam 2014
Agile archiecture   iltam 2014Agile archiecture   iltam 2014
Agile archiecture iltam 2014Dani Mannes
 
Utah dot Gov - Site Architecture
Utah dot Gov - Site ArchitectureUtah dot Gov - Site Architecture
Utah dot Gov - Site Architectureiasaglobal
 
Prerequisites for evolutionary architecture
Prerequisites for evolutionary architecturePrerequisites for evolutionary architecture
Prerequisites for evolutionary architectureChris Howe-Jones
 
Postcards From The Agile Frontier Final
Postcards From The Agile Frontier FinalPostcards From The Agile Frontier Final
Postcards From The Agile Frontier FinalElena Yatzeck
 
애자일 아키텍트를 위한 툴 박스
애자일 아키텍트를 위한 툴 박스애자일 아키텍트를 위한 툴 박스
애자일 아키텍트를 위한 툴 박스Sangcheol Hwang
 
O'Reilly Webcast: Ten Things Every Software Architect Should Know
O'Reilly Webcast: Ten Things Every Software Architect Should KnowO'Reilly Webcast: Ten Things Every Software Architect Should Know
O'Reilly Webcast: Ten Things Every Software Architect Should KnowO'Reilly Media
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010Gary Pedretti
 

What's hot (20)

Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0
 
Architectural runway
Architectural runwayArchitectural runway
Architectural runway
 
The tension between agile and architecture
The tension between agile and architectureThe tension between agile and architecture
The tension between agile and architecture
 
Are You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software ArchitectAre You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software Architect
 
Introduction to Agile Architecture
Introduction to Agile ArchitectureIntroduction to Agile Architecture
Introduction to Agile Architecture
 
Refactoring, Emergent Design & Evolutionary Architecture
Refactoring, Emergent Design & Evolutionary ArchitectureRefactoring, Emergent Design & Evolutionary Architecture
Refactoring, Emergent Design & Evolutionary Architecture
 
WANTED: Seeking Single Agile Knowledge Development Tool-set
WANTED: Seeking Single Agile Knowledge Development Tool-setWANTED: Seeking Single Agile Knowledge Development Tool-set
WANTED: Seeking Single Agile Knowledge Development Tool-set
 
Resource Adaptive Systems
Resource Adaptive SystemsResource Adaptive Systems
Resource Adaptive Systems
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile Architecture
 
Documentation in the agile software development process
Documentation in the agile software development processDocumentation in the agile software development process
Documentation in the agile software development process
 
Emergent Architecture - March 2011
Emergent Architecture - March 2011Emergent Architecture - March 2011
Emergent Architecture - March 2011
 
Agile Overview As V1.2
Agile Overview As V1.2Agile Overview As V1.2
Agile Overview As V1.2
 
Lightweight Documentation: An Agile Approach
Lightweight Documentation: An Agile ApproachLightweight Documentation: An Agile Approach
Lightweight Documentation: An Agile Approach
 
Agile archiecture iltam 2014
Agile archiecture   iltam 2014Agile archiecture   iltam 2014
Agile archiecture iltam 2014
 
Utah dot Gov - Site Architecture
Utah dot Gov - Site ArchitectureUtah dot Gov - Site Architecture
Utah dot Gov - Site Architecture
 
Prerequisites for evolutionary architecture
Prerequisites for evolutionary architecturePrerequisites for evolutionary architecture
Prerequisites for evolutionary architecture
 
Postcards From The Agile Frontier Final
Postcards From The Agile Frontier FinalPostcards From The Agile Frontier Final
Postcards From The Agile Frontier Final
 
애자일 아키텍트를 위한 툴 박스
애자일 아키텍트를 위한 툴 박스애자일 아키텍트를 위한 툴 박스
애자일 아키텍트를 위한 툴 박스
 
O'Reilly Webcast: Ten Things Every Software Architect Should Know
O'Reilly Webcast: Ten Things Every Software Architect Should KnowO'Reilly Webcast: Ten Things Every Software Architect Should Know
O'Reilly Webcast: Ten Things Every Software Architect Should Know
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010
 

Viewers also liked

A Series of Fortunate Events - Symfony Camp Sweden 2014
A Series of Fortunate Events - Symfony Camp Sweden 2014A Series of Fortunate Events - Symfony Camp Sweden 2014
A Series of Fortunate Events - Symfony Camp Sweden 2014Matthias Noback
 
A Series of Fortunate Events - PHP Benelux Conference 2015
A Series of Fortunate Events - PHP Benelux Conference 2015A Series of Fortunate Events - PHP Benelux Conference 2015
A Series of Fortunate Events - PHP Benelux Conference 2015Matthias Noback
 
Detecting Bad Smells in Source Code using Change History Information
Detecting Bad Smells in Source Code using Change History InformationDetecting Bad Smells in Source Code using Change History Information
Detecting Bad Smells in Source Code using Change History InformationFabio Palomba
 
Inversion of control
Inversion of controlInversion of control
Inversion of controlEmmet Irish
 
Descending from the architect's ivory tower
Descending from the architect's ivory towerDescending from the architect's ivory tower
Descending from the architect's ivory towerValtech UK
 
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOPINTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOPAmit Midha
 
Introduction to Software Architecture
Introduction to Software ArchitectureIntroduction to Software Architecture
Introduction to Software ArchitectureYuriy Guts
 
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?Jason Bloomberg
 
Cloud application architecture with sql azure and windows azure
Cloud application architecture with sql azure and windows azureCloud application architecture with sql azure and windows azure
Cloud application architecture with sql azure and windows azureEduardo Castro
 
Cloud computing simple ppt
Cloud computing simple pptCloud computing simple ppt
Cloud computing simple pptAgarwaljay
 

Viewers also liked (12)

A Series of Fortunate Events - Symfony Camp Sweden 2014
A Series of Fortunate Events - Symfony Camp Sweden 2014A Series of Fortunate Events - Symfony Camp Sweden 2014
A Series of Fortunate Events - Symfony Camp Sweden 2014
 
A Series of Fortunate Events - PHP Benelux Conference 2015
A Series of Fortunate Events - PHP Benelux Conference 2015A Series of Fortunate Events - PHP Benelux Conference 2015
A Series of Fortunate Events - PHP Benelux Conference 2015
 
Detecting Bad Smells in Source Code using Change History Information
Detecting Bad Smells in Source Code using Change History InformationDetecting Bad Smells in Source Code using Change History Information
Detecting Bad Smells in Source Code using Change History Information
 
Inversion of control
Inversion of controlInversion of control
Inversion of control
 
Descending from the architect's ivory tower
Descending from the architect's ivory towerDescending from the architect's ivory tower
Descending from the architect's ivory tower
 
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOPINTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
 
Introduction to Software Architecture
Introduction to Software ArchitectureIntroduction to Software Architecture
Introduction to Software Architecture
 
Designing Products for Cellular Assembly
Designing Products for Cellular AssemblyDesigning Products for Cellular Assembly
Designing Products for Cellular Assembly
 
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
Cloud application architecture with sql azure and windows azure
Cloud application architecture with sql azure and windows azureCloud application architecture with sql azure and windows azure
Cloud application architecture with sql azure and windows azure
 
Cloud computing simple ppt
Cloud computing simple pptCloud computing simple ppt
Cloud computing simple ppt
 

Similar to Architecture in an Agile World

The Agile PMP - Pillar Technology
The Agile PMP - Pillar TechnologyThe Agile PMP - Pillar Technology
The Agile PMP - Pillar TechnologyMike Cottmeyer
 
A question of craftsmanship
A question of craftsmanshipA question of craftsmanship
A question of craftsmanshipAgileOnTheBeach
 
2 Years of Real World FP at REA
2 Years of Real World FP at REA2 Years of Real World FP at REA
2 Years of Real World FP at REAkenbot
 
Better Quality through Scrum (2011)
Better Quality through Scrum (2011)Better Quality through Scrum (2011)
Better Quality through Scrum (2011)Dominik Jungowski
 
Mark Tortoricci - Talent42 2015
Mark Tortoricci - Talent42 2015Mark Tortoricci - Talent42 2015
Mark Tortoricci - Talent42 2015Talent42
 
The Agile Manifesto in the Star Wars Universe
The Agile Manifesto in the Star Wars UniverseThe Agile Manifesto in the Star Wars Universe
The Agile Manifesto in the Star Wars UniverseAaron Griffith
 
Agility and the Customer Experience
Agility and the Customer ExperienceAgility and the Customer Experience
Agility and the Customer ExperienceThoughtworks
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkJoseph Yoder
 
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship CultureTechnical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship CultureAllison Pollard
 
Design Processes and Systems in Craft
Design Processes and Systems in CraftDesign Processes and Systems in Craft
Design Processes and Systems in CraftCourtney Bradford
 
By Thoughtworks | Reviving the art of software design with Andy Marks and Pam...
By Thoughtworks | Reviving the art of software design with Andy Marks and Pam...By Thoughtworks | Reviving the art of software design with Andy Marks and Pam...
By Thoughtworks | Reviving the art of software design with Andy Marks and Pam...IngridBuenaventura
 
5 Practices for Better, Cheaper, Faster Service Delivery
5 Practices for Better, Cheaper, Faster Service Delivery5 Practices for Better, Cheaper, Faster Service Delivery
5 Practices for Better, Cheaper, Faster Service DeliveryRob Schoening
 
boolean search.pdf
boolean search.pdfboolean search.pdf
boolean search.pdfmahasin5
 
L'illusione dell'ortogonalità
L'illusione dell'ortogonalitàL'illusione dell'ortogonalità
L'illusione dell'ortogonalitàAlberto Brandolini
 
Digital Success Stack for DCBKK 2018
Digital Success Stack for DCBKK 2018Digital Success Stack for DCBKK 2018
Digital Success Stack for DCBKK 2018Kyvio
 
.NET Architecture for Enterprises
.NET Architecture for Enterprises.NET Architecture for Enterprises
.NET Architecture for EnterprisesWade Wegner
 
Agile and Beyond :: The Technical Debt Trap
Agile and Beyond :: The Technical Debt TrapAgile and Beyond :: The Technical Debt Trap
Agile and Beyond :: The Technical Debt TrapDoc Norton
 
Agile101 Barcamp
Agile101 BarcampAgile101 Barcamp
Agile101 Barcampunbrand
 
Refactoring for Software Design Smells - Tech Talk
Refactoring for Software Design Smells - Tech TalkRefactoring for Software Design Smells - Tech Talk
Refactoring for Software Design Smells - Tech TalkGanesh Samarthyam
 
YOW! Perth 2022 - Reviving the Art of Software Design
YOW! Perth 2022 - Reviving the Art of Software DesignYOW! Perth 2022 - Reviving the Art of Software Design
YOW! Perth 2022 - Reviving the Art of Software DesignAndy Marks
 

Similar to Architecture in an Agile World (20)

The Agile PMP - Pillar Technology
The Agile PMP - Pillar TechnologyThe Agile PMP - Pillar Technology
The Agile PMP - Pillar Technology
 
A question of craftsmanship
A question of craftsmanshipA question of craftsmanship
A question of craftsmanship
 
2 Years of Real World FP at REA
2 Years of Real World FP at REA2 Years of Real World FP at REA
2 Years of Real World FP at REA
 
Better Quality through Scrum (2011)
Better Quality through Scrum (2011)Better Quality through Scrum (2011)
Better Quality through Scrum (2011)
 
Mark Tortoricci - Talent42 2015
Mark Tortoricci - Talent42 2015Mark Tortoricci - Talent42 2015
Mark Tortoricci - Talent42 2015
 
The Agile Manifesto in the Star Wars Universe
The Agile Manifesto in the Star Wars UniverseThe Agile Manifesto in the Star Wars Universe
The Agile Manifesto in the Star Wars Universe
 
Agility and the Customer Experience
Agility and the Customer ExperienceAgility and the Customer Experience
Agility and the Customer Experience
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
 
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship CultureTechnical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
 
Design Processes and Systems in Craft
Design Processes and Systems in CraftDesign Processes and Systems in Craft
Design Processes and Systems in Craft
 
By Thoughtworks | Reviving the art of software design with Andy Marks and Pam...
By Thoughtworks | Reviving the art of software design with Andy Marks and Pam...By Thoughtworks | Reviving the art of software design with Andy Marks and Pam...
By Thoughtworks | Reviving the art of software design with Andy Marks and Pam...
 
5 Practices for Better, Cheaper, Faster Service Delivery
5 Practices for Better, Cheaper, Faster Service Delivery5 Practices for Better, Cheaper, Faster Service Delivery
5 Practices for Better, Cheaper, Faster Service Delivery
 
boolean search.pdf
boolean search.pdfboolean search.pdf
boolean search.pdf
 
L'illusione dell'ortogonalità
L'illusione dell'ortogonalitàL'illusione dell'ortogonalità
L'illusione dell'ortogonalità
 
Digital Success Stack for DCBKK 2018
Digital Success Stack for DCBKK 2018Digital Success Stack for DCBKK 2018
Digital Success Stack for DCBKK 2018
 
.NET Architecture for Enterprises
.NET Architecture for Enterprises.NET Architecture for Enterprises
.NET Architecture for Enterprises
 
Agile and Beyond :: The Technical Debt Trap
Agile and Beyond :: The Technical Debt TrapAgile and Beyond :: The Technical Debt Trap
Agile and Beyond :: The Technical Debt Trap
 
Agile101 Barcamp
Agile101 BarcampAgile101 Barcamp
Agile101 Barcamp
 
Refactoring for Software Design Smells - Tech Talk
Refactoring for Software Design Smells - Tech TalkRefactoring for Software Design Smells - Tech Talk
Refactoring for Software Design Smells - Tech Talk
 
YOW! Perth 2022 - Reviving the Art of Software Design
YOW! Perth 2022 - Reviving the Art of Software DesignYOW! Perth 2022 - Reviving the Art of Software Design
YOW! Perth 2022 - Reviving the Art of Software Design
 

Recently uploaded

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

Architecture in an Agile World

  • 1. Architecture)in)an)) Agile)World) Don McGreal don.mcgreal@ImprovingEnterprises.com @donmcgreal linkedin.com/in/donmcgreal!
  • 2. Agenda' ! Agile and Architecture ! Reducing Technical Risks ! Team Makeup & Roles ! Architecture Anti-Patterns
  • 4. Business'Goals' • What business goals could affect our Architectural decisions?
  • 5. Non9Func;onal'Requirements' " Usability' " Scalability' " Portability' " Maintainability' " Availability' " Accessibility' " Supportability " Security " Performance " Cost " Legal " Cultural " ...
  • 7. …'or'this?' ' • House???' '
  • 9. Level'of'Complexity' Simple' Everything'is'known' Complicated' More'is'known'than'unknown' Complex' More'is'unknown'than'known' Chao;c' Very'liNle'is'know' Source:'Ralph'Stacey,'University'of'HerRordshire'
  • 10. Empirical'vs'Defined'Processes' Defined) Empirical) Predict'the'Future' Ini;al'informa;on'and'assump;ons'are' valid'throughout'the'planning'horizon.' ' Adapt'to'the'Future' Frequent'inspec;on/adapta;on'rather' than'predic;ve'planning' ' Examples:'' assembly'line,'construc;on,'accoun;ng,' orchestra' Examples:'' sales,'marke;ng,'crea;ve'wri;ng,'band' Plan' Do' P' D' P' D' P' D' P' D'
  • 11. Team)(BA,)QA,)Dev,)etc.))creates) and)es@mates)Sprint)Backlog)(tasks)' • Business)Case) • Financing) • Scope)&)Approach) • Contracts) • Ini@al)Release)Plan) • Assemble)Team) Sprint)Planning) 1)day) • Acceptance)) Defined) • Team)commits) • Tasks)created) Product)Owner) establishes)vision)and) priori@zes)Product)Backlog) Sprint 1)to)4)weeks) Releasable) Increment) Daily)Scrum <)15)minutes) Burn)down) Scrum' Sprint)Review 1/2)day) Sprint)Retrospec@ve 1/2)day) Burn)up) velocity)
  • 12. BigDUF'or'LiNleDUF?' Monday) Tuesday) Wednesday) Thursday) Friday) Sprint)) 1) Sprint)) 2) Sprint)Planning) Sprint)Planning) LDUF) PB)Grooming) PB)Crea@on) PB)Sizing) Release)Planning) PB)Grooming) Sprint)Review) Retrospec@ve) Sprint)Review) Retrospec@ve)
  • 13. Non9Func;onal'Requirements' " Usability' " Scalability' " Portability' " Maintainability' " Availability' " Accessibility' " Supportability " Security " Performance " Cost " Legal " Cultural " ...
  • 14. Non9Func;onal'Requirements' " Usability' " Scalability' " Portability' " Maintainability' " Availability' " Accessibility' " Supportability " Security " Performance " Cost " Legal " Cultural " ... Captured'as:' ' " Acceptance' Criteria' " Defini;on'of' Done' " User'Stories'
  • 15. Sprint'Capacity'over'Time' 100' 90' 80' 70' 60' 50' 40' 30' 20' 10' 0' Infrastructure'/' Architecture' Func;onality'
  • 16. …'but'one'is'different' " Usability " Scalability " Portability " Maintainability " Availability " Accessibility " Supportability " Security " Performance " Cost " Legal " Cultural " ...
  • 18. Agenda' ! Agile and Architecture ! Reducing Technical Risks ! Team Makeup & Roles ! Architecture Anti-Patterns
  • 19. Technical'Debt'in'an'Unhealthy'Team' Time'available'for' new'feature' development' Time'struggling'with'' complexity'and'debt' *From'Scrum.org’s' Professional'Scrum'Master' cer;fica;on'course'
  • 21. Stabiliza;on:'Plan'vs.'Reality' Plan" P D P D P D RC P D P D P D RC P D P D P D RC Release Actual" " P D P D P D RC P D P D P D RC P D P D P D RC Stabilization"Release *From'Scrum.org’s' Professional'Scrum'Master' cer;fica;on'course'
  • 22. How'do'you'get'out'of'debt?' 1. Stop'crea;ng'debt' 2. Make'a'small'payment'each'Sprint' 3. Repeat'from'2' *From'Scrum.org’s' Professional'Scrum'Master' cer;fica;on'course'
  • 23. • Business)Case) • Financing) • Scope)&)Approach) • Contracts) • Ini@al)Release)Plan) • Assemble)Team) Sprint)Planning) 1)day) • Acceptance)) Defined) • Team)commits) • Tasks)created) Product)Owner) establishes)vision)and) priori@zes)Product)Backlog) Sprint 1)to)4)weeks) Daily)Scrum <)15)minutes) Burn)down) Defini;on'of' Sprint)Review 1/2)day) Sprint)Retrospec@ve 1/2)day) Burn)up) Done)Release?) Compliance' velocity) Team)(BA,)QA,)Dev,)etc.))creates) and)es@mates)Sprint)Backlog)(tasks)' Sprint)Review 1/2)day) Done)Task?) Unit'Tested' Code'Reviewed' Checked9in' others?' ' Done)Feature?) Acceptance'Tested' On'Test'Server' Performance'Tested' others?' ' ' Done)Sprint?) Versioned' In'UAT' Integrated' others?' ' ' Labeled' Training' others?' ' ' Releasable) Increment) Done'
  • 24. Paying'off'Debt' Feature))Name) Scheduled) Ac@ve) Blocked) Closed) ' Feature''1' Task1.4' Task1.2' ' Task1.3' Task1.1' Feature''2' ' Task2.3' Task2.1' Task2.2' Feature''3' Task3.3' Task3.1' Task3.2' Task3.4'
  • 25. Paying'off'Debt' Feature))Name) Scheduled) Ac@ve) Blocked) Closed) ' Feature''1' Task1.4' Task1.2' ' Task1.3' Task1.1' Design)Task) ' Feature''2' ' Task2.3' Upgrade)Task) Task2.1' Task2.2' ENGINEERING)&) MAINTENANCE) Eng.)Task)1) Bug) Eng.)Task)2) Upgrade)Task) '
  • 26. Design Patterns != Good Design
  • 28. Design'PaNern'Structure' Pattern Name: A descriptive and unique name that helps in identifying and referring to the pattern." " Intent: A description of the goal behind the pattern and the reason for using it." " Motivation (Forces): A scenario consisting of a problem and a context in which this pattern can be used." " Structure: A graphical representation of the pattern, such as Class diagrams and Interaction diagrams." " Consequences: A description of the results, side effects, and trade offs caused by using the pattern." " Implementation: A description of an implementation of the pattern; the solution part of the pattern." " Sample Code: An illustration of how the pattern can be used in a programming language" " Known Uses: Examples of real usages of the pattern." " Related Patterns: Other patterns that have some relationship with the pattern."
  • 29. Core'Aspects'of'Good'Design' ✓✓ Low Coupling Good Design ✓ High Cohesion
  • 31. Core'Aspects'of'Bad'Design' X • Duplication Bad Design • Ambiguity • Complexity
  • 32. Bad'Smells' The Bloaters Long Method, Large Class, Data Clumps The OO Abusers Type Attribute, State Attribute, Indecent Exposure The Dispensables Lazy Class, Dead Code, Data Class The Couplers Feature Envy, Message Chains, Middleman The Change Preventers Divergent Change, Shotgun Surgery, Non-localized Logic
  • 33. How'do'we'get'there?' XBad ➔ ✓Good Design Design
  • 34. Refactoring' X ➔ Design Bad ✓ Good Design Refactoring to / towards / away from Design Patterns Bad Smells
  • 35. Refactoring' X ➔ Design Refactoring ✓ Good to / towards / away from Design Patterns Bad Smells Encapsulate Field! Extract Method ! Generalize Type! Pull Up! Push Down! Rename Method ! ...! Bad Design
  • 36. Agenda' ! Agile and Architecture ! Reducing Technical Risks ! Team Makeup & Roles ! Architecture Anti-Patterns
  • 37. Ver;cal'Teams' TEAM)1) TEAM)2) TEAM)3) TEAM)4) Presentation Business PersisDBt ence
  • 38. Ver;cal'Features' TEAM)1) TEAM)2) TEAM)3) TEAM)4) Presentation Features' Features' Features' Features' Business PersisDBt ence
  • 39. Ideal'Team'Composi;on' VP' QA' 'Manager' Product'Manager' QA' QA' QA' Dev' Dev' Dev' Dev' Architecture' Manager' Architect' Architect' Architect' DBA'' Manager' DBA' DBA' Team)A) Team)B)
  • 40. Realis;c'Team'Composi;on' VP' QA' 'Manager' Product'Manager' QA' QA' QA' Dev' Dev' Dev' Dev' Architecture' Manager' Architect' Architect' Architect' DBA'' Manager' DBA' DBA' Team)A) Team)B) What' now?'
  • 41. Specialists '' 1. IDEAL:'Specialists'are'dedicated'to'a'team'and' par;cipate'throughout'the'sprint.' ' 2. REALISTIC:'Specialists'service'mul;ple'teams'and' par;cipate'as'needed.' ' 3. WORST)CASE:'Specialists'do'not'par;cipate'in'a' sprint,'but'someone'on'the'team'takes' responsibility'for'working'with'them.'
  • 42. Architect'Roles' • Enterprise'Architect'' (policies'&'standards)' • Infrastructure'Architect'' (systems'&'network'design)' • Solu;on'Architect'' (advisory'&'governance)'' • Applica;on'Architect'' (on'teams)'
  • 43. Where'to'Plug'In?' Monday) Tuesday) Wednesday) Thursday) Friday) Sprint)) 1) Sprint)) 2) Sprint)Planning) Sprint)Planning) LDUF) PB)Grooming) PB)Crea@on) PB)Sizing) Release)Planning) PB)Grooming) Sprint)Review) Retrospec@ve) Sprint)Review) Retrospec@ve)
  • 44. Agenda' ! Agile and Architecture ! Reducing Technical Risks ! Team Makeup & Roles ! Architecture Anti-Patterns
  • 45. Logic'in'Wrong'Layer' Think about what would need to change in other layers if one was swapped out or modified. Presentation Controller Façade Business Integration Persistence S h a r e d
  • 46. No'Architectural'Vision' ! A single architecture vision should be well defined and communicated across the team and organization. ! The vision should map to business goals and objectives. ! All decisions should be made with this vision in mind.
  • 47. Swiss'Army'Knife' ! Do not try to anticipate every possible use of the system and over-design the interfaces - this will lead to needless complexity. ! Do the simplest thing that works, within the Architectural Vision.
  • 48. Threading' Do your homework! ✓ Typically not necessary ✓ Adds massive complexity ✓ Hard to maintain, test, and debug ✓ Rely on the application frameworks threads
  • 49. Caching' Do your homework! ✓ Do you even need a cache? ✓ Can you keep everything in memory? ✓ Rely on persistence framework’s caching
  • 50. Ivory'Tower'Architect' ! It is very hard to truly know the best solutions for design problems if you are not working (coding) on the project. ! It takes many iterations of a solution before it finally works - so you can’t suggest a solution then leave.
  • 51. Custom'Frameworks' ! May seem like a good idea at first. But... – Who will maintain it? – Who will upgrade it when it’s depended upon libraries are upgraded? Java version? – How long will your new hires need to learn it? Who will teach them? ! Look for an off-the-shelf solution first. – You can hire/train people on it easier. – It will be upgraded for you.
  • 52. So, to sum up…
  • 53. Emergent'Architecture' Agile'architects'build' plans'and'founda;ons' that'embrace'change' ' Today’s'technologies'' and'enterprise'' frameworks'give'us' this'flexibility' We)just)need)to) take)advantage)of) them.)
  • 54. Thank You! Don McGreal don.mcgreal@ImprovingEnterprises.com @donmcgreal linkedin.com/in/donmcgreal!
  • 55. Questions? Don McGreal don.mcgreal@ImprovingEnterprises.com @donmcgreal linkedin.com/in/donmcgreal!