SlideShare a Scribd company logo
1 of 25
talk @ Agile Gurgaon 2016
Copyright © 2015 SolutionsIQ Inc. All rights reserved.
6801 185th Ave NE, Suite 200
Redmond, WA 98052
solutionsiq.com
1.800.235.4091
Change Vector Tracking
A reflective approach towards designing large scale
software
BY
Ranjith Tharayil
Senior Agile Consultant & Technical Coach
rtharayil@soultionsiq.com
Expectations and take always
Understand the problem wrt design debt in large scale software systems.
Exposure to a novel technique called Change Vector Tracking (CVT)
Can start applying it right away
Knowledge of how change can be modelled as a weighted vector
Using CVT to make informed decision on architecture refactoring.
talk @ Agile Gurgaon 2016
About Me
https://in.linkedin.com/in/ranjiththarayil
Ranjith Tharayil
talk @ Agile Gurgaon 2016
talk @ Agile Gurgaon 2016
Design Is a Wicked Problem , a “wicked” problem is one that
could be clearly defined only by solving it, or by solving part of it
.This paradox implies, essentially, that you have to “solve” the
problem once in order to clearly define it and then solve it again
to create a solution that works
“
”
- McConnell, Steve. Code complete. Pearson Education, 2004.
Architecture style wrt embracing change
Organic
Architecture
Architecture
first
Just enough
Architecture
Emergent
Architecture
talk @ Agile Gurgaon 2016
Emergent design
Test Code Refactor
Test Code Refactor
Test Code Refactor
Test Code Refactor
Test Code Refactor
Test Code Refactor
Test Code Refactor
Test Code Refactor
Design
talk @ Agile Gurgaon 2016
Problem : Refactoring less focus on
architecture
System
Sub-
system
Modules
Modules
Modules
Sub-
system
Modules
Modules
Modules
Sub-
system
Modules
Sub-
system
Modules
modules
Refactoring , observed trends
»More focus on classes inside
modules
»Less focus on Modules ,sub-
Subsystem and system
»Inexperience team members
»Accumulate design debt
»Technical debt
talk @ Agile Gurgaon 2016
Example : Super Market
I 'am using a simple example to explain the problem , same is applicable for bigger complex systems
The super market has many products to sell
Each product has a
 quality
 cost
The rules for computation of Quality and Cost are different for
each product
Abstract Product
computeQuality()
computeCost ()
Concreate product 1
Concreate product 2
Concreate product n-1
Concreate product N
Example of a
concreate product
talk @ Agile Gurgaon 2016
Is this the best design ?
Onion
computeQuality()
computeCost ()
»Is this following SRP ? Single responsibility principle
»SRP : A class should have only one reason to change
»What if the pricing strategy of a product varies
from time to time ?
talk @ Agile Gurgaon 2016
How about a different design
Abstract Product
Pricing strategy
computeQuality()
Concreate product 1
Concreate product 2
Concreate product n-1
Concreate product N
PricingStrategy
CompteCost()
Strategy 1
Strategy 2
Strategy 3
talk @ Agile Gurgaon 2016
Another design
Product
PricingStrategy
QualityRule
PricingStrategy
CompteCost()
Strategy 1
Strategy 2
Strategy 3
QualityRule
Quality()
Rule 1
Rule 2
talk @ Agile Gurgaon 2016
Which design is better ?
talk @ Agile Gurgaon 2016
Which design is better ?
Answer is : it depends
Dependents on what ?
Lest try to define this context
Context
talk @ Agile Gurgaon 2016
Which design is better ?
If mostly we will be only adding / removing products
talk @ Agile Gurgaon 2016
Which design is better ?
• We will be constantly adding new products , also
• We need to modify pricing strategy every now and then
for existing products
talk @ Agile Gurgaon 2016
Which design is better ?
• We need to often modify both pricing strategy & quality
rule for existing products
talk @ Agile Gurgaon 2016
Design should depend on how the system
should behave
The behaviour of a system changes with time
Due to
new requirements
enhancements
Change is constant and can disrupt design & architecture
Need to track change and its effect on design/architecture
talk @ Agile Gurgaon 2016
Modelling change as a vector
Change has multiple dimensions
Hence it can be quantified using a vector like ax+by+cz
Example:
3(New Products) +
2(Modify Pricing strategy)
4(New Products) +
1(Miscellaneous)
2(Modify Pricing strategy) +
2(Modify Quality rule) +
1(Miscellaneous)
talk @ Agile Gurgaon 2016
How change can be modelled as a weighted
vector ?
We need to periodically review & document change vector for our system
3(New Products)
+
2(Modify Pricing strategy)
4(New Products)
+
1(Miscellaneous)
Few Months
Change: new requirement , Enhancement
Change
requests
Dev
Track
Change
vector
Refactor
talk @ Agile Gurgaon 2016
Change vector tracking from Architecture to
class
System
Sub-
system
Modules
classes
Modules
classes
Sub-
system
Modules
classes
Change
requests
Dev
Track
Change
vector
Refactor
talk @ Agile Gurgaon 2016
Change vector tracking in context of micro services
talk @ Agile Gurgaon 2016
Process and Ceremonies
• Change vector tracking meeting
• with TL , Architects
• Every month initially
• Cadence decide by need
• Time boxed
• Analyse change request from
• Source control (Past)
• Analyse product backlog (Future)
• Document Change vector
• Identify if any design debt , ideally you should have none
Change
requests
Dev
Track
Change
vector
Refactor
talk @ Agile Gurgaon 2016
Re-visiting expectations
Understand the problem wrt design debt in large scale software systems.
Exposure to a novel technique called Change Vector Tracking (CVT)
Can start applying it right away
» Add this jargon to your resume :P
Knowledge of how change can be modelled as a weighted vector
Using CVT to make informed decision on architecture refactoring.
talk @ Agile Gurgaon 2016
Questions
Acknowledgments :
After hearing out this technique Sharad Julka coined the term reflective design .
talk @ Agile Gurgaon 2016

