Architecture in an Agile World
description
Transcript of Architecture in an Agile World
![Page 1: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/1.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Architecture in an Agile World
Don McGreal
@donmcgreal
linkedin.com/in/donmcgreal
![Page 2: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/2.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
![Page 3: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/3.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Agenda
Agile and Architecture
Reducing Technical Risks
Team Makeup & Roles
Architecture Anti-Patterns
![Page 4: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/4.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com5
What is Software Architecture?
![Page 5: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/5.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com6
Business Goals
What business goals could affect our Architectural decisions?
![Page 6: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/6.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com7
Non-Functional Requirements
Usability
Scalability
Portability
Maintainability
Availability
Accessibility
Supportability
Security
Performance
Cost
Legal
Cultural
...
![Page 7: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/7.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Does it compare to building this?
House
![Page 8: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/8.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
… or this?
???
![Page 9: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/9.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Level of Complexity
SimpleEverything is known
ComplicatedMore is known than unknown
ComplexMore is unknown than known
ChaoticVery little is know
Source: Ralph Stacey, University of Hertfordshire
![Page 10: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/10.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Empirical vs Defined ProcessesDefined Empirical
Predict the FutureInitial information and assumptions are valid throughout the planning horizon.
Adapt to the FutureFrequent inspection/adaptation rather than predictive planning
Examples: assembly line, construction, accounting, orchestra
Examples: sales, marketing, creative writing, band
Plan Do P D P D P D P D
![Page 11: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/11.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
• Business Case• Financing• Scope & Approach• Contracts• Initial Release Plan• Assemble Team
Sprint Planning 1 day
•Acceptance Defined•Team commits•Tasks created
Product Owner establishes vision and
prioritizes Product Backlog
Sprint1 to 4 weeks
Team (BA, QA, Dev, etc.) createsand estimates Sprint Backlog (tasks)
ReleasableIncrement
Daily Scrum< 15 minutes
Burn down
Sprint Review1/2 day
Sprint Retrospective1/2 day
Burn up
velocity
Scrum
![Page 12: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/12.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
BigDUF or LittleDUF?Monday Tuesday Wednesday Thursday Friday
Sprint 1
Sprint 2
Sprint Planning
LDUF
PB Grooming
PB CreationPB Sizing
Release Planning
PB Grooming
Retrospective
Sprint Review
RetrospectiveSprint Review
![Page 13: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/13.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com14
Non-Functional Requirements
Usability
Scalability
Portability
Maintainability
Availability
Accessibility
Supportability
Security
Performance
Cost
Legal
Cultural
...
![Page 14: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/14.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com15
Non-Functional Requirements
Usability
Scalability
Portability
Maintainability
Availability
Accessibility
Supportability
Security
Performance
Cost
Legal
Cultural
...
Captured as:
•Acceptance Criteria•Definition of Done•Stories
![Page 15: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/15.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Sprint Capacity over Time
![Page 16: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/16.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
… but one is different
Usability
Scalability
Portability
Maintainability
Availability
Accessibility
Supportability
Security
Performance
Cost
Legal
Cultural
...
![Page 17: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/17.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Most Important Architecture Goal?
Maintainability
![Page 18: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/18.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Agenda
Agile and Architecture
Reducing Technical Risks
Team Makeup & Roles
Architecture Anti-Patterns
![Page 19: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/19.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
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
certification course
![Page 20: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/20.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Yuck.
*From Scrum.org’s Professional Scrum Master
certification course
![Page 21: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/21.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
How do you get out of debt?
*From Scrum.org’s Professional Scrum Master
certification course
1. Stop creating debt
2. Make a small payment each Sprint
3. Repeat from 2
![Page 22: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/22.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Sprint Planning 1 day
•Acceptance Defined•Team commits•Tasks created
Product Owner establishes vision and
prioritizes Product Backlog
Sprint1 to 4 weeks
Team (BA, QA, Dev, etc.) createsand estimates Sprint Backlog (tasks)
ReleasableIncrement
Daily Scrum< 15 minutes
Sprint Retrospective1/2 day
Sprint Review1/2 day
Done Task?Unit Tested
Code ReviewedChecked-in
others?
Done Task?Unit Tested
Code ReviewedChecked-in
others?
Done Feature?Acceptance Tested
On Test ServerPerformance Tested
others?
Done Feature?Acceptance Tested
On Test ServerPerformance Tested
others?
Sprint Review1/2 day
Done Sprint?Versioned
In UATIntegrated
others?
Done Sprint?Versioned
In UATIntegrated
others?
ReleasableIncrement
Done Release?Compliance
LabeledTrainingothers?
Done Release?Compliance
LabeledTrainingothers?
Definition of Done
![Page 23: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/23.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Paying off Debt
Feature Name
Scheduled Active Blocked Closed
Feature 1Task1.4 Task1.2 Task1.3 Task1.1
Feature 2 Task2.3 Task2.1Task2.2
Feature 3 Task3.3 Task3.1Task3.2Task3.4
![Page 24: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/24.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Paying off Debt
Feature Name
Scheduled Active Blocked Closed
Feature 1Task1.4 Task1.2 Task1.3 Task1.1
Design Task
Feature 2 Task2.3Upgrade Task
Task2.1Task2.2
ENGINEERING &
MAINTENANCE
Eng. Task 1Bug
Eng. Task 2 Upgrade Task
![Page 25: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/25.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Design PatternsDesign Patterns!=!=
Good DesignGood Design
![Page 26: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/26.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Core Aspects of Good Design
✓✓GoodGoodDesignDesign
✓ Low Coupling
✓ High Cohesion
![Page 27: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/27.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Coupling vs. Cohesion
![Page 28: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/28.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Core Aspects of Bad Design
.
XXBadBadDesignDesign
• Duplication
• Ambiguity .
• Complexity
![Page 29: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/29.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Bad Smells
The Bloaters
The OO Abusers
The Change Preventers
The Dispensables
The Couplers
Long Method, Large Class, Data Clumps
Type Attribute, State Attribute, Indecent Exposure
Lazy Class, Dead Code, Data Class
Feature Envy, Message Chains, Middleman
Divergent Change, Shotgun Surgery, Non-localized Logic
![Page 30: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/30.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
How do we get there?
✓✓GoodGoodDesignDesign➔➔XXBadBad
DesignDesign
![Page 31: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/31.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Refactoring
✓✓GoodGoodDesignDesign➔➔XXBadBad
DesignDesign
RefactoringRefactoringto / towards / away fromto / towards / away from
DesignDesignPatternsPatterns
BadBadSmellsSmells
![Page 32: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/32.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Refactoring
✓✓GoodGoodDesignDesign➔➔XXBadBad
DesignDesign
RefactoringRefactoringto / towards / away fromto / towards / away from
DesignDesignPatternsPatterns
BadBadSmellsSmells
Encapsulate Field
Extract Method
Generalize Type
Pull Up
Push Down
Rename Method
...
![Page 33: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/33.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Agenda
Agile and Architecture
Reducing Technical Risks
Team Makeup & Roles
Architecture Anti-Patterns
![Page 34: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/34.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Vertical Teams
BusinessBusiness
PresentationPresentation
DBPersistencePersistence
TEAM 1 TEAM 2 TEAM 3 TEAM 4
![Page 35: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/35.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Vertical Features
BusinessBusiness
PresentationPresentation
DBPersistencePersistence
TEAM 1 TEAM 2 TEAM 3 TEAM 4
Features Features Features Features
![Page 36: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/36.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Ideal Team Composition
Team A
Team B
![Page 37: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/37.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Realistic Team Composition
Team A
Team BWhat now?What now?What now?What now?
![Page 38: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/38.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Specialists
1. IDEAL: Specialists are dedicated to a team and participate throughout the sprint.
2. REALISTIC: Specialists service multiple teams and participate as needed.
3. WORST CASE: Specialists do not participate in a sprint, but someone on the team takes responsibility for working with them.
![Page 39: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/39.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Architect RolesEnterprise Architect (policies & standards)
Infrastructure Architect (systems & network design)
Solution Architect (advisory & governance)
Application Architect (on teams)
![Page 40: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/40.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Where to Plug In?Monday Tuesday Wednesday Thursday Friday
Sprint 1
Sprint 2
Sprint Planning
LDUF
PB Grooming
PB CreationPB Sizing
Release Planning
PB Grooming
Retrospective
Sprint Review
RetrospectiveSprint Review
![Page 41: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/41.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Agenda
Agile and Architecture
Reducing Technical Risks
Team Makeup & Roles
Architecture Anti-Patterns
![Page 42: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/42.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Logic in Wrong Layer
Think about what would need to change in other layers if one was swapped out or modified.
Business
Presentation
Persistence
Controller Façade
Integration
Shared
![Page 43: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/43.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
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.
![Page 44: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/44.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
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.
![Page 45: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/45.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Threading
Do your homework!
✓ Typically not necessary
✓ Adds massive complexity
✓ Hard to maintain, test, and debug
✓ Rely on the application frameworks
threads
![Page 46: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/46.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Caching
Do your homework!
✓ Do you even need a cache?
✓ Can you keep everything in memory?
✓ Rely on persistence framework’s caching
![Page 47: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/47.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
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.
![Page 48: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/48.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
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.
![Page 49: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/49.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
So, to sum up…
![Page 50: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/50.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Emergent ArchitectureAgile architects build plans and foundations that embrace change
Today’s technologies and enterprise frameworks give usthis flexibility
We just need to take advantage
of them.
We just need to take advantage
of them.
![Page 51: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/51.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Questions?
Don McGreal
@donmcgreal
linkedin.com/in/donmcgreal
![Page 52: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/52.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Thank You!
Don McGreal
@donmcgreal
linkedin.com/in/donmcgreal
![Page 53: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/53.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Questions?
www.synerzip.com Hemant Elhence
![Page 54: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/54.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.comConfidential
Synerzip in a Nut-shell1. Software product development partner for small/mid-
sized technology companiesExclusive focus on small/mid-sized technology companies, typically venture-backed companies in growth phaseBy definition, all Synerzip work is the IP of its respective clientsDeep experience in full SDLC – design, dev, QA/testing, deployment
2. Dedicated team of high caliber software professionals for each client
Seamlessly extends client’s local team, offering full transparencyStable teams with very low turn-overNOT just “staff augmentation”, but provide full mgmt support
3. Actually reduces risk of development/deliveryExperienced team - uses appropriate level of engineering disciplinePractices Agile development – responsive, yet disciplined
4. Reduces cost – dual-shore team, 50% cost advantage5. Offers long term flexibility – allows (facilitates) taking
offshore team captive – aka “BOT” option
![Page 55: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/55.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com
Our Clients
![Page 56: Architecture in an Agile World](https://reader035.fdocuments.in/reader035/viewer/2022062314/56814553550346895db22272/html5/thumbnails/56.jpg)
©2012 Improving Enterprises, Inc. www.synerzip.com60
Call Us for a Free Consultation!
www.synerzip.com Hemant Elhence
Thanks!