Architecture in an Agile World
description
Transcript of Architecture in an Agile World
©2012 Improving Enterprises, Inc. www.synerzip.com
Architecture in an Agile World
Don McGreal
@donmcgreal
linkedin.com/in/donmcgreal
©2012 Improving Enterprises, Inc. www.synerzip.com
©2012 Improving Enterprises, Inc. www.synerzip.com
Agenda
Agile and Architecture
Reducing Technical Risks
Team Makeup & Roles
Architecture Anti-Patterns
©2012 Improving Enterprises, Inc. www.synerzip.com5
What is Software Architecture?
©2012 Improving Enterprises, Inc. www.synerzip.com6
Business Goals
What business goals could affect our Architectural decisions?
©2012 Improving Enterprises, Inc. www.synerzip.com7
Non-Functional Requirements
Usability
Scalability
Portability
Maintainability
Availability
Accessibility
Supportability
Security
Performance
Cost
Legal
Cultural
...
©2012 Improving Enterprises, Inc. www.synerzip.com
Does it compare to building this?
House
©2012 Improving Enterprises, Inc. www.synerzip.com
… or this?
???
©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
©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
©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
©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
©2012 Improving Enterprises, Inc. www.synerzip.com14
Non-Functional Requirements
Usability
Scalability
Portability
Maintainability
Availability
Accessibility
Supportability
Security
Performance
Cost
Legal
Cultural
...
©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
©2012 Improving Enterprises, Inc. www.synerzip.com
Sprint Capacity over Time
©2012 Improving Enterprises, Inc. www.synerzip.com
… but one is different
Usability
Scalability
Portability
Maintainability
Availability
Accessibility
Supportability
Security
Performance
Cost
Legal
Cultural
...
©2012 Improving Enterprises, Inc. www.synerzip.com
Most Important Architecture Goal?
Maintainability
©2012 Improving Enterprises, Inc. www.synerzip.com
Agenda
Agile and Architecture
Reducing Technical Risks
Team Makeup & Roles
Architecture Anti-Patterns
©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
©2012 Improving Enterprises, Inc. www.synerzip.com
Yuck.
*From Scrum.org’s Professional Scrum Master
certification course
©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
©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
©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
©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
©2012 Improving Enterprises, Inc. www.synerzip.com
Design PatternsDesign Patterns!=!=
Good DesignGood Design
©2012 Improving Enterprises, Inc. www.synerzip.com
Core Aspects of Good Design
✓✓GoodGoodDesignDesign
✓ Low Coupling
✓ High Cohesion
©2012 Improving Enterprises, Inc. www.synerzip.com
Coupling vs. Cohesion
©2012 Improving Enterprises, Inc. www.synerzip.com
Core Aspects of Bad Design
.
XXBadBadDesignDesign
• Duplication
• Ambiguity .
• Complexity
©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
©2012 Improving Enterprises, Inc. www.synerzip.com
How do we get there?
✓✓GoodGoodDesignDesign➔➔XXBadBad
DesignDesign
©2012 Improving Enterprises, Inc. www.synerzip.com
Refactoring
✓✓GoodGoodDesignDesign➔➔XXBadBad
DesignDesign
RefactoringRefactoringto / towards / away fromto / towards / away from
DesignDesignPatternsPatterns
BadBadSmellsSmells
©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
...
©2012 Improving Enterprises, Inc. www.synerzip.com
Agenda
Agile and Architecture
Reducing Technical Risks
Team Makeup & Roles
Architecture Anti-Patterns
©2012 Improving Enterprises, Inc. www.synerzip.com
Vertical Teams
BusinessBusiness
PresentationPresentation
DBPersistencePersistence
TEAM 1 TEAM 2 TEAM 3 TEAM 4
©2012 Improving Enterprises, Inc. www.synerzip.com
Vertical Features
BusinessBusiness
PresentationPresentation
DBPersistencePersistence
TEAM 1 TEAM 2 TEAM 3 TEAM 4
Features Features Features Features
©2012 Improving Enterprises, Inc. www.synerzip.com
Ideal Team Composition
Team A
Team B
©2012 Improving Enterprises, Inc. www.synerzip.com
Realistic Team Composition
Team A
Team BWhat now?What now?What now?What now?
©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.
©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)
©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
©2012 Improving Enterprises, Inc. www.synerzip.com
Agenda
Agile and Architecture
Reducing Technical Risks
Team Makeup & Roles
Architecture Anti-Patterns
©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
©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.
©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.
©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
©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
©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.
©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.
©2012 Improving Enterprises, Inc. www.synerzip.com
So, to sum up…
©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.
©2012 Improving Enterprises, Inc. www.synerzip.com
Questions?
Don McGreal
@donmcgreal
linkedin.com/in/donmcgreal
©2012 Improving Enterprises, Inc. www.synerzip.com
Thank You!
Don McGreal
@donmcgreal
linkedin.com/in/donmcgreal
©2012 Improving Enterprises, Inc. www.synerzip.com
Questions?
www.synerzip.com Hemant Elhence
©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
©2012 Improving Enterprises, Inc. www.synerzip.com
Our Clients
©2012 Improving Enterprises, Inc. www.synerzip.com60
Call Us for a Free Consultation!
www.synerzip.com Hemant Elhence
Thanks!