adam boczek 2015 agile architecture in 10 steps v1.0
TRANSCRIPT
![Page 1: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/1.jpg)
Agile Architecturein 10 Steps v1.0
A DA M B O CZ E K | 0 1 .20 15
![Page 2: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/2.jpg)
MotivationAG IL E A R CHIT E CTUR E
![Page 3: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/3.jpg)
Innovation Drives Business…
Evolutionary Innovation keeps your business running only and is not in focus of the business nowadays (e.g. VW Beetle).
Revolutionary Innovation guarantees nowadays the business success (e.g. electric car).
Disruptive Innovation changes existing or creates new markets causing old business to die (e.g. digital camera).
…and requires supporting IT.
![Page 4: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/4.jpg)
Revolutionary or Disruptive Driven Business…
Architecture is the 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).
Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change. (Booch 2006)
Architecture is non-functional. Architecture is about Quality. (Graves 2010)
…needs Architecture, Agile Architecture.
![Page 5: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/5.jpg)
Architecture Empowers…
Declarative knowledge is the type of knowledge that is, by its very nature, expressed in declarative sentences or indicative propositions.
Declarative knowledge focuses on the answer to the question “why am I able to do it”.
Procedural knowledge in opposition focuses on the answer to the question “how to do it”.
…Declarative Knowledge.
![Page 6: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/6.jpg)
The Promise of the Agile Architecture
Reduction of risks throughout transparency, abstractions and partitioning
Precise definition and understanding of your business
Active collaboration of the domain and IT experts on the software design
Clean definition of the boundaries around abstractions
Better organization of your enterprise architecture
Agile, iterative, continuous and aim-oriented modeling
In-sync with the agile development process
![Page 7: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/7.jpg)
Agile Architecture Focuses On Simplicity usingTransparency, Abstractions and Partitioning
Transparency investigates the “as-is” architectural state
Abstractions focus using models on the essential architectural challenges
Partitioning creates taxonomy for grouping architectural elements
…Complexity is the Disease, Simplicity is the Cure
![Page 8: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/8.jpg)
Transparency Helps to Define As-Is and Desired State (as a Pillar of Empiricism)
1
3
2
![Page 9: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/9.jpg)
Abstractions Help to Find Solutions to the Real World Problems
COMMUTING DIAGRAM TO EMPHASIZE MODELSWHEN SOLVING COMPLEX REAL WORLD PROBLEM*
1
2 3
4
![Page 10: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/10.jpg)
Partitioning Helps to Structure the Functionality of a Software System
Reduces complexity of any system*
Closely related to a mathematical concept known as equivalence relations.
The most important equivalence relation, from the perspective of enterprise architecture, is synergy.
Two functions are synergistic when each requires the other to be effective.
Synergy is closely related to an inverse equivalence relation known as autonomy.
![Page 11: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/11.jpg)
Design ProcessAG IL E A R CHIT E CTUR E
![Page 12: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/12.jpg)
Business Architecture“4+1 View Model” by Chris Reynolds
Processes
EntitiesCommunication
Facades
GOALS
![Page 13: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/13.jpg)
IT Architecture“4+1 View Model” by Philippe Kruchten
Development
DeploymentQuality
Functionality
SCENARIOS
![Page 14: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/14.jpg)
Interaction Between Business and IT Architectures
“Impedance Mismatch”
Processes
EntitiesCommunication
Facades
GOALS
Development
DeploymentQuality
Functionality
SCENARIOS
![Page 15: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/15.jpg)
Functional Domain N
Functional Domain B
Functional Domain A
Functional Domains Represent the Glue between Business and IT Architectures
Processes
Entities Quality
Functionality
![Page 16: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/16.jpg)
Step 01Identification of the Business Domains
![Page 17: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/17.jpg)
Business Entity Model (BEM)Shows Existing Objects and Their Relations
Used to get better understanding of the business, objects involved and their relationships.
These relationships define cardinalities to emphasis places with high complexity (as many-to-many is much more complex as one-to-one).
Notation used is based on the class diagrams of UML, however this model must not be understood as a class or data entity diagram.
![Page 18: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/18.jpg)
Step 02Creation of a Business Entity Model
![Page 19: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/19.jpg)
Ubiquitous LanguageStandardizes Communication of Stakeholders
Important to avoid misunderstandings in definition of the requirements and communication.
Initially based on the Business Entity Model.
Defines entities as well as actions based on the defined cardinalities.
Uses common syntax <verb object> e.g. create customer.
![Page 20: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/20.jpg)
Step 03Creation of the Ubiquitous Language
Customer
Address
Order
Offer
Accommodation
Flight
Insurance
Offer
![Page 21: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/21.jpg)
Process ArchitectureDefines the Scope of the Software System
Business processes consist of actions that are run in a specific order and as a result create, update or destroy business entities.
Due to their complexity it is important to use a process architecture as a taxonomy system for them.
Process architecture uses horizontal levels which represent various details of the modelled processes, from value chains down to sub-processes.
![Page 22: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/22.jpg)
Step 04Definition of the Initial Process Architecture
Business Processes Taxonomy
Business Process Models
Level 0Value Chains
Level 1 Main Tasks
Level 2Process Map
Level 3End-to-End Process Models
Level 4Sub-process Models
![Page 23: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/23.jpg)
Process ArchitectureModelling of the Core Business Processes
Models emphasis a certain aspects of the modelled object, thus create an abstraction of it. As a result it simplifies its analysis.
In case of business processes modelling focuses on the activities, their order and rules defining the flow and events.
Models at level 3 represent end-to-end processes.
Models at level 4 represent sub-processes.
![Page 24: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/24.jpg)
Step 05Modelling of the Core Business Processes
![Page 25: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/25.jpg)
Agile Architecture Uses Vertical Requirements
Processes
Presentation
Orchestration
Service
Persistence
Ver
tical
Req
uire
men
t1
Ver
tical
Req
uire
men
t2
Ver
tical
Req
uire
men
t…
Ver
tical
Req
uire
men
t…
Relevant horizontal layers
![Page 26: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/26.jpg)
Define order
Step 06Definition of Vertical Requirements Based on Process Models
Presentation
Orchestration
Service
Persistence
Ver
tical
Req
uire
men
t1
Ver
tical
Req
uire
men
t2
Ver
tical
Req
uire
men
t…
Ver
tical
Req
uire
men
t…
1
2
3
![Page 27: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/27.jpg)
How Much Architecture Remains Agile?
20-30% of
Planned Design
70-80% of
Emergent Design
EMERGENT DESIGN
You Ain’t Gonna Need It (YAGNI)
PLANNED DESIGN
Big Design Up-Front (BDUF)
Architectural effort scale
Agile Architecture
![Page 28: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/28.jpg)
Agile Architecture is Based on the Lean Process Principles
Defer commitment and decide as late as possible
Deliver as fast as possible
See and optimize the whole
Work iterative and incremental
ITERATION
ARCHITECTURAL INCREMENT
1st2nd ...th
![Page 29: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/29.jpg)
Construction FlavorAG IL E A R CHIT E CTUR E
![Page 30: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/30.jpg)
Agile Architecture is Business Centric
Entities
Controllers
Ext. Interfaces
Use Cases
CLEAN ARCHITECTUREBY BOB MARTIN
Application specific
business rules
Technical interface adapters and
frameworks and drivers
Dependency Rules
Enterprise wide business rules
![Page 31: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/31.jpg)
Agile Architecture is Multi Paradigm
Entities
Controllers
Ext. Interfaces
Use Cases
Entities
Controllers
Ext. Interfaces
Use Cases
Entities
Controllers
Ext. Interfaces
Use Cases
Active Record Domain Driven Design
Lambda/CQRS
![Page 32: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/32.jpg)
Agile Architecture Uses Core Concepts of Domain Driven Design*
At the heart of DDD (Domain Driven Design) lies the concept of the domain model.
Domain models are typically composed of elements such as entities, value objects, aggregates, and described using terms from a ubiquitous language.
A bounded context is the context for one particular domain model and defines implementation boundaries.
* by Eric Evans
![Page 33: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/33.jpg)
Business Domain Consists of Subdomains and Bounded Contexts
Sub-domain A
Sub-domainB
Sub-domainC
Bounded Context A
Sub-domainD
Bounded Context B
Sub-domainE
Bounded Context C
Bounded Context – technical boundarySub-domain – functional boundary
Up-stream/Down-streamrelationship
Business Domain
![Page 34: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/34.jpg)
Step 07Definition of the Bounded Contexts
Commission and Billing
Sub-domain
Publisher Sub-domain
Advertiser Sub-domain
Core Bounded Context
Ad-TrackingSub-domain
TracingSub-domain
Streaming Bounded Context
Statistics/DWH
Sub-domain
Near-Real-time
Sub-domain
Reporting Bounded Context
Bounded Context – technical boundarySub-domain – functional boundary
Up-stream/Down-streamrelationship
Power Advertising Domain
![Page 35: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/35.jpg)
Core 4 Quality (non-Functional) Attributes*that Drive Agile Architecture
Performance and Scalability - ability of a system to predictably execute within its mandated performance profile and to handle increased processing volumes in the future.
Availability and Resilience - ability of a system to be fully or partly operational as and when required and to effectively handle failures that could affect system availability.
Evolution - ability of a system to be flexible in the face of the inevitable change that all systems experience after deployment, balanced against the costs of providing such flexibility.
Security - ability of the system to reliably control, monitor, and audit who can perform what actions on which resources and the ability to detect and recover from security breaches.
* from Software Systems Architecture, Rozanski&Woods 2011
![Page 36: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/36.jpg)
Architectural RisksShape Agile Architecture
Agile architecture focuses on risks by enforcing design to reduce them
Architectural decisions and their benefits are aligned with their costs
Architectural design is used in situations where it is likely to have the most pay-off*
* from Just Enough Software Architecture, Fairbainks, 2013
![Page 37: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/37.jpg)
Business Domain/Quality Attribute Relevancy Matrix
BD/QA Relevancy Matrix helps to identify business domains where the QA in case of risks has the highest impact, thus pay-off if reduced
Domain A Domain B Domain C Domain D
Quality Attribute A High High
Quality Attribute B High High
Quality Attribute C High High
Quality Attribute D High
…
High impact thus in focus of Agile
Architecture
![Page 38: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/38.jpg)
Step 08Definition of the BD/QA Relevancy Matrix
Sales Order Product Customer …
Performance and Scalability High High High
Availability and Resilience High High
Evolution High High
Security High
…
…
…
![Page 39: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/39.jpg)
Solution StrategiesAre Backbone of the Agile Architecture
Solution strategies are core concept of the agile architecture due their focus on business value delivered by the solution
Solution strategies allow proper reasoning about architecture describing internal structure of the elements and collaboration between them
Best created using composite UML diagram type
![Page 40: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/40.jpg)
Step 09Definition of the Solution Strategies
![Page 41: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/41.jpg)
Building BlocksMake Business Architecture Part of IT
Building Blocks are counterparts to the Solution Strategies
They focus on the technical design used where it should have most pay-off
Similar to the solution strategies, building blocks describe elements and their relations
Best created using components UML diagram type
![Page 42: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/42.jpg)
Step 10Definition of the Building Blocks
![Page 43: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/43.jpg)
ConclusionAG IL E A R CHIT E CTUR E
![Page 44: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/44.jpg)
Agile Architecture Process SummaryReview, Refine & Extend, Repeat
Review, Refine and Extend, RepeatLet the agile architecture grow
together with your system
![Page 45: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/45.jpg)
Agile Architecture Process SummaryAll Artifacts at One Place
Level 0Value Chains
Level 1 Main Tasks
Level 2Process Map
Level 3End-to-End Process Models
Level 4Sub-process Models
Presentation
Orchestration
Service
Persistence
Ver
tical
Req
uire
men
t1
Ver
tical
Req
uire
men
t2
Ver
tical
Req
uire
men
t…
Ver
tical
Req
uire
men
t…
Sub-domain
A
Sub-domain
B
Sub-domain
C
Bounded Context A
Sub-domain
D
Bounded Context B
Sub-domain
E
Bounded Context C
Bounded Context – technical boundarySub-domain – functional boundary
Up-stream/Down-streamrelationship
Business Domain
Domain A
DomainB
Domain C
Domain D
Quality Attribute A High High
Quality Attribute B High High
Quality Attribute C High High
Quality Attribute D High
…
![Page 46: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/46.jpg)
Agile ArchitectureTakeaways
Mo
tiva
tio
n
Risk reduction
Agility support
Des
ign
Pro
cess
Declarative knowledge
Transparency
Abstractions
Partitioning
Co
nst
ruct
ion
Fla
vor
Business-Centric
Multi-Paradigm
Risk-Driven
![Page 47: Adam boczek 2015 agile architecture in 10 steps v1.0](https://reader034.vdocuments.net/reader034/viewer/2022052700/55a20e981a28abc30f8b4586/html5/thumbnails/47.jpg)
About Adam Boczek
Management Consultant @ codecentric AG
Architect since 1997, Agile protagonist since 2007, Coach, Manager
IT-Houses: Cirquent/NTT Data, LogicaCMG/CGI Group, CS Consulting AG/Capgemini, ACS/GFT Solutions
Customers: Provinzial Insurance, Deka Bank, Shell AG, Deutsche Bank, 1&1, SAP, NTT Data and more…
Adam’s main expertise areas:
• Enterprise Architectures, Agile Software Engineering & Project Management,
• Innovative Software Development Methods, Nearshore and Offshore Project Coordination
Agile Architecture coach, BPMN coach, AngularJS coach
Conference speaker: Berlin Expert Days 2014, Agile Dev Practices 2013, Manage Agile 2012 and more…
Adam’s connections: @nativeagile, http://nativeagile.com, http://boczek.com