More Related Content

Similar to Change vector tracking in emergent design

Benefits of Agile Software Development for Senior Management
Benefits of Agile Software Development for Senior ManagementBenefits of Agile Software Development for Senior Management
Benefits of Agile Software Development for Senior ManagementDavid Updike
 
Quality Engineering in today's cross-functTeams with TMAP
Quality Engineering in today's cross-functTeams with TMAPQuality Engineering in today's cross-functTeams with TMAP
Quality Engineering in today's cross-functTeams with TMAPRik Marselis
 
"Digital transformation and innovations implementation. Architectural points ...
"Digital transformation and innovations implementation. Architectural points ..."Digital transformation and innovations implementation. Architectural points ...
"Digital transformation and innovations implementation. Architectural points ...Fwdays
 
Secrets of Value Stream Mapping for Future State
Secrets of Value Stream Mapping for Future StateSecrets of Value Stream Mapping for Future State
Secrets of Value Stream Mapping for Future StateDevOps.com
 
Agile transformation approach by first consulting
Agile transformation approach by first consultingAgile transformation approach by first consulting
Agile transformation approach by first consultingRoel van Overdam
 
Agile transformation approach by First Consulting
Agile transformation approach by First ConsultingAgile transformation approach by First Consulting
Agile transformation approach by First ConsultingRoel van Overdam
 
The Art and Science of Communicating Your Product Strategy
The Art and Science of Communicating Your Product StrategyThe Art and Science of Communicating Your Product Strategy
The Art and Science of Communicating Your Product StrategyAggregage
 
Scrum e a Crise Mundial
Scrum e a Crise MundialScrum e a Crise Mundial
Scrum e a Crise MundialMarcos Garrido
 
Agile For Harel 4 08 V1
Agile For Harel 4 08 V1Agile For Harel 4 08 V1
Agile For Harel 4 08 V1Pini Cohen
 
what is the value of architecture
what is the value of architecturewhat is the value of architecture
what is the value of architectureAnoush Ghamsari
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfyedej15330
 
PMI CH AMM2023 - Bye Bye Project Manager - SwissQ.pptx
PMI CH AMM2023 - Bye Bye Project Manager - SwissQ.pptxPMI CH AMM2023 - Bye Bye Project Manager - SwissQ.pptx
PMI CH AMM2023 - Bye Bye Project Manager - SwissQ.pptxChristoph Wolf
 
[WSO2Con USA 2018] Winning Strategy For Enterprise Integration to Empower Dig...
[WSO2Con USA 2018] Winning Strategy For Enterprise Integration to Empower Dig...[WSO2Con USA 2018] Winning Strategy For Enterprise Integration to Empower Dig...
[WSO2Con USA 2018] Winning Strategy For Enterprise Integration to Empower Dig...WSO2
 
