SlideShare a Scribd company logo
1 of 92
Download to read offline
 Case Study: Practical tools and strategies
for tackling legacy practices and legacy
systems in a fast-growing startup.
Migrate
to
Am
azon
Migrate
to
Am
azon
Finish
iOS App
Goals for this talk
Simon Brown’s C4 Model & Software Guidebook.
DDD’s Strategic Design.
Wardley Maps.
Brownfield Project
Codename: Waterloo
Based on True Life Events
Based on True Life Events
pero contados por un argentino
Discovery
What is the software architecture?
What does the infrastructure look like?
Which projects are in progress?
How are projects managed ? How is work assigned
and managed?
What is the level of alignment?
The software guidebook
C4 Model: Context, Containers, Components and Code
The software guidebook
It focusses on the visual
communication and
documentation of software
architecture.
The core of this is the C4
software architecture model
and the software guidebook.
Template
Context
Functional Overview
QualityAttributes
Constraints
Principles
SoftwareArchitecture
Infrastructure Architecture
Deployment
Operation and Support
Level 1: System Context diagram
What are we building?
Who is using it? (users,
actors, roles, personas)
How does it fit into the
existing environment?
(systems, services)
https://c4model.com/#coreDiagrams
Level 2: Container diagram
High-level shape of the
software architecture,
showcasing responsibilities
distribution, major
technology choices and
containers
communication.
A container is a separately
runnable/deployable unit
that executes code or
stores data.
https://c4model.com/#coreDiagrams
Level 3: Component diagram
Decomposition of each
container identifying the
major structural building
blocks, called “components”,
and their interactions.
Includes responsibilities
and technology/
implementation details. https://c4model.com/#coreDiagrams
https://c4model.com/#coreDiagrams
Level 4: Code
UML class diagrams,
entity relationship
diagrams or similar.
Optional level of
detail available on-
demand and
automatically
generated using
tooling.
https://c4model.com/#coreDiagrams
Discovery Phase 1
One-on-one meetings with the head of each dptm
…
…
?
My goals
What is the software architecture?
What does the infrastructure look like?
Which projects are in progress?
How are projects managed ? How is work assigned
and managed?
What is the level of alignment?
Discovery Report
There are 19 “things” (systems?, projects?, modules?
components? features?).
Each “thing” has a very clear user/role.
There is no portfolio.
There is no team.
There is no alignment.
Infrastructure
Discovery Phase 2
Software Development Practices
DDD Strategic Design
Domain Driven Design
IMHO DDD is one of the
most essential concepts
in software development.
DDD Strategic Design
Context Maps
Core Domain
Supporting Subdomain
Generic Subdomain
Bounded Context
Relationships
Solution SpaceProblem Space
BC Relationships:
Big Ball of Mud
Shared Kernel
Customer/Supplier
Published Language
Open Host Service
Anticorruption Layer
Conformist
Separate Ways
BBOM
Organizations which design systems are
constrained to produce designs which are copies
of the communication structures of these
organizations.
Melvin Conway - How Do Committees Invent? (1968)
Guiding Principles
Common Closure Principle and Single Responsibility
Principle.
The Acyclic Dependencies Principle: Allow no cycles
in the component dependency graph.
The Stable Dependencies Principle: Depend in the
direction of stability.
“The best bits of DDD happen outside your IDE”
Nick Tune - Patterns, Principles, and Practices of Domain-Driven Design
Wardley Maps
Wardley Maps
A Wardley Map is a
representation of the
landscape in which a
business operates.
A Wardley Map represents
the shared assumptions
being made about a context
and hints at what strategic
options are available.
Wardley Maps
The cycle
The Landscape
Climatic Patterns
Anticipate (by applying climatic patterns)
Doctrine
Context Specific Play
Gameplay
Loop
Crossing the river by feeling the stones. By Simon Wardley
Crossing the river by feeling the stones. By Simon Wardley
Crossing the river by feeling the stones. By Simon Wardley
Crossing the river by feeling the stones. By Simon Wardley
Evolutionary Characteristics
Stage of Evolution I II III IV
Genesis Custom Product (+rental) Commodity
(+utility)
Ubiquity Rare
Slowly increasing
consumption
Rapidly increasing
consumption
Widespread and
stabilising
Certainty
Poorly
understood
Rapid increases in
learning
Rapid increases in
use / fit for
purpose
Commonly
understood (in
terms of use)
Market Undefined market Forming market Growing market Mature market
User perception
Different /
confusing /
exciting /
surprising
Leading edge /
emerging
Common /
disappointed if
not used or
available
Standard /
expected
Failure
High / tolerated /
assumed
Moderate /
unsurprising but
disappointed
Not tolerated,
focus on constant
improvement
Operational
efficiency and
surprised by
failureKnowledge
management
Uncertain Learning on use
Learning on
operation
Known / accepted
Practices Novel Emerging Good Best
Crossing the river by feeling the stones. By Simon Wardley
Crossing the river by feeling the stones. By Simon Wardley
Crossing the river by feeling the stones. By Simon Wardley
Crossing the river by feeling the stones. By Simon Wardley
Crossing the river by feeling the stones. By Simon Wardley
Crossing the river by feeling the stones. By Simon Wardley
C
D
E
B
A
Mapping Maturity by
Chris McDermott
Mapping Maturity by
Chris McDermott
Mapping Maturity by
Chris McDermott
Discovery Phase 2
Software Development Practices
Main Issues
A very loose criteria of what a "version" is.
Huge differences between development environments, each
developer has their own criteria and tools. Limited
availability of environments.
Developers are not involved in the release process.
Creating and deploying a new version is a manual process
and takes a couple of days.
Monthly deployment cadence.
DevOps: Bottleneck Analysis
Constraints Evolve in a predictable way
Constraints Evolve in a predictable way
Inconsistent Environments - Environment Creation
Manual Intervention - Code deployment
Poor SDLC practices - Test setup and run rate
Overly tight architecture
Product Owners
Principles & Practices
The Twelve-Factor App
Developers who wrote code are closely involved in
deploying it and watching its behaviour in production.
Continuous Integration
Visibility. Invest early in monitoring
Coding the Architecture & Infrastructure as Code.
Principles & Practices
“There is a SaaS for that” or “There is an API for that”
Don’t build it in-house. Leverage existing APIs. Focus
only on what’s core for the product, don’t reinvent
the wheel.
Optimize for speed of development. Remove all
impediments to a faster development cycle.
Key Changes
Unification of the development environment (Macs, PHPStorm and Vagrant for everyone)
Implemented 8 of the 12 points in the The Twelve-Factor App.
Introduction of git and the gitflow branching strategy.
Versioning
Introduction of jenkins and CI
Reduced time to release from days to seconds.
Reduced deploy cadence from a monthly to daily.
Moved from Pet to Cattle servers.
Decided to start developing services with Java and Docker.
I. Codebase (One codebase tracked in revision control, many deploys)
II. Dependencies (Explicitly declare and isolate dependencies)
III. Config (Store config in the environment)
IV. Backing Services (Treat backing services as attached resources)
V. Build, release, run (Strictly separate build and run stages)
VI. Processes (Execute the app as one or more stateless processes)
VII. Port binding (Export services via port binding)
VIII. Concurrency (Scale out via the process model)
IX. Disposability (Maximize robustness with fast startup and graceful shutdown)
X. Dev/prod parity (Keep development, staging, and production as similar as possible)
XI. Logs (Treat logs as event streams) #291
XII. Admin processes (Run admin/management tasks as one-off processes)
Feedback Door
5 - WOW! I learned something new and useful (in a
fun way).
4 - …
3 - …
2 - …
1 - I wish I would have been watching Netflix.
Gracias!
Alejandro Scandroli
@_ascandroli
Case Study: Practical tools and strategies for tackling legacy practices and legacy systems in a fast-growing startup.

