Your SlideShare is downloading. ×
0
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Agile Architecture v2.0 BITKOM Software Summit 2013
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Agile Architecture v2.0 BITKOM Software Summit 2013

1,395

Published on

This presentation is a second version of my talk about Agile Architecture. Comparing to the first version (also available at slideshare) it contains significant more information about elements that …

This presentation is a second version of my talk about Agile Architecture. Comparing to the first version (also available at slideshare) it contains significant more information about elements that comprise Agile Architecture, focusing on its structure and behavior.

We at codecentric, as a technically focused agile organization, get in our projects quite often confronted with the assessment of a customer’s software architecture, or more precisely with the assessment of the existing solution architecture. In many cases it is ok for us to stay in this technical scope and not to touch other, much wider architectural concepts like e.g. enterprise architecture. However, due to the fact, that more and more organizations want to transform to a more agile organization, the alignment between IT and Business, and thus between IT-architecture and Business-architecture becomes much more relevant for us in our projects than in the past and causes many questions to arise. Can we talk in this context about agile architecture? And if so, is it a model of a system or maybe just a process of creating it? Or maybe both? How long can I delay my architectural decisions? Can I refactor my agile architecture? And so on…

In this talk I won’t give you perfect answers to all these questions, however I’m pretty sure I will open your eyes and let you create your own point of view.

In Unternehmen wird von der IT immer mehr gefordert, einen Wertbeitrag zu leisten. Dahinter steckt der verständliche Wunsch, flexibler, schneller und messbarer zum geschäftlichen Erfolg beizutragen. Wie gut sind wir, Architekten und Entwickler, gerüstet, diesem Wunsch Folge zu tragen? Wie gut können unsere Systeme diese neuen, sehr oft revolutionären oder sogar disruptiven Anforderungen unterstützen? Unsere Entwicklungsprozesse sind bereits agil. Unsere Entwicklerwerkzeuge sind anspruchsvoll, qualitativ hochwertig und ausgereift. Wie ist aber unsere IT-Architektur? Spiegelt diese die Geschäftsarchitektur eines Unternehmens tatsächlich wieder oder sind die beiden Welten komplett voneinander getrennt? Wie kann eine geschäftskonforme IT-Architektur entwickelt werden? Wie kann eine bestehende IT-Architektur ggf. angepasst werden? Können wir über eine flexible oder sogar eine “Agile Architektur” reden? Und wenn ja, in welchem Kontext? Ist eine agile Architektur nur ein agiler Design-Prozess? Kann eine existierende Architektur “refactored” werden? Kann die Agilität in ein System „eingebaut“ werden? Kann sich ein System auf architektonischer Ebene agil verhalten?

