SlideShare ist ein Scribd-Unternehmen logo
surviving architecture




Mittwoch, 23. Juni 2010
?

Mittwoch, 23. Juni 2010
Lars Jankowfsky

                            ๏   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




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
...awesome!!!




Mittwoch, 23. Juni 2010
...awesome!!!




Mittwoch, 23. Juni 2010
...awesome!!!




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Johann-Peter Hartmann


                               ๏   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




Mittwoch, 23. Juni 2010
CTO           CEO




Mittwoch, 23. Juni 2010
... develops big web apps
            CTO                                       CEO




Mittwoch, 23. Juni 2010
... develops big web apps
            CTO                                       CEO


                                                      ...fixes security issues
                                                         done by Mayflower




Mittwoch, 23. Juni 2010
WHY?
Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Great!




Mittwoch, 23. Juni 2010
but


Mittwoch, 23. Juni 2010
but
                            ... don‘t you hate that word?




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
right?




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Java!
                           Scala/Lift
                 Ruby on
                  Rails         NOSQL
                  PHP
                          MVC
Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
client - server




Mittwoch, 23. Juni 2010
client - server
                                    ... kinda old school




Mittwoch, 23. Juni 2010
Frontend and Backend




Mittwoch, 23. Juni 2010
Three-tier model




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Event Driven Architecture




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Implicit invocation




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Monolithic application




Mittwoch, 23. Juni 2010
Monolithic application
                                        ...most likely your first
                                            software project




Mittwoch, 23. Juni 2010
Peer 2 Peer




Mittwoch, 23. Juni 2010
S.O.A.


Mittwoch, 23. Juni 2010
S.O.A.


Mittwoch, 23. Juni 2010
C.O.A.

Mittwoch, 23. Juni 2010
Shared nothing




Mittwoch, 23. Juni 2010
Space based




Mittwoch, 23. Juni 2010
Messaging/Queues




Mittwoch, 23. Juni 2010
HOW?
Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
What your architecture should provide




Mittwoch, 23. Juni 2010
(ISO 9126 for
                          fun and profit)




Mittwoch, 23. Juni 2010
Functionality

                          ๏Suitability

                          ๏Accuracy ..

                          ๏Interoperability

                          ๏Compliance

                          ๏Security




Mittwoch, 23. Juni 2010
Reliability

                          ๏Maturity

                          ๏Recoverability

                          ๏Fault Tolerance




Mittwoch, 23. Juni 2010
Efficiency


                          ๏Time Behaviour

                          ๏Resource Behaviour




Mittwoch, 23. Juni 2010
Usability

                          ๏Learnability

                          ๏Understandability

                          ๏Operability




Mittwoch, 23. Juni 2010
Maintainability

                          ๏Stability

                          ๏Analyzability

                          ๏Changeability

                          ๏Testability




Mittwoch, 23. Juni 2010
Portability

                          ๏Installability

                          ๏Replaceability

                          ๏Adaptability

                          ๏Conformance




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
FURPS




Mittwoch, 23. Juni 2010
Not every architecture works
                                  everywhere




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
A.T.A.M.


Mittwoch, 23. Juni 2010
check business drivers




Mittwoch, 23. Juni 2010
check architecture quality goals




Mittwoch, 23. Juni 2010
let stakeholders
                          create important scenarios




Mittwoch, 23. Juni 2010
check architectures




Mittwoch, 23. Juni 2010
Identify PITA per architecture




Mittwoch, 23. Juni 2010
Identify PITA per architecture
                                  WTF/Min.




Mittwoch, 23. Juni 2010
DECIDE

Mittwoch, 23. Juni 2010
So you know the right architecture?




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
... Houston, we have a problem!




Mittwoch, 23. Juni 2010
Fortune 500




Mittwoch, 23. Juni 2010
1976-1986:

                          50 Companies changed.




Mittwoch, 23. Juni 2010
2010:

                          36 Companies changed.




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
But it‘s cool to change fast, too




Mittwoch, 23. Juni 2010
You + Change =
                             1 Month




Mittwoch, 23. Juni 2010
Competitor + Change =
                              12 Months




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Startup
                          Architecture
                           Lifecycle




Mittwoch, 23. Juni 2010
create cheap
                             prototype




                            Startup
                          Architecture
                           Lifecycle




Mittwoch, 23. Juni 2010
create cheap
                             prototype



                                           get VC,
                            Startup       grow fast
                          Architecture
                           Lifecycle




Mittwoch, 23. Juni 2010
create cheap
                             prototype



                                                     get VC,
                            Startup                 grow fast
                          Architecture
                           Lifecycle


                                          succeed




Mittwoch, 23. Juni 2010
create cheap
                                      prototype



                                                              get VC,
                                    Startup                  grow fast
                                  Architecture
                                   Lifecycle

                          get screwed
                            by your
                           cheap fast              succeed
                          architecture



Mittwoch, 23. Juni 2010
create cheap
                                                prototype



                                                                        get VC,
                          do it right         Startup                  grow fast
                                            Architecture
                                             Lifecycle

                                    get screwed
                                      by your
                                     cheap fast              succeed
                                    architecture



Mittwoch, 23. Juni 2010
Architecture must change




Mittwoch, 23. Juni 2010
„Flexibility can be
                          viewed as an option“



Mittwoch, 23. Juni 2010
„Flexibility can be
                          viewed as an option“
                               Nobel price lecture 1997




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Volatile environments




Mittwoch, 23. Juni 2010
Volatile environments
                                            You are here.




Mittwoch, 23. Juni 2010
„Real Options“




Mittwoch, 23. Juni 2010
„Real Options“
                                     Google Dork




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Growth Option
Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Exit Option
Mittwoch, 23. Juni 2010
http://www.flickr.com/photos/grdloizaga/