More Related Content

What's hot

How to get the best out of DevSecOps - a developers perspective
How to get the best out of DevSecOps - a developers perspectiveHow to get the best out of DevSecOps - a developers perspective
How to get the best out of DevSecOps - a developers perspectiveColin Domoney
 
Agile or DevOps? What is Your Calling for Custom Software Development?
Agile or DevOps? What is Your Calling for Custom Software Development?Agile or DevOps? What is Your Calling for Custom Software Development?
Agile or DevOps? What is Your Calling for Custom Software Development?Jai Mehta
 
Mendix essentials 25 11-2011 introductie mendix by arno rood
Mendix essentials 25 11-2011 introductie mendix by arno roodMendix essentials 25 11-2011 introductie mendix by arno rood
Mendix essentials 25 11-2011 introductie mendix by arno roodMendix
 
IBM InterConnect 2016 Greg Hodgkinson 2238 Thriving DevOps at BMI (Prolifics)
IBM InterConnect 2016 Greg Hodgkinson 2238 Thriving DevOps at BMI (Prolifics)IBM InterConnect 2016 Greg Hodgkinson 2238 Thriving DevOps at BMI (Prolifics)
IBM InterConnect 2016 Greg Hodgkinson 2238 Thriving DevOps at BMI (Prolifics)Greg Hodgkinson
 
