©2012 Improving Enterprises, Inc. Architecture in an Agile World...

Preview:

Citation preview

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

Architecture in an Agile World

don.mcgreal@ImprovingEnterprises.com

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@ImprovingEnterprises.com

Don McGreal

@donmcgreal

linkedin.com/in/donmcgreal

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

Thank You!

don.mcgreal@ImprovingEnterprises.com

Don McGreal

@donmcgreal

linkedin.com/in/donmcgreal

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

Questions?

www.synerzip.com Hemant Elhence

hemant@synerzip.com469.322.0349

©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

hemant@synerzip.com469.322.0349

Thanks!

Recommended