Agile Network India | What does it take to Transform into Product Centric IT ...
Agile Network India | What does it take to Transform into Product Centric IT ...Agile Network India | What does it take to Transform into Product Centric IT ...
Agile Network India | What does it take to Transform into Product Centric IT ...AgileNetwork
 
Bdo pro intro deck for web site
Bdo pro intro deck for web siteBdo pro intro deck for web site
Bdo pro intro deck for web siteBizDevOpsPro
 
Use Collaboration to Solve Your Biggest Challenges
Use Collaboration to Solve Your Biggest ChallengesUse Collaboration to Solve Your Biggest Challenges
Use Collaboration to Solve Your Biggest ChallengesApttus
 
TOGAF-IntroAndPrelim_v0.1.pdf
TOGAF-IntroAndPrelim_v0.1.pdfTOGAF-IntroAndPrelim_v0.1.pdf
TOGAF-IntroAndPrelim_v0.1.pdfssuser200e7a1
 
Architecture vs. Design vs. Agile: What’s the Answer?
Architecture vs. Design vs. Agile: What’s the Answer?Architecture vs. Design vs. Agile: What’s the Answer?
Architecture vs. Design vs. Agile: What’s the Answer?TechWell
 
Ptc creo essentials 3.0 overview new features
Ptc creo essentials 3.0 overview new featuresPtc creo essentials 3.0 overview new features
Ptc creo essentials 3.0 overview new featuresVictor Mitov
 

Similar to Change vector tracking in emergent design (20)

Benefits of Agile Software Development for Senior Management
Benefits of Agile Software Development for Senior ManagementBenefits of Agile Software Development for Senior Management
Benefits of Agile Software Development for Senior Management
 
Quality Engineering in today's cross-functTeams with TMAP
Quality Engineering in today's cross-functTeams with TMAPQuality Engineering in today's cross-functTeams with TMAP
Quality Engineering in today's cross-functTeams with TMAP
 
"Digital transformation and innovations implementation. Architectural points ...
"Digital transformation and innovations implementation. Architectural points ..."Digital transformation and innovations implementation. Architectural points ...
"Digital transformation and innovations implementation. Architectural points ...
 
Secrets of Value Stream Mapping for Future State
Secrets of Value Stream Mapping for Future StateSecrets of Value Stream Mapping for Future State
Secrets of Value Stream Mapping for Future State
 
Agile transformation approach by first consulting
Agile transformation approach by first consultingAgile transformation approach by first consulting
Agile transformation approach by first consulting
 
Agile transformation approach by First Consulting
Agile transformation approach by First ConsultingAgile transformation approach by First Consulting
Agile transformation approach by First Consulting
 
The Art and Science of Communicating Your Product Strategy
The Art and Science of Communicating Your Product StrategyThe Art and Science of Communicating Your Product Strategy
The Art and Science of Communicating Your Product Strategy
 
Scrum e a Crise Mundial
Scrum e a Crise MundialScrum e a Crise Mundial
Scrum e a Crise Mundial
 
Agile For Harel 4 08 V1
Agile For Harel 4 08 V1Agile For Harel 4 08 V1
Agile For Harel 4 08 V1
 
what is the value of architecture
what is the value of architecturewhat is the value of architecture
what is the value of architecture
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdf
 
PMI CH AMM2023 - Bye Bye Project Manager - SwissQ.pptx
PMI CH AMM2023 - Bye Bye Project Manager - SwissQ.pptxPMI CH AMM2023 - Bye Bye Project Manager - SwissQ.pptx
PMI CH AMM2023 - Bye Bye Project Manager - SwissQ.pptx
 
[WSO2Con USA 2018] Winning Strategy For Enterprise Integration to Empower Dig...
[WSO2Con USA 2018] Winning Strategy For Enterprise Integration to Empower Dig...[WSO2Con USA 2018] Winning Strategy For Enterprise Integration to Empower Dig...
[WSO2Con USA 2018] Winning Strategy For Enterprise Integration to Empower Dig...
 
Agile Network India | What does it take to Transform into Product Centric IT ...
Agile Network India | What does it take to Transform into Product Centric IT ...Agile Network India | What does it take to Transform into Product Centric IT ...
Agile Network India | What does it take to Transform into Product Centric IT ...
 