Documentation for Program Comprehension in Agile Software Development
Documentation for Program Comprehension in Agile Software DevelopmentDocumentation for Program Comprehension in Agile Software Development
Documentation for Program Comprehension in Agile Software DevelopmentFabian Kiss
 
DEVOPS ENGINEER - CAREER PATH, JOB SCOPE, AND CERTIFICATIONS
DEVOPS ENGINEER - CAREER PATH, JOB SCOPE, AND CERTIFICATIONSDEVOPS ENGINEER - CAREER PATH, JOB SCOPE, AND CERTIFICATIONS
DEVOPS ENGINEER - CAREER PATH, JOB SCOPE, AND CERTIFICATIONSSprintzeal
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software ArchitectureKannan Durairaj
 
Innovate 2014 - DevOps Technical Strategy
Innovate 2014 - DevOps Technical StrategyInnovate 2014 - DevOps Technical Strategy
Innovate 2014 - DevOps Technical StrategyDaniel Berg
 
BDD in open source projects - Is it really beneficial?
BDD in open source projects - Is it really beneficial?BDD in open source projects - Is it really beneficial?
BDD in open source projects - Is it really beneficial?Fabian Kiss
 
Case Study Chordiant
Case Study ChordiantCase Study Chordiant
Case Study ChordiantAmanda Shenon
 
Apache coneu 2009-adrian-trenaman-adopting-open-source-in-the-enterprise
Apache coneu 2009-adrian-trenaman-adopting-open-source-in-the-enterpriseApache coneu 2009-adrian-trenaman-adopting-open-source-in-the-enterprise
Apache coneu 2009-adrian-trenaman-adopting-open-source-in-the-enterpriseAdrian Trenaman
 
Agile archiecture iltam 2014
Agile archiecture   iltam 2014Agile archiecture   iltam 2014
Agile archiecture iltam 2014Dani Mannes
 
DevOps and PaaS at Pulse 2014
DevOps and PaaS at Pulse 2014DevOps and PaaS at Pulse 2014
DevOps and PaaS at Pulse 2014James Governor
 
Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...
Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...
Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...David Rico
 
Why is dev ops essential for fintech development
Why is dev ops essential for fintech developmentWhy is dev ops essential for fintech development
Why is dev ops essential for fintech developmentnimbleappgenie
 
What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?Bill Holtshouser
 

What's hot (20)

How to get the best out of DevSecOps - a developers perspective
How to get the best out of DevSecOps - a developers perspectiveHow to get the best out of DevSecOps - a developers perspective
How to get the best out of DevSecOps - a developers perspective
 
Agile or DevOps? What is Your Calling for Custom Software Development?
Agile or DevOps? What is Your Calling for Custom Software Development?Agile or DevOps? What is Your Calling for Custom Software Development?
Agile or DevOps? What is Your Calling for Custom Software Development?
 
Mendix essentials 25 11-2011 introductie mendix by arno rood
Mendix essentials 25 11-2011 introductie mendix by arno roodMendix essentials 25 11-2011 introductie mendix by arno rood
Mendix essentials 25 11-2011 introductie mendix by arno rood
 
Ruby on Rails Development Ecosystem
Ruby on Rails Development EcosystemRuby on Rails Development Ecosystem
Ruby on Rails Development Ecosystem
 
Sdlc
SdlcSdlc
Sdlc
 
