Surviving architecture

123
surviving architecture Mittwoch, 23. Juni 2010

description

An explanation, why agility is not only a question of development and design, but also important for architecture.

Transcript of Surviving architecture

Page 1: Surviving architecture

surviving architecture

Mittwoch, 23. Juni 2010

Page 2: Surviving architecture

?

Mittwoch, 23. Juni 2010

Page 3: Surviving architecture

๏ PHP, C++, Developer, Software Architect since 1992

๏ PHP since 1998๏ Many successful projects from 2 to 20 developers

๏ Running right now three projects using eXtreme

Programming

๏ CTO and (Co-)Founder swoodoo AG๏ Founder OXID eSales AG

Lars Jankowfsky

Mittwoch, 23. Juni 2010

Page 4: Surviving architecture

Mittwoch, 23. Juni 2010

Page 5: Surviving architecture

...awesome!!!

Mittwoch, 23. Juni 2010

Page 6: Surviving architecture

...awesome!!!

Mittwoch, 23. Juni 2010

Page 7: Surviving architecture

...awesome!!!

Mittwoch, 23. Juni 2010

Page 8: Surviving architecture

Mittwoch, 23. Juni 2010

Page 9: Surviving architecture

๏ PHP, Delphi, Java, Developer, Software since 1992

๏ PHP since 1999๏ Many successful projects from 2 to 20 developers

๏ Running a company based on SCRUM, XP and Crystal

Clear

Johann-Peter Hartmann

Mittwoch, 23. Juni 2010

Page 10: Surviving architecture

CTO CEO

Mittwoch, 23. Juni 2010

Page 11: Surviving architecture

CTO CEO... develops big web apps

Mittwoch, 23. Juni 2010

Page 12: Surviving architecture

CTO CEO... develops big web apps

...fixes security issues done by Mayflower

Mittwoch, 23. Juni 2010

Page 13: Surviving architecture

WHY?Mittwoch, 23. Juni 2010

Page 14: Surviving architecture

Mittwoch, 23. Juni 2010

Page 15: Surviving architecture

Mittwoch, 23. Juni 2010

Page 16: Surviving architecture

Great!

Mittwoch, 23. Juni 2010

Page 17: Surviving architecture

but

Mittwoch, 23. Juni 2010

Page 18: Surviving architecture

but

... don‘t you hate that word?

Mittwoch, 23. Juni 2010

Page 19: Surviving architecture

Mittwoch, 23. Juni 2010

Page 20: Surviving architecture

right?

Mittwoch, 23. Juni 2010

Page 21: Surviving architecture

Mittwoch, 23. Juni 2010

Page 22: Surviving architecture

Java!

Ruby on Rails

PHP

Scala/Lift

MVC

NOSQL

Mittwoch, 23. Juni 2010

Page 23: Surviving architecture

Mittwoch, 23. Juni 2010

Page 24: Surviving architecture

client - server

Mittwoch, 23. Juni 2010

Page 25: Surviving architecture

client - server... kinda old school

Mittwoch, 23. Juni 2010

Page 26: Surviving architecture

Frontend and Backend

Mittwoch, 23. Juni 2010

Page 27: Surviving architecture

Three-tier model

Mittwoch, 23. Juni 2010

Page 28: Surviving architecture

Mittwoch, 23. Juni 2010

Page 29: Surviving architecture

Event Driven Architecture

Mittwoch, 23. Juni 2010

Page 30: Surviving architecture

Mittwoch, 23. Juni 2010

Page 31: Surviving architecture

Implicit invocation

Mittwoch, 23. Juni 2010

Page 32: Surviving architecture

Mittwoch, 23. Juni 2010

Page 33: Surviving architecture

Monolithic application

Mittwoch, 23. Juni 2010

Page 34: Surviving architecture

Monolithic application...most likely your first

software project

Mittwoch, 23. Juni 2010

Page 35: Surviving architecture

Peer 2 Peer

Mittwoch, 23. Juni 2010

Page 36: Surviving architecture

S.O.A.

Mittwoch, 23. Juni 2010

Page 37: Surviving architecture

S.O.A.

Mittwoch, 23. Juni 2010

Page 38: Surviving architecture

C.O.A.

