![Page 1: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/1.jpg)
AGILEARCHITECTURE
Adam Boczek
@nativeagile
@codecentric
BITKOM Software Summit 2013 | Frankfurt am Main | Germany
![Page 2: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/2.jpg)
AGILE ARCHITECTUREOXYMORON?� CONTROLLED CHAOS� OPEN SECRET� DARK LIGHT� LIVING DEAD� . . .
![Page 3: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/3.jpg)
Adam BoczekAgile Coach | Enterprise Architect
xing.com/profiles/Adam_Boczek
@nativeagile
http://codecentric.de
@codecentric
https://www.xing.com/net/pri1f221ex/agilearchitecture
![Page 4: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/4.jpg)
AGILITY INCORPORATESTHE IDEAS OF FLEXIBILITY, BALANCE, ADAPTABILITY, AND COORDINATION UNDER ONE UMBRELLA.(WIKIPEDIA)
![Page 5: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/5.jpg)
ARCHITECTURE REPRESENTSTHE FUNDAMENTAL ORGANIZATION OF A SYSTEM EMBODIED IN ITS COMPONENTS, THEIR RELATIONSHIPS TO EACH OTHER, AND TO THE ENVIRONMENT AND THE PRINCIPLES GUIDING ITS DESIGN AND EVOLUTION. (IEEE1471 2007)
![Page 6: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/6.jpg)
ARCHITECTURE REPRESENTS THE SIGNIFICANT DESIGN DECISIONSTHAT SHAPE A SYSTEM, WHERE SIGNIFICANT IS MEASURED BY COST OF CHANGE. (BOOCH 2006)
![Page 7: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/7.jpg)
FLEXIBLESTRUCTURE
AGILE ARCHITECTURE
![Page 8: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/8.jpg)
FLEXIBLESTRUCTUREORBEHAVIOR?
AGILE ARCHITECTURE
![Page 9: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/9.jpg)
FLEXIBLESTRUCTUREANDBEHAVIOR.
AGILE ARCHITECTURE
![Page 10: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/10.jpg)
AGILE ARCHITECTURE IS:� BUSINESS-CENTRIC� SIMPLE-AS-POSSIBLE� EVENT-DATA-DRIVEN � SINGLE-RESPONSIBILITY-BASED� CLOUD-ORIENTED�MULTI-PARADIGM
FLEXIBLE STRUCTURE
![Page 11: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/11.jpg)
CLEANARCHITECTURE AND DIP*
Enterprise Business Rules
Application Business Rules
Interface Adapters
Frameworks & DriversControllers
Ext. Interfaces
Processes
Entities
* Robert C. Martin (Uncle Bob), Dependency inversion principle
AGILE ARCHITECTURE ISBUSINESS-CENTRIC
![Page 12: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/12.jpg)
DOMAIN DRIVEN DESIGN*AGILE ARCHITECTURE IS BUSINESS-CENTRIC
Problem
Space
(Business)
Solution
Space
(IT)
* http://domainlanguage.com/ddd/
Agile Architecture
Ubiquitous
Language
Core and sub
domains
Bounded
contexts
Entities and
value objectsAggregates
Factories and
repositories
Services and
modulesDomain Events Context Mapping
![Page 13: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/13.jpg)
AGILE ARCHITECTURE IS SIMPLE-AS-POSSIBLE
* http://simplearchitectures.blogspot.de/2011/10/sip-complexity-model.html
controlling complexity Through
Partitioning & ReductionSubclasses of a partition should be constructed
with the synergistic equivalence relation.Complexity
Number Of
the System States dice are homomorphic representatives of variables in
software systems and paths in business processes.
![Page 14: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/14.jpg)
EVENT SOURCING & BIG DATACAPTURE ALL CHANGES TO AN APPLICATION STATE AS A SEQUENCE OF EVENTS*
* http://martinfowler.com/eaaDev/EventSourcing.html
Event Source
T1 | State 1
Event Source
T2 | State 2
Event Source
T3 | State 3
BIG Data
RepositoryEvent T1 | State 1
Event T2 | State 2
Event T3 | State 3
AGILE ARCHITECTURE IS EVENT-DATA-DRIVEN
![Page 15: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/15.jpg)
PURE LAYERING
AGILE ARCHITECTURE IS SINGLE-RESPONSIBILITY-BASED
* MV* = MVP, MVC or MVVM
DOES ALL THE CLIENT JOB, MV*Presentation Layer
Business Layer
Persistence Layer
DOES ALL THE BUSINESS JOB
DOES ALL THE DB JOB
No business stuff
No business stuff
No Presentation stuff
![Page 16: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/16.jpg)
CLEAN HYBRIDARCHITECTURE
Ext. Interfaces
Entities
Controllers
Use Cases
Entities
Controllers
Use Cases
Entities
Controllers
Use Cases
Active Record Command Query Responsibility Segregation
Domain DrivenDesign
AGILE ARCHITECTURE IS SINGLE-RESPONSIBILITY-BASED
![Page 17: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/17.jpg)
SCALING OUTSTRATEGY*
AGILE ARCHITECTURE IS CLOUD-ORIENTED
* http://spacebug.com/scale-out-versus-scale-up-html/
RUNNING THE APPLICATION ON MANY HOSTS
SCALING UPSTRATEGY
![Page 18: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/18.jpg)
JAVASCRIPTONE LANGUAGE FITS ALL*
JavaScript is a prototype-based scripting language with
dynamic typing and has
first-class functions.
It is a multi-paradigm language, supporting object-oriented,
imperative, and functional programming styles.
�Coding
�Testing
�Operating
* http://en.wikipedia.org/wiki/JavaScript
AGILE ARCHITECTURE IS MULTI-PARADIGM
![Page 19: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/19.jpg)
JSONONE FORMAT FITS ALL*
AGILE ARCHITECTURE IS MULTI-PARADIGM
JSON or JavaScript Object Notation, is a text-based
open standard designed for
human-readable data interchange.
Derived from the JavaScript scripting language, JSON is a language for
representing simple data structures and associative arrays, called
objects.
�Calling
�Persisting
�Transforming
* http://en.wikipedia.org/wiki/JSON
![Page 20: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/20.jpg)
MEAN STACK (JAVASCRIPT & JSON)
NodeJS is an event-driven
I/O server-side JavaScript
environment based on
Google’s V8 engine.
ExpressJS is a node.js web
application framework.
MongoDB is A superb No-SQL
database.
AngularJS is
framework to
create one-page
dynamic apps.
AGILE ARCHITECTURE IS MULTI-PARADIGM
![Page 21: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/21.jpg)
* MV* = MVP, MVC or MVVM
DOES ALL THE CLIENT JOB, MV*� ANGULARJS
Presentation Layer
Business Layer
Persistence Layer
DOES ALL THE BUSINESS JOB� NODEJS, EXPRESSJS
DOES ALL THE DB JOB�MONGODB
No business stuff
No business stuff
No Presentation stuff
MEAN STACK (JAVASCRIPT & JSON)IN ACTION
![Page 22: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/22.jpg)
AGILE ARCHITECTURE SUPPORTS:� SELF-DIRECTING� SELF-OPTIMIZING� SELF-HEALING
FLEXIBLE BEHAVIOR
![Page 23: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/23.jpg)
HATEOAS/REST AGILE ARCHITECTURE SUPPORTS SELF-DIRECTING
Consumer IS Directing*
Producer/
Backend
var response = producer.foo();if (response.status == X) {
producer.foo1(); } else {
producer.foo2();};
Consumer/
Client
Hypermedia as the Engine of Application State
Representational state transfer
RPC API
Producer is directing*
var response = producer.foo();
// next_foo() is foo1() or foo2()// producer decides what is rightresponse.next_foo();
Consumer/
Client
Producer/
Backend
Rest HATEOAS
* Pseudo-source-code for demonstration purposes only
![Page 24: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/24.jpg)
LOAD BALANCER & CACHE
AGILE ARCHITECTURE SUPPORTS SELF-OPTIMIZING
QUERY OPTIMIZER
![Page 25: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/25.jpg)
AGILE ARCHITECTURE SUPPORTS SELF-HEALING
The microcapsules release a healing agent when the
material is damaged*
* http://www.bbc.co.uk/news/science-environment-19781862
SELF-HEALINGMATERIALS
SOFTWAREERROR DETECTIONANDSOFTWAREHEALING AGENTSMEANSELF-HEALINGSOFTWARE SYSTEMS
![Page 26: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/26.jpg)
THE BEHAVIOR OF A SYSTEM THAT FOLLOWSAGILE ARCHITECTURE CAN BE CALLED
ARCHITECTURALINTELLIGENCE
ABILITY OF THE SYSTEMTO DIRECT, OPTIMIZE, AND HEAL
ITSELF
![Page 27: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/27.jpg)
FLEXIBLESTRUCTUREANDBEHAVIOR.
AGILE ARCHITECTURE
� BUSINESS-CENTRIC
� SIMPLE-AS-POSSIBLE
� EVENT-DATA-DRIVEN
� SINGLE-RESPONSIBILITY-BASED
� CLOUD-ORIENTED
�MULTI-PARADIGM
� SELF-DIRECTING
� SELF-OPTIMIZING
� SELF-HEALING
![Page 28: Adam boczek 2013 bitkom software summit agile architecture v1.3](https://reader036.vdocuments.site/reader036/viewer/2022062320/55a20db21a28abe74e8b482b/html5/thumbnails/28.jpg)
https://www.xing.com/net/pri1f221ex/agilearchitecture
Adam BoczekAgile Coach | Enterprise Architect
xing.com/profiles/Adam_Boczek
@nativeagile
http://codecentric.de
@codecentric