Mittwoch, 23. Juni 2010
http://www.flickr.com/photos/grdloizaga/




                                       Platform Option
Mittwoch, 23. Juni 2010
http://www.flickr.com/photos/randysonofrobert/




Mittwoch, 23. Juni 2010
http://www.flickr.com/photos/randysonofrobert/




                                            Delay Option
Mittwoch, 23. Juni 2010
http://www.flickr.com/photos/randysonofrobert/




Mittwoch, 23. Juni 2010
http://www.flickr.com/photos/randysonofrobert/




                                     Learning Option
Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
=
Mittwoch, 23. Juni 2010
Embrace change!




Mittwoch, 23. Juni 2010
Surviving architecture howto




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
„Everything in software changes.“
                                    Kent Beck, 2000




Mittwoch, 23. Juni 2010
Agile!
                          is a 100% match




Mittwoch, 23. Juni 2010
No reengineering,
                           No refactoring,
                            No evolution




Mittwoch, 23. Juni 2010
TDD




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Deliver frequently




Mittwoch, 23. Juni 2010
Continuous Integration




Mittwoch, 23. Juni 2010
Commit
                          frequently
Mittwoch, 23. Juni 2010
fight code aging!!!




Mittwoch, 23. Juni 2010
Continuous Inspection




Mittwoch, 23. Juni 2010
Quality matters
                            even more




Mittwoch, 23. Juni 2010
quick != dirty




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
D.R.Y
                          Do Not Repeat Yourself




Mittwoch, 23. Juni 2010
Mittwoch, 23. Juni 2010
Y.A.G.N.I
Mittwoch, 23. Juni 2010
(c) 2003 Extreme Programming Perspectives Hakan Erdogmus and John Favaro

Mittwoch, 23. Juni 2010
Architecture documentation ...




Mittwoch, 23. Juni 2010
... on paper does
                          not work anymore.




Mittwoch, 23. Juni 2010
That‘s it.
                          Questions anyone?




Mittwoch, 23. Juni 2010

Weitere ähnliche Inhalte

Mehr von Mayflower GmbH

Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
Mayflower GmbH
 
Usability im web
Usability im webUsability im web
Usability im web
Mayflower GmbH
 
Rewrites überleben
Rewrites überlebenRewrites überleben
Rewrites überleben
Mayflower GmbH
 
JavaScript Security
JavaScript SecurityJavaScript Security
JavaScript Security
Mayflower GmbH
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
Mayflower GmbH
 
Responsive Webdesign
Responsive WebdesignResponsive Webdesign
Responsive Webdesign
Mayflower GmbH
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Mayflower GmbH
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming Mythbusters
Mayflower GmbH
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im Glück
Mayflower GmbH
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefern
Mayflower GmbH
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 Sprints
Mayflower GmbH
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalieren
Mayflower GmbH
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce Breakfast
Mayflower GmbH
 
Mongo DB - Segen oder Fluch
Mongo DB - Segen oder FluchMongo DB - Segen oder Fluch
Mongo DB - Segen oder Fluch
Mayflower GmbH
 
Schnelle Geschäfte
Schnelle GeschäfteSchnelle Geschäfte
Schnelle Geschäfte
Mayflower GmbH
 
Test-Driven JavaScript Development IPC
Test-Driven JavaScript Development IPCTest-Driven JavaScript Development IPC
Test-Driven JavaScript Development IPC
Mayflower GmbH
 
PHP Dependency und Paket Management mit Composer
PHP Dependency und Paket Management mit ComposerPHP Dependency und Paket Management mit Composer
PHP Dependency und Paket Management mit Composer
Mayflower GmbH
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenMayflower GmbH
 
Max Köhler - Real-Time-Monitoring
Max Köhler - Real-Time-MonitoringMax Köhler - Real-Time-Monitoring
Max Köhler - Real-Time-Monitoring
Mayflower GmbH
 
Yii - Next level PHP Framework von Florian Facker
Yii - Next level PHP Framework von Florian FackerYii - Next level PHP Framework von Florian Facker
Yii - Next level PHP Framework von Florian Facker
Mayflower GmbH
 

Mehr von Mayflower GmbH (20)

Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
 
Usability im web
Usability im webUsability im web
Usability im web
 
Rewrites überleben
Rewrites überlebenRewrites überleben
Rewrites überleben
 
JavaScript Security
JavaScript SecurityJavaScript Security
JavaScript Security
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
 
Responsive Webdesign
Responsive WebdesignResponsive Webdesign
Responsive Webdesign
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming Mythbusters
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im Glück
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefern
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 Sprints
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalieren
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce Breakfast
 
Mongo DB - Segen oder Fluch
Mongo DB - Segen oder FluchMongo DB - Segen oder Fluch
Mongo DB - Segen oder Fluch
 
Schnelle Geschäfte
Schnelle GeschäfteSchnelle Geschäfte
Schnelle Geschäfte
 
Test-Driven JavaScript Development IPC
Test-Driven JavaScript Development IPCTest-Driven JavaScript Development IPC
Test-Driven JavaScript Development IPC
 
PHP Dependency und Paket Management mit Composer
PHP Dependency und Paket Management mit ComposerPHP Dependency und Paket Management mit Composer
PHP Dependency und Paket Management mit Composer
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
 
Max Köhler - Real-Time-Monitoring
Max Köhler - Real-Time-MonitoringMax Köhler - Real-Time-Monitoring
Max Köhler - Real-Time-Monitoring
 
Yii - Next level PHP Framework von Florian Facker
Yii - Next level PHP Framework von Florian FackerYii - Next level PHP Framework von Florian Facker
Yii - Next level PHP Framework von Florian Facker
 

Surviving architecture