pragmatic architecture for agile teams

29
"All Hands on Deck" Pragmatic Architecture for Agile Teams / Janne Sinivirta @v3rtti

Upload: janne-sinivirta

Post on 29-Nov-2014

348 views

Category:

Software


4 download

DESCRIPTION

Slides for my lean architecture presentation given at Agile Prague 2014. http://agileprague.com/

TRANSCRIPT

Page 1: Pragmatic Architecture for Agile Teams

"All Hands on Deck"

PragmaticArchitecture

for Agile Teams / Janne Sinivirta @v3rtti

Page 2: Pragmatic Architecture for Agile Teams

OutlineWhere are we now and why?How can we be better?

1. Balance2. "All Hands on Deck"3. Team vs Organization4. Documentation

Page 3: Pragmatic Architecture for Agile Teams

Forgotten Architecture

Page 4: Pragmatic Architecture for Agile Teams

Where are we now?

Page 5: Pragmatic Architecture for Agile Teams

Conspiracy?

Page 6: Pragmatic Architecture for Agile Teams

Bad Rapfor Architecture

Page 7: Pragmatic Architecture for Agile Teams

How can we be better?

1. Balance

Page 8: Pragmatic Architecture for Agile Teams

BDUF vs. YAGNIBig Design Up Front vs. You Aren't Gonna Need It

* see "Balancing Agility and Discipline" by Barry Boehm and Richard Turner

Page 9: Pragmatic Architecture for Agile Teams

MVP and ArchitectureAgile is all about emergent designArchitecture gives the code a place to growDesigning architecture only for MVP is short-sighted

- Uncle Bob Martin

Architecture from tests only .. is horse shit!

Page 10: Pragmatic Architecture for Agile Teams

The Dilemma ofLast Responsible

MomentRecognize hard problemsStart early and prototype

Page 11: Pragmatic Architecture for Agile Teams

How can we be better?

2. All Handson Deck

Page 12: Pragmatic Architecture for Agile Teams

In Hurry toWait

Page 13: Pragmatic Architecture for Agile Teams

Team Decisions

Architecture is too important to be left for the architect.

Page 14: Pragmatic Architecture for Agile Teams

Modern Architect

Page 15: Pragmatic Architecture for Agile Teams

Kaizen

Optimizing the organization and the value stream.

Page 16: Pragmatic Architecture for Agile Teams

Users and DomainExperts

Genchi Genbutsu (現地現物) Go and see for yourselves!Matching users mental model"Future proofing" with crazy ideas

Page 17: Pragmatic Architecture for Agile Teams

How can we be better?

3. Team vs.Organizatio

n

Page 18: Pragmatic Architecture for Agile Teams

Local and FastAllow local decisionsEnsure feedback both ways

Page 19: Pragmatic Architecture for Agile Teams

Conway's Law

Page 20: Pragmatic Architecture for Agile Teams

No organization

There's no organization. Just people. Get to know them!

Page 21: Pragmatic Architecture for Agile Teams

How can we be better?4. Documentation

Page 22: Pragmatic Architecture for Agile Teams

BasicsWho's the reader?Code as forward thinking documentationDocument relationships that are not visible from code

Page 23: Pragmatic Architecture for Agile Teams

Must-have documentsDomain Dictionary

Aim for common language in teamReduce misunderstandingsDon't conquer all with single dictionaryCreate with stakeholdersAliases that combine multiple terms/concepts

Page 24: Pragmatic Architecture for Agile Teams

Must-have documentsExternal integrations diagram

Created with PlantUML

Page 25: Pragmatic Architecture for Agile Teams

Must-have documentsInternal component diagram

Created with PlantUML

Page 26: Pragmatic Architecture for Agile Teams

Must-have documentsDomain Model as Code

https://github.com/NitorCreations/DomainReverseMapper

Page 27: Pragmatic Architecture for Agile Teams

Must-have documentsDomain dictionaryInternal component diagramExternal integration diagramDomain model as codeDecision log

Page 28: Pragmatic Architecture for Agile Teams

SummaryDesign enough, early enoughArchitecture is a team responsibility"See for yourself!" is essential in good designDocument things that are not visible from code

Page 29: Pragmatic Architecture for Agile Teams

Thank you!Questions?

Janne Sinivirta / @v3rtti