SlideShare a Scribd company logo
1 of 28
a toolbox of
techniques for
software
architecture
reviews
jason baragry
@jbaragry
ad-hoc
reviews
@jbaragry
essential problem
“Identify the forces on the system
Grok the system’s essential architecture.
Generate scenarios that exercise the
relevant forces against the architecture.
Throw the essential architecture against
those scenarios, then evaluate how they land
relative to the relevant forces.
Wash, rinse, repeat”
- Grady Booch
@jbaragry
@jbaragry
active design reviews
. take an active stance
. plan in advance
. ask open questions
plan your review
software
architecture review
and assessment
(SARA) report
@jbaragry
@jbaragry
structure of an
architecture review
@jbaragry
structure of an
architecture review
@jbaragry
structure of an
architecture review
@jbaragry
structure of an
architecture review
@jbaragry
structure of an
architecture review
@jbaragry
structure of an
architecture review
evaluation criteria
. system qualities
. experience
. scenarios
. checklists
. architecture smells
@jbaragry
identify and
prioritise
system
qualities
@jbaragry
@jbaragry
plus: http://en.wikipedia.org/wiki/List_of_system_quality_attributes
scenarios
. (mini) quality
attribute workshops
. testable
. benefit/cost
@jbaragry
checklists
. group by qualities
. open questions
@jbaragry
@jbaragry
methods and
techniques
. scenario based
. experience based
. quality specific
scenario based methods
@jbaragry
. architecture tradeoff
and analysis method
(ATAM)
. lightweight architecture
alternative assessment
method (LAAAM)
. scenario-based
ATAM design peer
review
experience based
methods
@jbaragry
. tiny architectural
review approach
TARA
. siemens ”experience-
based reviews”
quality focused methods
. maintainability: ALMA
. sustainability: MORPHOSIS
. performance: CPASA
. code metrics: cyclomatic complexity
afferent and efferent coupling
. formal correctness: TLA+
. security: OWASP, BSIMM, STRIDE,
DREAD
@jbaragry
pragmatics and
people issues
@jbaragry
in-house /
scheduled
in-house /
triggered
external /
scheduled
external /
triggered
tool selection and customisation
Amount of Ceremony
∝
Consequence of Loss +
Difficulty of Communication
@jbaragry
source: Alistair Cockburn on Agile Methods:
http://alistair.cockburn.us/People+and+methodologies+in+software+development
using the toolbox for reviews
. take an active stance
. plan the review and adapt as needed
. work through system qualities
. develop the scenarios or checklists
for those qualities
. choose a scenario- or experience-
based method
. customise the appropriate level of
ceremony
. identify the people issues and adjust
@jbaragry
using the toolbox for design
test driven architecture
. use quality attributes and test
criteria early in the project
. product owners also own quality
. user stories, acceptance criteria
or architecture reviews
@jbaragry
@jbaragry
more detail
. swarchitectonics.blogspot.no
or
. miles.no/blogg
references
• Booch on Architecture Reviews (Booch2010)
• Industry study of how people use arch review techniques (Babar2009 [pdf])
• Active Design Reviews (Parnas1985 [pdf])
• ISO/IEC 25010 standard for software product quality
• SARA Report (Obbink2002, [pdf])
• Quality Attribute Workshop
• Mini Quality Attribute Workshop (and presentation video)
• ATAM method
• LAAM (Lightweight Architecture Alternative Assessment Method)
• ATAM Peer Review
• TARA (Tiny Architectural Review Approach)
• Experience-based Reviews
• TOGAF Architecture Compliance Checklists
• Stackoverflow architecture checklist questions
@jbaragry
image attribution
• Title Slide / Todd Quackenbush / Creative Commons
• Essential Problem / Republica / Creative Commons
• Toolbox outline / freegr / Creative Commons
• Hammer / BenjaminNelan / Creative Commons
• Ruler / Jeff Sheldon / Creative Commons
• Plan / Ales Krivec / Creative Commons
• Evaluation Techniques/ Ales Krivec / Creative Commons
• Quality Focussed / Alan / Creative Commons
• Tool selection / Stux / Creative Commons
• Toolbox / Florianric / Creative Commons
• More Detail / Mike Kenneally / Creative Commons
• Pragmatics / grisbonn1974 / Creative Commons
• Test driven architecture / Lee John Phillips / The Shed Project
@jbaragry
FAGLIG AUTORITET OG VARME
@jbaragry

More Related Content

What's hot

Architecture business cycle ( abc )
Architecture business cycle ( abc )Architecture business cycle ( abc )
Architecture business cycle ( abc )Dr Reeja S R
 
