@sixty_north
Deliberate Architecture
Responding to Requirements over Following Fashion
1Dr Robert Smallshire
@robsmallshire
Deliberate Architecture Responding to Requirements over Following - - PowerPoint PPT Presentation
Deliberate Architecture Responding to Requirements over Following Fashion Dr Robert Smallshire @robsmallshire @sixty_north 1 2 3 4 Gartner Hype Cycle https://en.wikipedia.org/wiki/Hype_cycle 5 Gartner Hype Cycle Plug-ins UML
@sixty_north
Deliberate Architecture
Responding to Requirements over Following Fashion
1Dr Robert Smallshire
@robsmallshire
Gartner Hype Cycle
https://en.wikipedia.org/wiki/Hype_cycle
Gartner Hype Cycle
https://en.wikipedia.org/wiki/Hype_cycle
Pipes & Filters Layers Plug-ins MVCSoftware Architecture Practices SOA Agile Microservices Serverless Event-sourcing UML
7 Ambiguity Effect Anchoring Availability Heuristic Availability Cascade Bandwagon Effect Belief Bias Cheerleader Effect Choice-Supportive Bias Confjrmation Bias Declinism Endowment Effect Exaggerated Expectation Focussing Effect Hindsight-bias Hot-hand Fallacy Hyperbolic Discounting Illusory Truth Effect Sunk Cost Fallacy Mere Exposure Effect Negativity Bias Outcome Bias Post-purchase Rationalization Pro-Innovation Bias Projection Bias Subjective Validation Survivorship Bias Time-saving bias Recency Effect
security usability performance maintainability reliability cost robustness power efficiency deployability scalability testability fmexibility
The System ( the 'solution' ) system boundary
users developers testers business
customers marketing / sales management
Other system(s)
developers / owners
Incident forces
The System ( the 'solution' ) system boundary
users developers testers business
customers marketing / sales management
Other system(s)
developers / owners
Fd Ft Fm Fo Fs Fb Fu Fc
Incident forces
But will your engineered structure support them, or buckle?
15The incident forces will resolve to zero
Fd Ft Fm Fo Fs Fb Fu Fc
Fc + Fu + Fb + Fs + Fd + Ft + Fm + Fo = 0
ΣF = Ffunctions + Fqualities + Fconstraints + Fprinciples
Incident forces can be grouped into four terms
16Factoring incident forces
Fprinciples Fconstraints Fqualities Ffunctions
ΣF = Ffunctions + Fqualities + Fconstraints + Fprinciples
features use cases functionality
What is it for?
non-functional requirements (NFRs) performance scalability security maintainability usability fault tolerance etc.
How well should it work? How would we like to build it?
architectural styles technology choices standards
What limits our approach?
cost legal / compliance time staff capacity staff experience
Incident forces can be grouped into four terms
17Factoring incident forces
Fconstraints Fqualities Ffunctions
ΣF = Ffunctions + Fqualities + Fconstraints + Fprinciples
features use cases functionality
What is it for?
non-functional requirements (NFRs) performance scalability security maintainability cost fault tolerance etc.
How well should it work? How would we like to build it?
architectural styles technology choices standards
What limits our approach?
cost legal / compliance time staff capacity staff experience
Fprinciples
Inputs (Requirements) Outputs (Experienced) Functional Requirements Features Non-Functional Requirements Qualities Ingredients + Recipe Taste + Texture
Features Qualities
Bass Clements & Kazman (2003) Software Architecture in Practice “Functionality and quality atuributes are
Features Qualities
Bass Clements & Kazman (2003) Software Architecture in Practice “Functionality and quality atuributes are
ideallybutunachievably
George Henry Lewes 1817–1878 “Every resultant is either a sum or a difference of the co-operant forces; their sum, when their directions are the same – their difference, when their directions are
traceable in its components, because these are homogeneous and commensurable. It is
adding measurable motion to measurable motion, or things of one kind to other individuals of their kind, there is a co-
emergent is unlike its components insofar as these are incommensurable, and it cannot be reduced to their sum or their difference.”
emergent accidental
The System Features Qualities Required Constraints Actual M a i n t a i n a b i l i t y U s a b i l i t y S c a l a b i l i t y e m e r g e n t q u a l i t i e s Defects ×1000 cross-cutting concerns Software Architecture Agile Process
facilitates delivers deliberate design for constrains ‘how’
“However beautiful the strategy, you should
Winston Churchill
Many local maxima which are globally suboptimal
Fitness landscapes of software qualities
26https://commons.wikimedia.org/wiki/File:Visualization_of_two_dimensions_of_a_NK_fjtness_landscape.png
Navigating this space is what makes software architecture difficult
High-dimensional software quality space
27security usability performance maintainability reliability cost robustness power efficiency deployability scalability testability fmexibility
https://commons.wikimedia.org/wiki/File:SWAG_Fitness_Landscape.png
Architecture as a counterbalance to ‘agile’ featurism
Different structures can deliver the same functionality
Functionality is independent of structure
29Web Application Native iOS Application
Interoperability Portability Usability Maintainability Deployability Performance Interoperability Portability Usability Deployability Performance Maintainability
Identical Functionality
Different structures can deliver the same functionality
Functionality is independent of structure
30Mobile Web Application Native iOS Application
Interoperability Portability Usability Maintainability Deployability Performance Interoperability Portability Usability Deployability Performance Maintainability Main
Microservices Layered Monolith Three Tier Architecture
31Resilience Operability Modifjability (Replaceability) Maintainability Performance formance Resilience Operability Modifjability Deployability Maintainability Performance Resilience Operability Modifjability Deployability Maintainability Performance Deployability
“Some architectural styles are often portrayed as “silver bullet” solutions for all forms of software. However, a good designer should select a style that matches the needs of the particular problem being solved”
Forrest Wilson
with William Loerke and Ron Keenberg
Personal stylistic concerns have no place in the work of the professional architect.
TODO IMPEDED DOING DONE
https://www.mountaingoatsoftware.com/blog/multiple-levels-of-done
The code is well written The code is checked in [Doh!] The code was pair programmed/peer reviewed The code comes with tests at all appropriate levels The feature the code implements has been documented Definition of Done Q u a l i t i e s ? ! The change doesn’t degrade any software qualities below acceptable levels
TODO IMPEDED DOING ALMOST DONE NEARL Y THERE
Monitoring
Who cares about the system?
38The System ( the 'solution' )
Stakeholders
system boundary
users developers testers business
customers marketing / sales management
Other system(s)
developers / owners
Success depends on who participates
39The System ( the 'solution' )
Stakeholders
users developers testers business
customers marketing / sales management technical authors analysts trainers supporters
system integrators designers architects sys-admins
Who cares about the system?
40The System ( the 'solution' )
Functionality
users developers testers business
customers marketing / sales management technical authors analysts trainers supporters
system integrators designers architects sys-admins
Who cares about the system?
41The System ( the 'solution' )
Development and maintenance costs
users developers testers business
customers marketing / sales management technical authors analysts trainers supporters
system integrators designers architects sys-admins
Who cares about the system?
42The System ( the 'solution' )
Usability
users developers testers business
customers marketing / sales management technical authors analysts trainers supporters
system integrators designers architects sys-admins
Who cares about the system?
43The System ( the 'solution' )
Performance or scalability
users developers testers business
customers marketing / sales management technical authors analysts trainers supporters
system integrators designers architects sys-admins
Architect as champion for software qualities
You look after the quality attributes The features will look after themselves