In diesem Talk möchten wir über die o.g. Fragestellungen diskutieren. Basierend auf den von dem Vortragenden in den letzten Monaten durchgeführten Projekten werden mögliche Konzepte, Strategien und Lösungen für eine „Agile Architektur Transition“ in einem Unternehmen dargestellt.

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,395
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. AGILE ARCHITECTURE Adam Boczek @nativeagile @codecentric BITKOMSoftwareSummit2013 | FrankfurtamMain |Germany
  • 2. AGILE ARCHITECTURE OXYMORON? CONTROLLED CHAOS OPEN SECRET DARK LIGHT LIVING DEAD . . .
  • 3. Adam Boczek Agile Coach | Enterprise Architect xing.com/profiles/Adam_Boczek @nativeagile adam.boczek@codecentric.de http://codecentric.de @codecentric https://www.xing.com/net/pri1f221ex/agilearchitecture
  • 4. AGILITYINCORPORATES THEIDEASOFFLEXIBILITY,BALANCE,ADAPTABILITY, ANDCOORDINATIONUNDERONEUMBRELLA. (WIKIPEDIA)
  • 5. ARCHITECTUREREPRESENTS THEFUNDAMENTALORGANIZATIONOFASYSTEM EMBODIEDINITSCOMPONENTS,THEIRRELATIONSHIPSTOEACH OTHER,ANDTOTHEENVIRONMENTANDTHEPRINCIPLESGUIDINGITS DESIGNANDEVOLUTION. (IEEE14712007)
  • 6. ARCHITECTUREREPRESENTS THESIGNIFICANTDESIGNDECISIONS THATSHAPEA SYSTEM,WHERESIGNIFICANTISMEASUREDBYCOST OFCHANGE. (BOOCH2006)
  • 7. FLEXIBLE STRUCTURE AGILE ARCHITECTURE
  • 8. FLEXIBLE STRUCTURE OR BEHAVIOR? AGILE ARCHITECTURE
  • 9. FLEXIBLE STRUCTURE AND BEHAVIOR. AGILE ARCHITECTURE
  • 10. AGILE ARCHITECTUREIS: BUSINESS-CENTRIC SIMPLE-AS-POSSIBLE EVENT-DATA-DRIVEN SINGLE-RESPONSIBILITY-BASED CLOUD-ORIENTED MULTI-PARADIGM FLEXIBLE STRUCTURE
  • 11. CLEAN ARCHITECTURE AND DIP* Enterprise BusinessRules Application Business Rules Interface Adapters Frameworks & Drivers Controllers Ext. Interfaces Processes Entities * Robert C. Martin (UncleBob),Dependency inversion principle AGILE ARCHITECTURE IS BUSINESS-CENTRIC
  • 12. 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 objects Aggregates Factories and repositories Services and modules Domain Events Context Mapping
  • 13. AGILE ARCHITECTURE IS SIMPLE-AS-POSSIBLE * http://simplearchitectures.blogspot.de/2011/10/sip-complexity-model.html controlling complexity Through Partitioning & Reduction Subclasses of a partition should be constructed with the synergistic equivalence relation.Complexity NumberOf theSystemStates dice are homomorphic representatives of variables in software systems and paths inbusiness processes.
  • 14. EVENT SOURCING & BIG DATA CAPTURE ALLCHANGESTOANAPPLICATION STATEAS A SEQUENCE OFEVENTS* * http://martinfowler.com/eaaDev/EventSourcing.html Event Source T1 | State 1 Event Source T2 | State 2 Event Source T3 | State 3 BIGData Repository Event T1 | State 1 Event T2 | State 2 Event T3 | State 3 AGILE ARCHITECTURE IS EVENT-DATA-DRIVEN
  • 15. 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 businessstuff No businessstuff No Presentation stuff
  • 16. CLEAN HYBRID ARCHITECTURE Ext. Interfaces Entities Controllers Use Cases Entities Controllers Use Cases Entities Controllers Use Cases Active Record CommandQuery Responsibility Segregation DomainDriven Design AGILE ARCHITECTURE IS SINGLE-RESPONSIBILITY-BASED
  • 17. SCALING OUT STRATEGY* AGILE ARCHITECTURE IS CLOUD-ORIENTED * http://spacebug.com/scale-out-versus-scale-up-html/ RUNNING THE APPLICATION ON MANY HOSTS SCALING UP STRATEGY
  • 18. JAVASCRIPTONE LANGUAGEFITS ALL* JavaScript is a prototype-based scripting language with dynamic typing and has first-class functions. It is a multi-paradigm language, supportingobject-oriented, imperative, and functional programming styles. Coding Testing Operating * http://en.wikipedia.org/wiki/JavaScript AGILE ARCHITECTURE IS MULTI-PARADIGM
  • 19. JSONONE FORMAT FITS ALL* AGILE ARCHITECTURE IS MULTI-PARADIGM JSON or JavaScript Object Notation, is a text-based open standarddesigned for human-readable data interchange. Derived from the JavaScript scriptinglanguage, JSON is a language for representing simple data structures and associative arrays, called objects. Calling Persisting Transforming * http://en.wikipedia.org/wiki/JSON
  • 20. MEAN STACK (JAVASCRIPT & JSON) NodeJSis an event-driven I/O server-side JavaScript environment basedon 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
  • 21. * 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 businessstuff No businessstuff No Presentation stuff MEAN STACK (JAVASCRIPT & JSON) IN ACTION
  • 22. AGILE ARCHITECTURESUPPORTS: SELF-DIRECTING SELF-OPTIMIZING SELF-HEALING FLEXIBLE BEHAVIOR
  • 23. 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 Hypermediaas the Engineof ApplicationState Representationalstate transfer RPC API Producer is directing* var response = producer.foo(); // next_foo() is foo1() or foo2() // producer decides what is right response.next_foo(); Consumer/ Client Producer/ Backend Rest HATEOAS * Pseudo-source-code for demonstration purposesonly
  • 24. LOAD BALANCER & CACHE AGILE ARCHITECTURE SUPPORTS SELF-OPTIMIZING QUERY OPTIMIZER
  • 25. 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-HEALING MATERIALS SOFTWARE ERROR DETECTION AND SOFTWARE HEALING AGENTS MEAN SELF-HEALING SOFTWARE SYSTEMS
  • 26. THE BEHAVIOR OF A SYSTEM THAT FOLLOWS AGILE ARCHITECTURE CAN BE CALLED ARCHITECTURAL INTELLIGENCE ABILITY OF THE SYSTEM TO DIRECT, OPTIMIZE, AND HEAL ITSELF
  • 27. FLEXIBLE STRUCTURE AND BEHAVIOR. AGILE ARCHITECTURE BUSINESS-CENTRIC SIMPLE-AS-POSSIBLE EVENT-DATA-DRIVEN SINGLE-RESPONSIBILITY-BASED CLOUD-ORIENTED MULTI-PARADIGM SELF-DIRECTING SELF-OPTIMIZING SELF-HEALING
  • 28. https://www.xing.com/net/pri1f221ex/agilearchitecture Adam Boczek Agile Coach | Enterprise Architect xing.com/profiles/Adam_Boczek @nativeagile adam.boczek@codecentric.de http://codecentric.de @codecentric

×