Software architecture
Software architectureSoftware architecture
Software architectureUdayna
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modelingSyed Zaid Irshad
 
IBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's new
IBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's newIBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's new
IBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's newSandra Sergi
 
Applying reference models with archi mate
Applying reference models with archi mateApplying reference models with archi mate
Applying reference models with archi mateBas van Gils
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architectureLilia Sfaxi
 
An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptswweinmeyer79
 
Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)ShudipPal
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural designdevika g
 
Unified Process
Unified ProcessUnified Process
Unified Processguy_davis
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Managementelliando dias
 
Enterprise Architecture
Enterprise ArchitectureEnterprise Architecture
Enterprise ArchitectureAlan Mather
 
Establishing and analyzing traceability between artifacts
Establishing and analyzing traceability between artifactsEstablishing and analyzing traceability between artifacts
Establishing and analyzing traceability between artifactsIBM Rational software
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- designLilia Sfaxi
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )eshtiyak
 

What's hot (20)

Architecture business cycle ( abc )
Architecture business cycle ( abc )Architecture business cycle ( abc )
Architecture business cycle ( abc )
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modeling
 
IBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's new
IBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's newIBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's new
IBM Jazz Agile Collaborative Lifecycle Management 6.0.x What's new
 
Applying reference models with archi mate
Applying reference models with archi mateApplying reference models with archi mate
Applying reference models with archi mate
 
Class notes
Class notesClass notes
Class notes
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architecture
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture concepts
 
Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
Unified Process
Unified ProcessUnified Process
Unified Process
 
Architecture evaluation
Architecture evaluationArchitecture evaluation
Architecture evaluation
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Enterprise Architecture
Enterprise ArchitectureEnterprise Architecture
Enterprise Architecture
 
Establishing and analyzing traceability between artifacts
Establishing and analyzing traceability between artifactsEstablishing and analyzing traceability between artifacts
Establishing and analyzing traceability between artifacts
 
Software process
Software processSoftware process
Software process
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- design
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Togaf introduction ver1 0
Togaf introduction ver1 0Togaf introduction ver1 0
Togaf introduction ver1 0
 

Viewers also liked

Easy introduction to Blockchain
Easy introduction to BlockchainEasy introduction to Blockchain
Easy introduction to BlockchainJason Baragry
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product LinesJason Baragry
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 

Viewers also liked (6)

Saam
SaamSaam
Saam
 
Easy introduction to Blockchain
Easy introduction to BlockchainEasy introduction to Blockchain
Easy introduction to Blockchain
 
ATAM
ATAMATAM
ATAM
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product Lines
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
4+1 view model
4+1 view model4+1 view model
4+1 view model
 

Similar to Toolbox of techniques for Architecture Reviews

Moving To The Cloud, Evaluating Architectures
Moving To The Cloud, Evaluating ArchitecturesMoving To The Cloud, Evaluating Architectures
Moving To The Cloud, Evaluating ArchitecturesMark Sigler
 
Agile software development
Agile software developmentAgile software development
Agile software developmentMat Siems
 
Solo Requisitos 2008 - 07 Upc
Solo Requisitos 2008 - 07 UpcSolo Requisitos 2008 - 07 Upc
Solo Requisitos 2008 - 07 UpcPepe
 
Dot Net Notts Js Unit Testing at Microlise
Dot Net Notts Js Unit Testing at  MicroliseDot Net Notts Js Unit Testing at  Microlise
Dot Net Notts Js Unit Testing at MicroliseJonathan Gregory
 
SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021Shelley Lambert
 
Js unit testingpresentation
Js unit testingpresentationJs unit testingpresentation
Js unit testingpresentationJonathan Gregory
 
Sledgehammer to Fine Brush for QA
Sledgehammer to Fine Brush for QASledgehammer to Fine Brush for QA
Sledgehammer to Fine Brush for QAShelley Lambert
 
Are You Well Architected?
Are You Well Architected?Are You Well Architected?
Are You Well Architected?joehack3r
 
Beginners overview of automated testing with Rspec
Beginners overview of automated testing with RspecBeginners overview of automated testing with Rspec
Beginners overview of automated testing with Rspecjeffrey1ross
 
Software Project Management lecture 10
Software Project Management lecture 10Software Project Management lecture 10
Software Project Management lecture 10Syed Muhammad Hammad
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms Ivano Malavolta
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)Oursky
 
Scrum and Kanban - Getting the Most from Each
Scrum and Kanban - Getting the Most from EachScrum and Kanban - Getting the Most from Each
Scrum and Kanban - Getting the Most from EachMichael Sahota
 