Mittwoch, 23. Juni 2010

Page 39: Surviving architecture

Shared nothing

Mittwoch, 23. Juni 2010

Page 40: Surviving architecture

Space based

Mittwoch, 23. Juni 2010

Page 41: Surviving architecture

Messaging/Queues

Mittwoch, 23. Juni 2010

Page 42: Surviving architecture

HOW?Mittwoch, 23. Juni 2010

Page 43: Surviving architecture

Mittwoch, 23. Juni 2010

Page 44: Surviving architecture

What your architecture should provide

Mittwoch, 23. Juni 2010

Page 45: Surviving architecture

(ISO 9126 for fun and profit)

Mittwoch, 23. Juni 2010

Page 52: Surviving architecture

Mittwoch, 23. Juni 2010

Page 53: Surviving architecture

FURPS

Mittwoch, 23. Juni 2010

Page 54: Surviving architecture

Not every architecture works everywhere

Mittwoch, 23. Juni 2010

Page 55: Surviving architecture

Mittwoch, 23. Juni 2010

Page 56: Surviving architecture

A.T.A.M.

Mittwoch, 23. Juni 2010

Page 57: Surviving architecture

check business drivers

Mittwoch, 23. Juni 2010

Page 58: Surviving architecture

check architecture quality goals

Mittwoch, 23. Juni 2010

Page 59: Surviving architecture

let stakeholders create important scenarios

Mittwoch, 23. Juni 2010

Page 60: Surviving architecture

check architectures

Mittwoch, 23. Juni 2010

Page 61: Surviving architecture

Identify PITA per architecture

Mittwoch, 23. Juni 2010

Page 62: Surviving architecture

Identify PITA per architectureWTF/Min.

Mittwoch, 23. Juni 2010

Page 63: Surviving architecture

DECIDE

Mittwoch, 23. Juni 2010

Page 64: Surviving architecture

So you know the right architecture?

Mittwoch, 23. Juni 2010

Page 65: Surviving architecture

Mittwoch, 23. Juni 2010

Page 66: Surviving architecture

... Houston, we have a problem!

Mittwoch, 23. Juni 2010

Page 67: Surviving architecture

Fortune 500

Mittwoch, 23. Juni 2010

Page 68: Surviving architecture

1976-1986:

50 Companies changed.

Mittwoch, 23. Juni 2010

Page 69: Surviving architecture

2010:

36 Companies changed.

Mittwoch, 23. Juni 2010

Page 70: Surviving architecture

Mittwoch, 23. Juni 2010

Page 71: Surviving architecture

But it‘s cool to change fast, too

Mittwoch, 23. Juni 2010

Page 72: Surviving architecture

You + Change =1 Month

Mittwoch, 23. Juni 2010

Page 73: Surviving architecture

Competitor + Change = 12 Months

Mittwoch, 23. Juni 2010

Page 74: Surviving architecture

Mittwoch, 23. Juni 2010

Page 75: Surviving architecture

Startup Architecture

Lifecycle

Mittwoch, 23. Juni 2010

Page 76: Surviving architecture

create cheap prototype

Startup Architecture

Lifecycle

Mittwoch, 23. Juni 2010

Page 77: Surviving architecture

create cheap prototype

Startup Architecture

Lifecycle

get VC,grow fast

Mittwoch, 23. Juni 2010

Page 78: Surviving architecture

create cheap prototype

Startup Architecture

Lifecycle

get VC,grow fast

succeed

Mittwoch, 23. Juni 2010

Page 79: Surviving architecture

create cheap prototype

Startup Architecture

Lifecycle

get VC,grow fast

succeedget screwed

by your cheap fast

architecture

Mittwoch, 23. Juni 2010

Page 80: Surviving architecture

create cheap prototype

Startup Architecture

Lifecycle

get VC,grow fast

succeed

do it right

get screwed by your

cheap fast architecture

Mittwoch, 23. Juni 2010

Page 81: Surviving architecture

Architecture must change

Mittwoch, 23. Juni 2010

Page 82: Surviving architecture

„Flexibility can be viewed as an option“

Mittwoch, 23. Juni 2010

Page 83: Surviving architecture

„Flexibility can be viewed as an option“