Bdo pro intro deck for web site
Bdo pro intro deck for web siteBdo pro intro deck for web site
Bdo pro intro deck for web site
 
Use Collaboration to Solve Your Biggest Challenges
Use Collaboration to Solve Your Biggest ChallengesUse Collaboration to Solve Your Biggest Challenges
Use Collaboration to Solve Your Biggest Challenges
 
TOGAF-IntroAndPrelim_v0.1.pdf
TOGAF-IntroAndPrelim_v0.1.pdfTOGAF-IntroAndPrelim_v0.1.pdf
TOGAF-IntroAndPrelim_v0.1.pdf
 
Architecture vs. Design vs. Agile: What’s the Answer?
Architecture vs. Design vs. Agile: What’s the Answer?Architecture vs. Design vs. Agile: What’s the Answer?
Architecture vs. Design vs. Agile: What’s the Answer?
 
Ptc creo essentials 3.0 overview new features
Ptc creo essentials 3.0 overview new featuresPtc creo essentials 3.0 overview new features
Ptc creo essentials 3.0 overview new features
 
Slides 2015 for contact 2
Slides 2015 for contact 2Slides 2015 for contact 2
Slides 2015 for contact 2
 

More from Ranjith Tharayil

SHE QC ideation, a story grooming technique
SHE QC ideation, a story grooming techniqueSHE QC ideation, a story grooming technique
SHE QC ideation, a story grooming techniqueRanjith Tharayil
 
Dojo delivery agility ranjith tharayil
Dojo delivery agility  ranjith tharayilDojo delivery agility  ranjith tharayil
Dojo delivery agility ranjith tharayilRanjith Tharayil
 
Case study of Knights capital and Toyota , a retrospect
Case study of Knights capital and Toyota , a retrospect  Case study of Knights capital and Toyota , a retrospect
Case study of Knights capital and Toyota , a retrospect Ranjith Tharayil
 
When to embrace Behavior Driven Development?
When to embrace Behavior Driven Development?When to embrace Behavior Driven Development?
When to embrace Behavior Driven Development?Ranjith Tharayil
 

More from Ranjith Tharayil (6)

SHE QC ideation, a story grooming technique
SHE QC ideation, a story grooming techniqueSHE QC ideation, a story grooming technique
SHE QC ideation, a story grooming technique
 
Dojo delivery agility ranjith tharayil
Dojo delivery agility  ranjith tharayilDojo delivery agility  ranjith tharayil
Dojo delivery agility ranjith tharayil
 
DDD_upload
DDD_uploadDDD_upload
DDD_upload
 
Case study of Knights capital and Toyota , a retrospect
Case study of Knights capital and Toyota , a retrospect  Case study of Knights capital and Toyota , a retrospect
Case study of Knights capital and Toyota , a retrospect
 
When to embrace Behavior Driven Development?
When to embrace Behavior Driven Development?When to embrace Behavior Driven Development?
When to embrace Behavior Driven Development?
 
Introduction to BDD
Introduction to BDD Introduction to BDD
Introduction to BDD
 

Recently uploaded

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 

Recently uploaded (20)

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 