Working Software Over Comprehensive Documentation
Working Software Over Comprehensive DocumentationWorking Software Over Comprehensive Documentation
Working Software Over Comprehensive DocumentationAndrii Dzynia
 
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...MongoDB
 
Modern development paradigms
Modern development paradigmsModern development paradigms
Modern development paradigmsIvano Malavolta
 

Similar to Toolbox of techniques for Architecture Reviews (20)

Moving To The Cloud, Evaluating Architectures
Moving To The Cloud, Evaluating ArchitecturesMoving To The Cloud, Evaluating Architectures
Moving To The Cloud, Evaluating Architectures
 
Architecture evaluation
Architecture evaluationArchitecture evaluation
Architecture evaluation
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Solo Requisitos 2008 - 07 Upc
Solo Requisitos 2008 - 07 UpcSolo Requisitos 2008 - 07 Upc
Solo Requisitos 2008 - 07 Upc
 
Dot Net Notts Js Unit Testing at Microlise
Dot Net Notts Js Unit Testing at  MicroliseDot Net Notts Js Unit Testing at  Microlise
Dot Net Notts Js Unit Testing at Microlise
 
SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021
 
Js unit testingpresentation
Js unit testingpresentationJs unit testingpresentation
Js unit testingpresentation
 
Sledgehammer to Fine Brush for QA
Sledgehammer to Fine Brush for QASledgehammer to Fine Brush for QA
Sledgehammer to Fine Brush for QA
 
Are You Well Architected?
Are You Well Architected?Are You Well Architected?
Are You Well Architected?
 
Beginners overview of automated testing with Rspec
Beginners overview of automated testing with RspecBeginners overview of automated testing with Rspec
Beginners overview of automated testing with Rspec
 
Software Project Management lecture 10
Software Project Management lecture 10Software Project Management lecture 10
Software Project Management lecture 10
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms
 
Sda 6
Sda   6Sda   6
Sda 6
 
Iterative software development
Iterative software developmentIterative software development
Iterative software development
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)
 
Rational CLM at a glance
Rational CLM at a glanceRational CLM at a glance
Rational CLM at a glance
 
Scrum and Kanban - Getting the Most from Each
Scrum and Kanban - Getting the Most from EachScrum and Kanban - Getting the Most from Each
Scrum and Kanban - Getting the Most from Each
 
Working Software Over Comprehensive Documentation
Working Software Over Comprehensive DocumentationWorking Software Over Comprehensive Documentation
Working Software Over Comprehensive Documentation
 
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
 
Modern development paradigms
Modern development paradigmsModern development paradigms
Modern development paradigms
 

Recently uploaded

VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
1C_PNS.pdf Philippines National standard
1C_PNS.pdf Philippines National standard1C_PNS.pdf Philippines National standard
1C_PNS.pdf Philippines National standardraffietividad53
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 

Recently uploaded (20)

VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
1C_PNS.pdf Philippines National standard
1C_PNS.pdf Philippines National standard1C_PNS.pdf Philippines National standard
1C_PNS.pdf Philippines National standard
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 

Toolbox of techniques for Architecture Reviews

