architecture in an agile world

56
©2012 Improving Enterprises, Inc. www.synerzip.com Architecture in an Agile World don.mcgreal@ImprovingEnterprise s.com Don McGreal @donmcgreal linkedin.com/in/donmcgreal

Upload: nairi

Post on 12-Jan-2016

45 views

Category:

Documents


0 download

DESCRIPTION

Don McGreal. Architecture in an Agile World. [email protected]. @donmcgreal. linkedin.com/in/donmcgreal. Agenda. Agile and Architecture Reducing Technical Risks Team Makeup & Roles Architecture Anti-Patterns. What is Software Architecture?. 5. Business Goals. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Architecture in an  Agile World

©2012 Improving Enterprises, Inc. www.synerzip.com

Architecture in an Agile World

[email protected]

Don McGreal

@donmcgreal

linkedin.com/in/donmcgreal

Page 2: Architecture in an  Agile World

©2012 Improving Enterprises, Inc. www.synerzip.com

Page 3: Architecture in an  Agile World

©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

©2012 Improving Enterprises, Inc. www.synerzip.com5

What is Software Architecture?

Page 5: Architecture in an  Agile World

©2012 Improving Enterprises, Inc. www.synerzip.com6

Business Goals

What business goals could affect our Architectural decisions?

Page 6: Architecture in an  Agile World

©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

©2012 Improving Enterprises, Inc. www.synerzip.com

Does it compare to building this?

House

Page 8: Architecture in an  Agile World

©2012 Improving Enterprises, Inc. www.synerzip.com

… or this?

???

Page 9: Architecture in an  Agile World

©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

©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

©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

©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

©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

©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

©2012 Improving Enterprises, Inc. www.synerzip.com

Sprint Capacity over Time

Page 16: Architecture in an  Agile World

©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

©2012 Improving Enterprises, Inc. www.synerzip.com

Most Important Architecture Goal?

Maintainability

Page 18: Architecture in an  Agile World

©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

©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

©2012 Improving Enterprises, Inc. www.synerzip.com

Yuck.

*From Scrum.org’s Professional Scrum Master

certification course

Page 21: Architecture in an  Agile World

©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

©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

©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

©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

©2012 Improving Enterprises, Inc. www.synerzip.com

Design PatternsDesign Patterns!=!=

Good DesignGood Design

Page 26: Architecture in an  Agile World

©2012 Improving Enterprises, Inc. www.synerzip.com

Core Aspects of Good Design

✓✓GoodGoodDesignDesign

✓ Low Coupling

✓ High Cohesion

Page 27: Architecture in an  Agile World

©2012 Improving Enterprises, Inc. www.synerzip.com

Coupling vs. Cohesion

Page 28: Architecture in an  Agile World

©2012 Improving Enterprises, Inc. www.synerzip.com

Core Aspects of Bad Design

.

XXBadBadDesignDesign

• Duplication

• Ambiguity .

• Complexity

Page 29: Architecture in an  Agile World

©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

©2012 Improving Enterprises, Inc. www.synerzip.com

How do we get there?

✓✓GoodGoodDesignDesign➔➔XXBadBad

DesignDesign

Page 31: Architecture in an  Agile World

©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

©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

©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

©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

©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

©2012 Improving Enterprises, Inc. www.synerzip.com

Ideal Team Composition

Team A

Team B

Page 37: Architecture in an  Agile World

©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

©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

©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

©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

©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

©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

©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

©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

©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

©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

©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

©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

©2012 Improving Enterprises, Inc. www.synerzip.com

So, to sum up…

Page 50: Architecture in an  Agile World

©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

©2012 Improving Enterprises, Inc. www.synerzip.com

Questions?

[email protected]

Don McGreal

@donmcgreal

linkedin.com/in/donmcgreal

Page 52: Architecture in an  Agile World

©2012 Improving Enterprises, Inc. www.synerzip.com

Thank You!

[email protected]

Don McGreal

@donmcgreal

linkedin.com/in/donmcgreal

Page 53: Architecture in an  Agile World

©2012 Improving Enterprises, Inc. www.synerzip.com

Questions?

www.synerzip.com Hemant Elhence

[email protected]

Page 54: Architecture in an  Agile World

©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

©2012 Improving Enterprises, Inc. www.synerzip.com

Our Clients

Page 56: Architecture in an  Agile World

©2012 Improving Enterprises, Inc. www.synerzip.com60

Call Us for a Free Consultation!

www.synerzip.com Hemant Elhence

[email protected]

Thanks!