Change vector tracking in emergent design

  • 1. talk @ Agile Gurgaon 2016
  • 2. Copyright © 2015 SolutionsIQ Inc. All rights reserved. 6801 185th Ave NE, Suite 200 Redmond, WA 98052 solutionsiq.com 1.800.235.4091 Change Vector Tracking A reflective approach towards designing large scale software BY Ranjith Tharayil Senior Agile Consultant & Technical Coach rtharayil@soultionsiq.com
  • 3. Expectations and take always Understand the problem wrt design debt in large scale software systems. Exposure to a novel technique called Change Vector Tracking (CVT) Can start applying it right away Knowledge of how change can be modelled as a weighted vector Using CVT to make informed decision on architecture refactoring. talk @ Agile Gurgaon 2016
  • 5. talk @ Agile Gurgaon 2016 Design Is a Wicked Problem , a “wicked” problem is one that could be clearly defined only by solving it, or by solving part of it .This paradox implies, essentially, that you have to “solve” the problem once in order to clearly define it and then solve it again to create a solution that works “ ” - McConnell, Steve. Code complete. Pearson Education, 2004.
  • 6. Architecture style wrt embracing change Organic Architecture Architecture first Just enough Architecture Emergent Architecture talk @ Agile Gurgaon 2016
  • 7. Emergent design Test Code Refactor Test Code Refactor Test Code Refactor Test Code Refactor Test Code Refactor Test Code Refactor Test Code Refactor Test Code Refactor Design talk @ Agile Gurgaon 2016
  • 8. Problem : Refactoring less focus on architecture System Sub- system Modules Modules Modules Sub- system Modules Modules Modules Sub- system Modules Sub- system Modules modules Refactoring , observed trends »More focus on classes inside modules »Less focus on Modules ,sub- Subsystem and system »Inexperience team members »Accumulate design debt »Technical debt talk @ Agile Gurgaon 2016
  • 9. Example : Super Market I 'am using a simple example to explain the problem , same is applicable for bigger complex systems The super market has many products to sell Each product has a  quality  cost The rules for computation of Quality and Cost are different for each product Abstract Product computeQuality() computeCost () Concreate product 1 Concreate product 2 Concreate product n-1 Concreate product N Example of a concreate product talk @ Agile Gurgaon 2016
  • 10. Is this the best design ? Onion computeQuality() computeCost () »Is this following SRP ? Single responsibility principle »SRP : A class should have only one reason to change »What if the pricing strategy of a product varies from time to time ? talk @ Agile Gurgaon 2016
  • 11. How about a different design Abstract Product Pricing strategy computeQuality() Concreate product 1 Concreate product 2 Concreate product n-1 Concreate product N PricingStrategy CompteCost() Strategy 1 Strategy 2 Strategy 3 talk @ Agile Gurgaon 2016
  • 12. Another design Product PricingStrategy QualityRule PricingStrategy CompteCost() Strategy 1 Strategy 2 Strategy 3 QualityRule Quality() Rule 1 Rule 2 talk @ Agile Gurgaon 2016
  • 13. Which design is better ? talk @ Agile Gurgaon 2016
  • 14. Which design is better ? Answer is : it depends Dependents on what ? Lest try to define this context Context talk @ Agile Gurgaon 2016
  • 15. Which design is better ? If mostly we will be only adding / removing products talk @ Agile Gurgaon 2016
  • 16. Which design is better ? • We will be constantly adding new products , also • We need to modify pricing strategy every now and then for existing products talk @ Agile Gurgaon 2016
  • 17. Which design is better ? • We need to often modify both pricing strategy & quality rule for existing products talk @ Agile Gurgaon 2016
  • 18. Design should depend on how the system should behave The behaviour of a system changes with time Due to new requirements enhancements Change is constant and can disrupt design & architecture Need to track change and its effect on design/architecture talk @ Agile Gurgaon 2016
  • 19. Modelling change as a vector Change has multiple dimensions Hence it can be quantified using a vector like ax+by+cz Example: 3(New Products) + 2(Modify Pricing strategy) 4(New Products) + 1(Miscellaneous) 2(Modify Pricing strategy) + 2(Modify Quality rule) + 1(Miscellaneous) talk @ Agile Gurgaon 2016
  • 20. How change can be modelled as a weighted vector ? We need to periodically review & document change vector for our system 3(New Products) + 2(Modify Pricing strategy) 4(New Products) + 1(Miscellaneous) Few Months Change: new requirement , Enhancement Change requests Dev Track Change vector Refactor talk @ Agile Gurgaon 2016
  • 21. Change vector tracking from Architecture to class System Sub- system Modules classes Modules classes Sub- system Modules classes Change requests Dev Track Change vector Refactor talk @ Agile Gurgaon 2016
  • 22. Change vector tracking in context of micro services talk @ Agile Gurgaon 2016
  • 23. Process and Ceremonies • Change vector tracking meeting • with TL , Architects • Every month initially • Cadence decide by need • Time boxed • Analyse change request from • Source control (Past) • Analyse product backlog (Future) • Document Change vector • Identify if any design debt , ideally you should have none Change requests Dev Track Change vector Refactor talk @ Agile Gurgaon 2016
  • 24. Re-visiting expectations Understand the problem wrt design debt in large scale software systems. Exposure to a novel technique called Change Vector Tracking (CVT) Can start applying it right away » Add this jargon to your resume :P Knowledge of how change can be modelled as a weighted vector Using CVT to make informed decision on architecture refactoring. talk @ Agile Gurgaon 2016
  • 25. Questions Acknowledgments : After hearing out this technique Sharad Julka coined the term reflective design . talk @ Agile Gurgaon 2016