Editor's Notes

  1. most organisations use home-grown, informal, ad-hoc techniques . 40% that claim to use a structured approach very few have heard of or use any established technique improve what you do by becoming familiar with existing techniques and using them _as appropriate_
  2. . Massive amounts of information sent to everyone who might have an interest - swamped with information . Many reviews have no background in sw dev and don’t know what they are reviewing - many end up saying nothing or, worse, focussing on issues that are not relevant . “Review” workshop turns into a tutorial that explains how it works . Devolves into round-table discussion with a random list of suggestions for the designers Result: things that should be captured, discussed, and adjusted in the review process end up slipping through Tend to focus solely on functionality and not system qualities
  3. basic approach is pretty simple everything is just different ways to do this
  4. Simplest Tool From 30+years ago Which qualities are important and why? How will you evaluate them wrt to the architecture? Not “Is it reusable/service oriented/fast enough?” Instead: “Explain the flow bw the user interface and the customer DB“, “which information is maintained between client calls? How is that dealt with in a failover situation?” Other useful bits Most likely iterative approach. High level review followed by smaller reviews focusing on specific aspects / qualities You need something that is reviewable – architecture is more than box and line diagrams or 60 pages with prose
  5. 1999 : working group to collect industrial experience and research techniques. many participants from multiple organisations presented the SARA report at the ICSE in 2002 what steps to follow, what questions to ask, what information to collect and document, what documentation templates to use, and tips on how to manage the social, managerial, and technical issues that arise when reviewing an artifact as important and complicated as a software architecture.
  6. Inputs Outputs Methods and Techniques Review Workflow Pragmatics and People Issues see blog entry for more details - difficult to identify ASDs and ASRs
  7. Inputs Outputs Methods and Techniques Review Workflow Pragmatics and People Issues see blog entry for more details - difficult to identify ASDs and ASRs
  8. - Objectives: conformance, quality, opportunities, example - Scope: all quals (just perf)? whole sys (just domain)? all systems in value chain - Arch: context drives doc formality, objectives drive views, other artefacts are useful - Criteria: get some! will come back to this
  9. - Intangibles: can be most important (shared view, archs get to explain to others) - want to find significant reqs and design choices (not always known in advance) - Tradeoffs: not important to find "right and wrong", explain consequences of tradeoffs - Risks: what most people think of - but also outside the arch, eg: process - lastly: what didn't you review, who couldn't attend, etc
  10. - will come back to this - context will determine scenario v experience v code analysis etc
  11. - before: eg: does everyone have time in their calendar, do you have champion that can get them to attend? - after: who are you communicating for? how to summarise a lot of detail? - retrospective for yourself
  12. - will come back to this also: - huge difference between internal, regular, planned and external, triggered, one-off
  13. experience = evaluation criteria as tacit knowledge scenarios = specific to the project / domain checklists = use them across projects / domains
  14. Don’t call them NFRs Prioritise them You can’t check everything, you will need to make tradeoffs, so you need to specify what’s most important often come from business drivers
  15. Start with ISO 25010 standard for software product quality Extend it as you need: e.g: its security aspects are not very comprehensive, TTM is often a criteria Eg: for functional correctness Wikipedia list is huge
  16. After prioritising your quality attributes, then you need to testable criteria – either scenarios or experience based. Start with scenarios Some common for all projects, others need to be created per project/solution Scenario format: SMART or “given, when, then” - Tom Gilb to quantify everything Collect them during the course of the project – also leads to Test Driven Architecture good way to get stakeholders involved good way to build knowledge as an architect if you are relatively new to a domain BUT : scenarios are hard…
  17. most popular approach good for things that recur across projects – technology and detailed, application architecture related issues see also TOGAF and Stackoverflow lists important to group them and formulate them as open questions (not like this list)
  18. lots of specific methods exist most fall into 1 of 2 categories: experience-based and scenario-based
  19. ATAM stop the boat and run a big review 1. Present the ATAM. 2. Present business drivers. (iteration 1) Present architecture. 4. Identify architectural approaches. 5. Generate quality attribute utility tree. 6. Analyze architectural approaches. (iteration 2) 7. Brainstorm and prioritize scenarios. 8. Analyze architectural approaches. 9. Present results. 
 Learn ATAM so that you can customise it to your needs. LAAAM – in-process technique just to get stakeholder to focus on qualities Peer Review – iterative, focussing on a few scenarios/qualities each time Important: ATAM as it is presented is usually is often too heavy to use in industrial settings (in enterprise domains) too hard to get all the stakeholders together at the same time too hard to set off that much time in a fast moving project, etc But it’s a very useful method to know about and understand so that you can customise it to your context
  20. Scenarios are hard scenario-based methods assume there is no existing system sometimes you already have something to review –much of industrial assessment is brown-field have a sponsor with a very specific goal that doesn’t need a full review often you have lots of tacit knowledge about a domain or the owner has a very explicit need, don’t need to get into scenario workshops (in practice, you already have the scenarios in that tacit knowledge) master-apprentice pattern to build up experience for other architects
  21. many more methods modifiability, long-lived applications, etc and there are 1001 methods just for security
  22. social, psychological, and managerial context Make developers feel confident, not defensive. presence of non-technical people or people from outside the project. pro and con. good for communication, can be bad for defensiveness using a review can help to make political games more rational. having an external reviewer is often the best approach, but it increases the tension with the project team planned, in-house reviews are a good way to spread knowledge, with minimal tension, but you risk missing things that external eyes will pick up stakeholder management ego, confrontation, self-defence are all consequences you need to deal with planning and finding time with people is a limiting factor focus on risk – don’t get sidetracked or bikesheded as a reviewer – bury your ego. There to raise issues not solve them
  23. most important tool – use your common sense “a fool with a tool is still a fool” amount of ceremony is proportional to the consequence of loss and the difficulty of communication how formal should the review be? how much documentation of the architecture do you need? is the goal to test all evaluation criteria or to make them visible and part of the design discussion?
  24. - build up your toolbox and choose the one that is appropriate to the context of your project
  25. also a toolbox for driving architecture design evaluation criteria are just test cases for your architecture = test driven architecture
  26. Just a taste in this presentation Writing up this topic as a series of articles on these blogs. Presenting more detail and links to tools, books, and articles you can use to build your toolbox