IBM InterConnect 2016 Greg Hodgkinson 2238 Thriving DevOps at BMI (Prolifics)
IBM InterConnect 2016 Greg Hodgkinson 2238 Thriving DevOps at BMI (Prolifics)IBM InterConnect 2016 Greg Hodgkinson 2238 Thriving DevOps at BMI (Prolifics)
IBM InterConnect 2016 Greg Hodgkinson 2238 Thriving DevOps at BMI (Prolifics)
 
Web20 report excerpt
Web20 report excerptWeb20 report excerpt
Web20 report excerpt
 
Documentation for Program Comprehension in Agile Software Development
Documentation for Program Comprehension in Agile Software DevelopmentDocumentation for Program Comprehension in Agile Software Development
Documentation for Program Comprehension in Agile Software Development
 
DEVOPS ENGINEER - CAREER PATH, JOB SCOPE, AND CERTIFICATIONS
DEVOPS ENGINEER - CAREER PATH, JOB SCOPE, AND CERTIFICATIONSDEVOPS ENGINEER - CAREER PATH, JOB SCOPE, AND CERTIFICATIONS
DEVOPS ENGINEER - CAREER PATH, JOB SCOPE, AND CERTIFICATIONS
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software Architecture
 
Innovate 2014 - DevOps Technical Strategy
Innovate 2014 - DevOps Technical StrategyInnovate 2014 - DevOps Technical Strategy
Innovate 2014 - DevOps Technical Strategy
 
BDD in open source projects - Is it really beneficial?
BDD in open source projects - Is it really beneficial?BDD in open source projects - Is it really beneficial?
BDD in open source projects - Is it really beneficial?
 
Case Study Chordiant
Case Study ChordiantCase Study Chordiant
Case Study Chordiant
 
Apache coneu 2009-adrian-trenaman-adopting-open-source-in-the-enterprise
Apache coneu 2009-adrian-trenaman-adopting-open-source-in-the-enterpriseApache coneu 2009-adrian-trenaman-adopting-open-source-in-the-enterprise
Apache coneu 2009-adrian-trenaman-adopting-open-source-in-the-enterprise
 
Oss model, lifecycle & development
Oss model, lifecycle & developmentOss model, lifecycle & development
Oss model, lifecycle & development
 
Agile archiecture iltam 2014
Agile archiecture   iltam 2014Agile archiecture   iltam 2014
Agile archiecture iltam 2014
 
DevOps and PaaS at Pulse 2014
DevOps and PaaS at Pulse 2014DevOps and PaaS at Pulse 2014
DevOps and PaaS at Pulse 2014
 
Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...
Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...
Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...
 
Why is dev ops essential for fintech development
Why is dev ops essential for fintech developmentWhy is dev ops essential for fintech development
Why is dev ops essential for fintech development
 
What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?
 

Similar to Case Study: Practical tools and strategies for tackling legacy practices and legacy systems in a fast-growing startup.

Organizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerOrganizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerKurt Solarte
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st CenturyHenry Jacob
 
Way to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile WayWay to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile WayRamadevi Lakshmanan
 
Secrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without codingSecrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without codingNewton Day Uploads
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semesterrajesh199155
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering noteNeelamani Samal
 
A Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements SpecificationA Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements SpecificationQuekelsBaro
 
RAD - System i - Presentation
RAD - System i - PresentationRAD - System i - Presentation
RAD - System i - PresentationChuck Walker
 
What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.anilpmuvvala
 
What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.anilpmuvvala
 
Agile V. Waterfall
Agile V. WaterfallAgile V. Waterfall
Agile V. WaterfallLisa Kennedy
 
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...Siva Rama Krishna Chunduru
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile DevelopmentHayim Makabee
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpTony Bibbs
 
IBM Innovate - Uderstanding DevOps
IBM Innovate - Uderstanding DevOpsIBM Innovate - Uderstanding DevOps
IBM Innovate - Uderstanding DevOpsSanjeev Sharma
 
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...Erez PEDRO
 

Similar to Case Study: Practical tools and strategies for tackling legacy practices and legacy systems in a fast-growing startup. (20)

Unit 1.ppt
Unit 1.pptUnit 1.ppt
Unit 1.ppt
 
DevOps101 (version 2)
DevOps101 (version 2)DevOps101 (version 2)
DevOps101 (version 2)
 
Organizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerOrganizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements Composer
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
 
Way to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile WayWay to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile Way
 
Secrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without codingSecrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without coding
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semester
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering note
 
A Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements SpecificationA Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements Specification
 
RAD - System i - Presentation
RAD - System i - PresentationRAD - System i - Presentation
RAD - System i - Presentation
 
What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.
 
What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.
 
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
 
Agile V. Waterfall
Agile V. WaterfallAgile V. Waterfall
Agile V. Waterfall
 
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
DevOps For Everyone: Bringing DevOps Success to Every App and Every Role in y...
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
 
IBM Innovate - Uderstanding DevOps
IBM Innovate - Uderstanding DevOpsIBM Innovate - Uderstanding DevOps
IBM Innovate - Uderstanding DevOps
 
What_is_DevOps.pptx
What_is_DevOps.pptxWhat_is_DevOps.pptx
What_is_DevOps.pptx
 
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
 

Recently uploaded

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 

Recently uploaded (20)

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 

Case Study: Practical tools and strategies for tackling legacy practices and legacy systems in a fast-growing startup.

  • 1.
  • 2.  Case Study: Practical tools and strategies for tackling legacy practices and legacy systems in a fast-growing startup.
  • 3.
  • 4.
  • 5.
  • 6.
  • 9. Goals for this talk Simon Brown’s C4 Model & Software Guidebook. DDD’s Strategic Design. Wardley Maps.
  • 11. Based on True Life Events
  • 12. Based on True Life Events pero contados por un argentino
  • 13.
  • 14. Discovery What is the software architecture? What does the infrastructure look like? Which projects are in progress? How are projects managed ? How is work assigned and managed? What is the level of alignment?
  • 15. The software guidebook C4 Model: Context, Containers, Components and Code
  • 16. The software guidebook It focusses on the visual communication and documentation of software architecture. The core of this is the C4 software architecture model and the software guidebook.
  • 18. Level 1: System Context diagram What are we building? Who is using it? (users, actors, roles, personas) How does it fit into the existing environment? (systems, services) https://c4model.com/#coreDiagrams
  • 19. Level 2: Container diagram High-level shape of the software architecture, showcasing responsibilities distribution, major technology choices and containers communication. A container is a separately runnable/deployable unit that executes code or stores data. https://c4model.com/#coreDiagrams
  • 20. Level 3: Component diagram Decomposition of each container identifying the major structural building blocks, called “components”, and their interactions. Includes responsibilities and technology/ implementation details. https://c4model.com/#coreDiagrams
  • 22. Level 4: Code UML class diagrams, entity relationship diagrams or similar. Optional level of detail available on- demand and automatically generated using tooling. https://c4model.com/#coreDiagrams
  • 23. Discovery Phase 1 One-on-one meetings with the head of each dptm
  • 25. My goals What is the software architecture? What does the infrastructure look like? Which projects are in progress? How are projects managed ? How is work assigned and managed? What is the level of alignment?
  • 26. Discovery Report There are 19 “things” (systems?, projects?, modules? components? features?). Each “thing” has a very clear user/role. There is no portfolio. There is no team. There is no alignment.
  • 27.
  • 29.
  • 30.
  • 31.
  • 32. Discovery Phase 2 Software Development Practices
  • 33.
  • 35. Domain Driven Design IMHO DDD is one of the most essential concepts in software development.
  • 36. DDD Strategic Design Context Maps Core Domain Supporting Subdomain Generic Subdomain Bounded Context Relationships Solution SpaceProblem Space
  • 37. BC Relationships: Big Ball of Mud Shared Kernel Customer/Supplier Published Language Open Host Service Anticorruption Layer Conformist Separate Ways
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44. BBOM
  • 45.
  • 46.
  • 47.
  • 48.
  • 49. Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. Melvin Conway - How Do Committees Invent? (1968)
  • 50.
  • 51. Guiding Principles Common Closure Principle and Single Responsibility Principle. The Acyclic Dependencies Principle: Allow no cycles in the component dependency graph. The Stable Dependencies Principle: Depend in the direction of stability.
  • 52. “The best bits of DDD happen outside your IDE” Nick Tune - Patterns, Principles, and Practices of Domain-Driven Design
  • 54. Wardley Maps A Wardley Map is a representation of the landscape in which a business operates. A Wardley Map represents the shared assumptions being made about a context and hints at what strategic options are available.
  • 55. Wardley Maps The cycle The Landscape Climatic Patterns Anticipate (by applying climatic patterns) Doctrine Context Specific Play Gameplay Loop
  • 56. Crossing the river by feeling the stones. By Simon Wardley
  • 57.
  • 58.
  • 59. Crossing the river by feeling the stones. By Simon Wardley
  • 60. Crossing the river by feeling the stones. By Simon Wardley
  • 61. Crossing the river by feeling the stones. By Simon Wardley
  • 62. Evolutionary Characteristics Stage of Evolution I II III IV Genesis Custom Product (+rental) Commodity (+utility) Ubiquity Rare Slowly increasing consumption Rapidly increasing consumption Widespread and stabilising Certainty Poorly understood Rapid increases in learning Rapid increases in use / fit for purpose Commonly understood (in terms of use) Market Undefined market Forming market Growing market Mature market User perception Different / confusing / exciting / surprising Leading edge / emerging Common / disappointed if not used or available Standard / expected Failure High / tolerated / assumed Moderate / unsurprising but disappointed Not tolerated, focus on constant improvement Operational efficiency and surprised by failureKnowledge management Uncertain Learning on use Learning on operation Known / accepted Practices Novel Emerging Good Best
  • 63. Crossing the river by feeling the stones. By Simon Wardley
  • 64. Crossing the river by feeling the stones. By Simon Wardley
  • 65. Crossing the river by feeling the stones. By Simon Wardley
  • 66. Crossing the river by feeling the stones. By Simon Wardley
  • 67. Crossing the river by feeling the stones. By Simon Wardley
  • 68. Crossing the river by feeling the stones. By Simon Wardley
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 78. Discovery Phase 2 Software Development Practices
  • 79.
  • 80. Main Issues A very loose criteria of what a "version" is. Huge differences between development environments, each developer has their own criteria and tools. Limited availability of environments. Developers are not involved in the release process. Creating and deploying a new version is a manual process and takes a couple of days. Monthly deployment cadence.
  • 81. DevOps: Bottleneck Analysis Constraints Evolve in a predictable way
  • 82. Constraints Evolve in a predictable way Inconsistent Environments - Environment Creation Manual Intervention - Code deployment Poor SDLC practices - Test setup and run rate Overly tight architecture Product Owners
  • 83. Principles & Practices The Twelve-Factor App Developers who wrote code are closely involved in deploying it and watching its behaviour in production. Continuous Integration Visibility. Invest early in monitoring Coding the Architecture & Infrastructure as Code.
  • 84. Principles & Practices “There is a SaaS for that” or “There is an API for that” Don’t build it in-house. Leverage existing APIs. Focus only on what’s core for the product, don’t reinvent the wheel. Optimize for speed of development. Remove all impediments to a faster development cycle.
  • 85. Key Changes Unification of the development environment (Macs, PHPStorm and Vagrant for everyone) Implemented 8 of the 12 points in the The Twelve-Factor App. Introduction of git and the gitflow branching strategy. Versioning Introduction of jenkins and CI Reduced time to release from days to seconds. Reduced deploy cadence from a monthly to daily. Moved from Pet to Cattle servers. Decided to start developing services with Java and Docker.
  • 86. I. Codebase (One codebase tracked in revision control, many deploys) II. Dependencies (Explicitly declare and isolate dependencies) III. Config (Store config in the environment) IV. Backing Services (Treat backing services as attached resources) V. Build, release, run (Strictly separate build and run stages) VI. Processes (Execute the app as one or more stateless processes) VII. Port binding (Export services via port binding) VIII. Concurrency (Scale out via the process model) IX. Disposability (Maximize robustness with fast startup and graceful shutdown) X. Dev/prod parity (Keep development, staging, and production as similar as possible) XI. Logs (Treat logs as event streams) #291 XII. Admin processes (Run admin/management tasks as one-off processes)
  • 87.
  • 88.
  • 89.
  • 90. Feedback Door 5 - WOW! I learned something new and useful (in a fun way). 4 - … 3 - … 2 - … 1 - I wish I would have been watching Netflix.