Nobel price lecture 1997

Mittwoch, 23. Juni 2010

Page 84: Surviving architecture

Mittwoch, 23. Juni 2010

Page 85: Surviving architecture

Volatile environments

Mittwoch, 23. Juni 2010

Page 86: Surviving architecture

Volatile environmentsYou are here.

Mittwoch, 23. Juni 2010

Page 87: Surviving architecture

„Real Options“

Mittwoch, 23. Juni 2010

Page 88: Surviving architecture

„Real Options“Google Dork

Mittwoch, 23. Juni 2010

Page 89: Surviving architecture

Mittwoch, 23. Juni 2010

Page 90: Surviving architecture

Growth Option

Mittwoch, 23. Juni 2010

Page 91: Surviving architecture

Mittwoch, 23. Juni 2010

Page 92: Surviving architecture

Exit Option

Mittwoch, 23. Juni 2010

Page 93: Surviving architecture

http://www.flickr.com/photos/grdloizaga/

Mittwoch, 23. Juni 2010

Page 94: Surviving architecture

Platform Option

http://www.flickr.com/photos/grdloizaga/

Mittwoch, 23. Juni 2010

Page 95: Surviving architecture

http://www.flickr.com/photos/randysonofrobert/

Mittwoch, 23. Juni 2010

Page 96: Surviving architecture

Delay Option

http://www.flickr.com/photos/randysonofrobert/

Mittwoch, 23. Juni 2010

Page 97: Surviving architecture

http://www.flickr.com/photos/randysonofrobert/

Mittwoch, 23. Juni 2010

Page 98: Surviving architecture

Learning Option

http://www.flickr.com/photos/randysonofrobert/

Mittwoch, 23. Juni 2010

Page 99: Surviving architecture

Mittwoch, 23. Juni 2010

Page 100: Surviving architecture

=Mittwoch, 23. Juni 2010

Page 101: Surviving architecture

Embrace change!

Mittwoch, 23. Juni 2010

Page 102: Surviving architecture

Surviving architecture howto

Mittwoch, 23. Juni 2010

Page 103: Surviving architecture

Mittwoch, 23. Juni 2010

Page 104: Surviving architecture

„Everything in software changes.“Kent Beck, 2000

Mittwoch, 23. Juni 2010

Page 105: Surviving architecture

Agile!is a 100% match

Mittwoch, 23. Juni 2010

Page 106: Surviving architecture

No reengineering,No refactoring,No evolution

Mittwoch, 23. Juni 2010

Page 107: Surviving architecture

TDD

Mittwoch, 23. Juni 2010

Page 108: Surviving architecture

Mittwoch, 23. Juni 2010

Page 109: Surviving architecture

Deliver frequently

Mittwoch, 23. Juni 2010

Page 110: Surviving architecture

Continuous Integration

Mittwoch, 23. Juni 2010

Page 111: Surviving architecture

Commit frequently

Mittwoch, 23. Juni 2010

Page 112: Surviving architecture

fight code aging!!!

Mittwoch, 23. Juni 2010

Page 113: Surviving architecture

Continuous Inspection

Mittwoch, 23. Juni 2010

Page 114: Surviving architecture

Quality matters even more

Mittwoch, 23. Juni 2010

Page 115: Surviving architecture

quick != dirty

Mittwoch, 23. Juni 2010

Page 116: Surviving architecture

Mittwoch, 23. Juni 2010

Page 117: Surviving architecture

D.R.YDo Not Repeat Yourself

Mittwoch, 23. Juni 2010

Page 118: Surviving architecture

Mittwoch, 23. Juni 2010

Page 119: Surviving architecture

Y.A.G.N.IMittwoch, 23. Juni 2010

Page 120: Surviving architecture

(c) 2003 Extreme Programming Perspectives Hakan Erdogmus and John Favaro

Mittwoch, 23. Juni 2010

Page 121: Surviving architecture

Architecture documentation ...

Mittwoch, 23. Juni 2010

Page 122: Surviving architecture

... on paper doesnot work anymore.

Mittwoch, 23. Juni 2010

Page 123: Surviving architecture

That‘s it.Questions anyone?

Mittwoch, 23. Juni 2010