pragmatic architecture for agile teams - geecon 2014

33
"All Hands on Deck" Pragmatic Architecture for Agile Teams / Janne Sinivirta @v3rtti geecon prague 2014

Upload: janne-sinivirta

Post on 27-Jun-2015

377 views

Category:

Software


3 download

DESCRIPTION

The talk I gave on GeeCON Prague 2014 on doing pragmatic architecture, using lean methods and practical documentation.

TRANSCRIPT

Page 1: Pragmatic Architecture for Agile Teams - GeeCON 2014

"All Hands on Deck"

PragmaticArchitecture

for Agile Teams / Janne Sinivirta @v3rtti

geecon prague 2014

Page 2: Pragmatic Architecture for Agile Teams - GeeCON 2014

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

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

Page 3: Pragmatic Architecture for Agile Teams - GeeCON 2014

Forgotten Architecture

Page 4: Pragmatic Architecture for Agile Teams - GeeCON 2014

Where are we now?

Page 5: Pragmatic Architecture for Agile Teams - GeeCON 2014

Conspiracy?

Page 6: Pragmatic Architecture for Agile Teams - GeeCON 2014

Bad Rapfor Architecture

Page 7: Pragmatic Architecture for Agile Teams - GeeCON 2014

How can we be better?

1. Balance

Page 8: Pragmatic Architecture for Agile Teams - GeeCON 2014

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 - GeeCON 2014

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 - GeeCON 2014

The Dilemma ofLast Responsible

MomentRecognize hard problemsStart early and prototype

Page 11: Pragmatic Architecture for Agile Teams - GeeCON 2014

How can we be better?

2. All Handson Deck

Page 12: Pragmatic Architecture for Agile Teams - GeeCON 2014

In Hurry toWait

Page 13: Pragmatic Architecture for Agile Teams - GeeCON 2014

Team Decisions

Architecture is too important to be left for the architect.

Page 14: Pragmatic Architecture for Agile Teams - GeeCON 2014

Modern Architect

Page 15: Pragmatic Architecture for Agile Teams - GeeCON 2014

Kaizen

Optimizing the organization and the value stream.

Page 16: Pragmatic Architecture for Agile Teams - GeeCON 2014

How can we be better?

3. Team vs.Organizatio

n

Page 17: Pragmatic Architecture for Agile Teams - GeeCON 2014

Local and FastAllow local decisionsEnsure feedback both ways

Page 18: Pragmatic Architecture for Agile Teams - GeeCON 2014

Conway's Law

Page 19: Pragmatic Architecture for Agile Teams - GeeCON 2014

No organization

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

Page 20: Pragmatic Architecture for Agile Teams - GeeCON 2014

How can we be better?

4. DomainModeling

Page 21: Pragmatic Architecture for Agile Teams - GeeCON 2014

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

Page 22: Pragmatic Architecture for Agile Teams - GeeCON 2014

What the system..IS vs DOES

Data vs AlgorithmPlan for changeTraits?

Page 23: Pragmatic Architecture for Agile Teams - GeeCON 2014

Languages, paradigmsand patterns

Modeling varianceLanguage features > libraries > design patterns

Page 24: Pragmatic Architecture for Agile Teams - GeeCON 2014

Role of DSL'sModern languages support DSL creationDSL often end up restrictive or fragile

- Stuart Halloway

"Nothing says screw you like a DSL"

Page 25: Pragmatic Architecture for Agile Teams - GeeCON 2014

Users and DomainExperts

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

Page 26: Pragmatic Architecture for Agile Teams - GeeCON 2014

How can we be better?5. Documentation

Page 27: Pragmatic Architecture for Agile Teams - GeeCON 2014

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

Page 28: Pragmatic Architecture for Agile Teams - GeeCON 2014

Must-have documentsExternal integrations diagram

Created with PlantUML

Page 29: Pragmatic Architecture for Agile Teams - GeeCON 2014

Must-have documentsInternal component diagram

Created with PlantUML

Page 30: Pragmatic Architecture for Agile Teams - GeeCON 2014

Must-have documentsDomain Model as Code

https://github.com/NitorCreations/DomainReverseMapper

Page 31: Pragmatic Architecture for Agile Teams - GeeCON 2014

Must-have documentsInternal component diagramExternal integration diagramDomain model as codeDomain dictionaryDecision log

Page 32: Pragmatic Architecture for Agile Teams - GeeCON 2014

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

Page 33: Pragmatic Architecture for Agile Teams - GeeCON 2014

Thank you!Questions?

Janne Sinivirta / @v3rtti