SlideShare a Scribd company logo
1 of 32
Download to read offline
Software
Architecture and
Decision Making
Srinath Perera
Chief Architect, WSO2
About me, in last 20 years
Goal of Software Architecture?
As practicing software architects:
● We know about many techniques
○ Abstractions
○ Arch styles, pros and cons
○ Patterns pros and cons
○ Where to use which one
○ How to compose them
○ Pitfalls, negative examples
● However, a lot of errors are not
made there
Causes of Mistakes
● Techniques conflict with each other. (e.g., Security vs.
Usability or Flexibility vs. Simplicity)
● Going overbroad with some technique. (e.g., cloud
portability)
● Given a project, we only partially understand the needs;
we learn more as we go on.
● There is a background of the project - like a deadline,
when can we rewrite, and the skills of the team
● Problems and techniques available evolve over time.
● There are techniques to handle uncertainty, but they
have costs, too.
I see Leadership Challenges, not
technical Challenges!!
Leader is a dealer in Hope
● To me, leadership is about
○ managing uncertainty
○ bringing order to the chaos.
○ providing a hope of a better future and making
progress.
● People follow whoever offers to handle
uncertainty
● It is a choice “A leader is a dealer in hope.”
--Napoleon Bonaparte
Software Architecture is about Managing
Uncertainty and Abstractions
Each area has good
Books!!
What if you are not in Charge?
● Good architects start to play the role years
before they are given the title.
● The more knowledgeable you are, the better
chance you’ll have if you do choose to lead.
● Take the initiative; help your leader and
deliver. You will find you own more and
more. Titles will follow.
● If you believe someone can do it better, by all
means, follow and learn from them!!
Book will draw
examples from
many technical
leaders that made
seemingly
impossible
Systems possible
Great Tech Leaders: Wright Brothers
Great Tech Leaders: Kelly Johnson
● Seven Principles
P1: Drive Everything from User Journey
P2: Use a Iterative Thin Slice Strategy
P3: Support more users while doing as less as
possible on each Iteration
P4: Leader must make Decisions and absorb the
Risks
P5: Design Deeply things hard to change and but
implement them Slowly
P6: Eliminate Unknowns and learn from Evidence
P7: Consistency in the Architecture is a Tradeoff
We will discuss, Five Questions to Ask and Seven Principles
● Five Questions
Q1: When can we rewrite the system?
Q2: Performance sensitivity?
Q3: Skill Level of the team
Q4: Time to Market
Q5: What are the hard problems?
Questions to
tackle
Uncertainty
Q1: When can We rewrite the
system?
● You can rewrite it sooner than you
think.
○ If yes, We can be lean, simple, worry less
● Also, with the new IDEs, it is
comparatively easy to refactor and
align code to the new architecture.
● Let us plan to rewrite (partially) beyond
key milestones.
○ Having accepted that we will rewrite, we
can push non-essentials to the next
rewrite.
Q2: Performance Sensitivity?
Q3: Skill Level of the Team
“You go to war with the army you have, not the
army you might want or wish to have at a later
time.” ― Donald Rumsfeld
● Given the top 1% of programmers, not much leadership
is needed; leadership is needed when we work with
less-than-perfect teams.
● Have a hard, realistic look at your team.
● You must pick an architecture your team can manage.
○ For this reason, do not pick EDA CQRS without experience.
○ High costs in understandability and debugging
challenges.
Q4: Time to Market
● Time to market is everything; ask
the business.
● Our design must incorporate the
realities of time to market.
● We may rewrite it later
● Although deadlines are often not
negotiable, features in the
release are usually negotiable.
● Use UX-based design and, build
an MVP, and negotiate features
as needed.
Q5: What are the hard
problems?
Principles to
Make Decisions
P1: Drive Everything from
User Journey
Quote ??
P2: Use a Iterative Thin Slice Strategy
“Premature optimization is the
root of all evil” -Donald Knuth.
P3: On each Iteration, try to add most
value for least effort
● Deeply understand the user journey
● Do less
○ Embrace Minimal Viable Product (MVP)
○ When in doubt( when the team disagrees significantly with each other), leave it out.
○ Wait until enough X three people ask for the feature ( X decided by the leader)
○ Say No if features do not match the user journey. Saying yes to one means saying no to
others! (if we take a book store, the user journey is what people do when they come,
and it is never fully defined - e.g., someone wants to search by the number of pages in
the book, you need to gauge if that is useful for enough users?)
○ Do not over engineer/ Look out for Google Envy. (see You are not Google)
○ Whenever possible, build on top of middleware tools or cloud services. (E.g. IAM)
● Interfaces and other abstractions are techniques for creating options and
delaying decisions. But Mind the cost (. e.g., One often seen mistake
("anti-pattern") in using abstractions is an extensive use of layering (with
really terrible performance impact).
P4: Leader must make Decisions
and absorb the Risks
● Any project faces many uncertainties.
○ E.g., the capacity of the MVP's first version.
○ A leader must collect the required data and perform
required experiments, but that is often not enough.
● While designing the moon rover, nobody knew the
moon's surface.
○ Phyllis Buwalda wrote a specification of the moon's
surface, just elevating parameters from the harshest
desert on the earth. He absorbed the risks.
● Leaders must remove ambiguity, create solvable
targets, and absorb the risks. If they do, little time
would be wasted on indecision.
● Make it your goal not to slow down anyone!! Nicholas Mutton / A fork in the road / CC BY-SA 2.0
P5: Design Deeply things hard to
change and but implement them Slowly
P6: Eliminate Unknowns and learn from
Evidence
P7: The proper Granularity of the
Architecture is a Tradeoff
Produce Delivery Design:
Questions
● When can I rewrite the system?
○ Sales goals will tell you, OK, to rewrite in a year or so
○ Build on top of a single cloud
● How performance-sensitive is my system?
○ Depends on sales forecasts? Likely No.
● How skilled is my team?
○ Find out
● Time to market?
○ Likely, we need this pretty fast?
● What are hard problems?
○ How to handle perishability in the system?
○ Low-latency WAN networks
○ Security
Produce Delivery Design:
Principles
● Do less and as late as possible
○ MVP is built around key experiences, learns from users
● Make decisions and bind the scope
○ Set down performance targets
● Design deeply, implement slowly
○ Define APIs, understand future scenarios, implement the MVP
● Use iterative thin-slice strategy
○ Stage it, then use Growth Hacking to iterate
● Eliminate unknowns and learn from evidence
○ Build enough traceability
○ Test the thin slice to ensure performance
○ Verify third-party tools, APIs
○ Can simple DB handle it?
○ Growth Hack the Product
Book Outline
● Part II
○ Background: Performance, UX
● Part III
○ MacroArchitecture
■ Chapter 5: Introduction
■ Chapter 6: Coordination
■ Chapter 7: Preserving Consistency of
State Chapter 8: Handling Security
■ Chapter 9: Handling HA and Scale
Chapter 10: Microservices
Considerations
○ How to write a service
○ How to Build Stable systems
● Part III
○ Putting everything together
Conclusion
● Building Great Software Designs is about handling uncertainty
● We need to use a fluid approach rather than rigid principles, such as
maximizing options
● Five Questions gives you a framework to understand
● Six Principles gives you a framework to make decisions
● It is not a formula but requires careful consideration, and great designs
can’t come from formulas. You must think!!
Uncertainty is leaders responsibility
Book: Software Architecture and Decision-Making

More Related Content

Similar to Book: Software Architecture and Decision-Making

Tenants for Going at DevSecOps Speed - LASCON 2023
Tenants for Going at DevSecOps Speed - LASCON 2023Tenants for Going at DevSecOps Speed - LASCON 2023
Tenants for Going at DevSecOps Speed - LASCON 2023Matt Tesauro
 
A friendly guide to requirements management
A friendly guide to requirements managementA friendly guide to requirements management
A friendly guide to requirements managementAnnika Dahlqvist
 
Design of everyday things fundamental principles of interaction - V2
Design of everyday things   fundamental principles of interaction - V2Design of everyday things   fundamental principles of interaction - V2
Design of everyday things fundamental principles of interaction - V2Isaac Liao
 
Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Rajesh Muppalla
 
The secrets of building a team that can do everything
The secrets of building a team that can do everythingThe secrets of building a team that can do everything
The secrets of building a team that can do everythingKfir Bloch
 
Software Methodologies & Frameworks
Software Methodologies & FrameworksSoftware Methodologies & Frameworks
Software Methodologies & FrameworksMaisara Khedr
 
Software Engineering Primer
Software Engineering PrimerSoftware Engineering Primer
Software Engineering PrimerGeorg Buske
 
Why Agile? Back to Basics.
Why Agile? Back to Basics.Why Agile? Back to Basics.
Why Agile? Back to Basics.Lucas Hendrich
 
The future of CMS @T3UNI 2013 Annecy France
The future of CMS @T3UNI 2013 Annecy FranceThe future of CMS @T3UNI 2013 Annecy France
The future of CMS @T3UNI 2013 Annecy FranceOlivier Dobberkau
 
Post agile confessions
Post agile confessionsPost agile confessions
Post agile confessionsStojan Peshov
 
Agile applied to project management
Agile applied to project managementAgile applied to project management
Agile applied to project managementSimon Carter
 
How to run a design sprint - LearnDay@Xoxzo #9
How to run a design sprint - LearnDay@Xoxzo #9How to run a design sprint - LearnDay@Xoxzo #9
How to run a design sprint - LearnDay@Xoxzo #9Xoxzo Inc.
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectivelyAshutosh Agarwal
 
How to become Industry ready engineers.pdf
How to become  Industry ready engineers.pdfHow to become  Industry ready engineers.pdf
How to become Industry ready engineers.pdfDrNilam Choudhary
 
Enterprise Frameworks: Java & .NET
Enterprise Frameworks: Java & .NETEnterprise Frameworks: Java & .NET
Enterprise Frameworks: Java & .NETAnant Corporation
 
How to be a 10x Engineer
How to be a 10x EngineerHow to be a 10x Engineer
How to be a 10x EngineerNick Sullivan
 

Similar to Book: Software Architecture and Decision-Making (20)

Tenants for Going at DevSecOps Speed - LASCON 2023
Tenants for Going at DevSecOps Speed - LASCON 2023Tenants for Going at DevSecOps Speed - LASCON 2023
Tenants for Going at DevSecOps Speed - LASCON 2023
 
A friendly guide to requirements management
A friendly guide to requirements managementA friendly guide to requirements management
A friendly guide to requirements management
 
Design of everyday things fundamental principles of interaction - V2
Design of everyday things   fundamental principles of interaction - V2Design of everyday things   fundamental principles of interaction - V2
Design of everyday things fundamental principles of interaction - V2
 
Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)
 
The secrets of building a team that can do everything
The secrets of building a team that can do everythingThe secrets of building a team that can do everything
The secrets of building a team that can do everything
 
Restless developer
Restless developerRestless developer
Restless developer
 
Software Methodologies & Frameworks
Software Methodologies & FrameworksSoftware Methodologies & Frameworks
Software Methodologies & Frameworks
 
Software Engineering Primer
Software Engineering PrimerSoftware Engineering Primer
Software Engineering Primer
 
Engineer - Mastering the Art of Software
Engineer - Mastering the Art of SoftwareEngineer - Mastering the Art of Software
Engineer - Mastering the Art of Software
 
Why Agile? Back to Basics.
Why Agile? Back to Basics.Why Agile? Back to Basics.
Why Agile? Back to Basics.
 
Agile.pptx
Agile.pptxAgile.pptx
Agile.pptx
 
The future of CMS @T3UNI 2013 Annecy France
The future of CMS @T3UNI 2013 Annecy FranceThe future of CMS @T3UNI 2013 Annecy France
The future of CMS @T3UNI 2013 Annecy France
 
Post agile confessions
Post agile confessionsPost agile confessions
Post agile confessions
 
Agile applied to project management
Agile applied to project managementAgile applied to project management
Agile applied to project management
 
How to run a design sprint - LearnDay@Xoxzo #9
How to run a design sprint - LearnDay@Xoxzo #9How to run a design sprint - LearnDay@Xoxzo #9
How to run a design sprint - LearnDay@Xoxzo #9
 
It's XP, Stupid
It's XP, StupidIt's XP, Stupid
It's XP, Stupid
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
How to become Industry ready engineers.pdf
How to become  Industry ready engineers.pdfHow to become  Industry ready engineers.pdf
How to become Industry ready engineers.pdf
 
Enterprise Frameworks: Java & .NET
Enterprise Frameworks: Java & .NETEnterprise Frameworks: Java & .NET
Enterprise Frameworks: Java & .NET
 
How to be a 10x Engineer
How to be a 10x EngineerHow to be a 10x Engineer
How to be a 10x Engineer
 

More from Srinath Perera

Data science Applications in the Enterprise
Data science Applications in the EnterpriseData science Applications in the Enterprise
Data science Applications in the EnterpriseSrinath Perera
 
An Introduction to APIs
An Introduction to APIs An Introduction to APIs
An Introduction to APIs Srinath Perera
 
An Introduction to Blockchain for Finance Professionals
An Introduction to Blockchain for Finance ProfessionalsAn Introduction to Blockchain for Finance Professionals
An Introduction to Blockchain for Finance ProfessionalsSrinath Perera
 
AI in the Real World: Challenges, and Risks and how to handle them?
AI in the Real World: Challenges, and Risks and how to handle them?AI in the Real World: Challenges, and Risks and how to handle them?
AI in the Real World: Challenges, and Risks and how to handle them?Srinath Perera
 
Healthcare + AI: Use cases & Challenges
Healthcare + AI: Use cases & ChallengesHealthcare + AI: Use cases & Challenges
Healthcare + AI: Use cases & ChallengesSrinath Perera
 
How would AI shape Future Integrations?
How would AI shape Future Integrations?How would AI shape Future Integrations?
How would AI shape Future Integrations?Srinath Perera
 
The Role of Blockchain in Future Integrations
The Role of Blockchain in Future IntegrationsThe Role of Blockchain in Future Integrations
The Role of Blockchain in Future IntegrationsSrinath Perera
 
Blockchain: Where are we? Where are we going?
Blockchain: Where are we? Where are we going? Blockchain: Where are we? Where are we going?
Blockchain: Where are we? Where are we going? Srinath Perera
 
Few thoughts about Future of Blockchain
Few thoughts about Future of BlockchainFew thoughts about Future of Blockchain
Few thoughts about Future of BlockchainSrinath Perera
 
A Visual Canvas for Judging New Technologies
A Visual Canvas for Judging New TechnologiesA Visual Canvas for Judging New Technologies
A Visual Canvas for Judging New TechnologiesSrinath Perera
 
Privacy in Bigdata Era
Privacy in Bigdata  EraPrivacy in Bigdata  Era
Privacy in Bigdata EraSrinath Perera
 
Blockchain, Impact, Challenges, and Risks
Blockchain, Impact, Challenges, and RisksBlockchain, Impact, Challenges, and Risks
Blockchain, Impact, Challenges, and RisksSrinath Perera
 
Today's Technology and Emerging Technology Landscape
Today's Technology and Emerging Technology LandscapeToday's Technology and Emerging Technology Landscape
Today's Technology and Emerging Technology LandscapeSrinath Perera
 
An Emerging Technologies Timeline
An Emerging Technologies TimelineAn Emerging Technologies Timeline
An Emerging Technologies TimelineSrinath Perera
 
The Rise of Streaming SQL and Evolution of Streaming Applications
The Rise of Streaming SQL and Evolution of Streaming ApplicationsThe Rise of Streaming SQL and Evolution of Streaming Applications
The Rise of Streaming SQL and Evolution of Streaming ApplicationsSrinath Perera
 
Analytics and AI: The Good, the Bad and the Ugly
Analytics and AI: The Good, the Bad and the UglyAnalytics and AI: The Good, the Bad and the Ugly
Analytics and AI: The Good, the Bad and the UglySrinath Perera
 
Transforming a Business Through Analytics
Transforming a Business Through AnalyticsTransforming a Business Through Analytics
Transforming a Business Through AnalyticsSrinath Perera
 
SoC Keynote:The State of the Art in Integration Technology
SoC Keynote:The State of the Art in Integration TechnologySoC Keynote:The State of the Art in Integration Technology
SoC Keynote:The State of the Art in Integration TechnologySrinath Perera
 
Role of Analytics in Digital Business
Role of Analytics in Digital BusinessRole of Analytics in Digital Business
Role of Analytics in Digital BusinessSrinath Perera
 

More from Srinath Perera (20)

Data science Applications in the Enterprise
Data science Applications in the EnterpriseData science Applications in the Enterprise
Data science Applications in the Enterprise
 
An Introduction to APIs
An Introduction to APIs An Introduction to APIs
An Introduction to APIs
 
An Introduction to Blockchain for Finance Professionals
An Introduction to Blockchain for Finance ProfessionalsAn Introduction to Blockchain for Finance Professionals
An Introduction to Blockchain for Finance Professionals
 
AI in the Real World: Challenges, and Risks and how to handle them?
AI in the Real World: Challenges, and Risks and how to handle them?AI in the Real World: Challenges, and Risks and how to handle them?
AI in the Real World: Challenges, and Risks and how to handle them?
 
Healthcare + AI: Use cases & Challenges
Healthcare + AI: Use cases & ChallengesHealthcare + AI: Use cases & Challenges
Healthcare + AI: Use cases & Challenges
 
How would AI shape Future Integrations?
How would AI shape Future Integrations?How would AI shape Future Integrations?
How would AI shape Future Integrations?
 
The Role of Blockchain in Future Integrations
The Role of Blockchain in Future IntegrationsThe Role of Blockchain in Future Integrations
The Role of Blockchain in Future Integrations
 
Future of Serverless
Future of ServerlessFuture of Serverless
Future of Serverless
 
Blockchain: Where are we? Where are we going?
Blockchain: Where are we? Where are we going? Blockchain: Where are we? Where are we going?
Blockchain: Where are we? Where are we going?
 
Few thoughts about Future of Blockchain
Few thoughts about Future of BlockchainFew thoughts about Future of Blockchain
Few thoughts about Future of Blockchain
 
A Visual Canvas for Judging New Technologies
A Visual Canvas for Judging New TechnologiesA Visual Canvas for Judging New Technologies
A Visual Canvas for Judging New Technologies
 
Privacy in Bigdata Era
Privacy in Bigdata  EraPrivacy in Bigdata  Era
Privacy in Bigdata Era
 
Blockchain, Impact, Challenges, and Risks
Blockchain, Impact, Challenges, and RisksBlockchain, Impact, Challenges, and Risks
Blockchain, Impact, Challenges, and Risks
 
Today's Technology and Emerging Technology Landscape
Today's Technology and Emerging Technology LandscapeToday's Technology and Emerging Technology Landscape
Today's Technology and Emerging Technology Landscape
 
An Emerging Technologies Timeline
An Emerging Technologies TimelineAn Emerging Technologies Timeline
An Emerging Technologies Timeline
 
The Rise of Streaming SQL and Evolution of Streaming Applications
The Rise of Streaming SQL and Evolution of Streaming ApplicationsThe Rise of Streaming SQL and Evolution of Streaming Applications
The Rise of Streaming SQL and Evolution of Streaming Applications
 
Analytics and AI: The Good, the Bad and the Ugly
Analytics and AI: The Good, the Bad and the UglyAnalytics and AI: The Good, the Bad and the Ugly
Analytics and AI: The Good, the Bad and the Ugly
 
Transforming a Business Through Analytics
Transforming a Business Through AnalyticsTransforming a Business Through Analytics
Transforming a Business Through Analytics
 
SoC Keynote:The State of the Art in Integration Technology
SoC Keynote:The State of the Art in Integration TechnologySoC Keynote:The State of the Art in Integration Technology
SoC Keynote:The State of the Art in Integration Technology
 
Role of Analytics in Digital Business
Role of Analytics in Digital BusinessRole of Analytics in Digital Business
Role of Analytics in Digital Business
 

Recently uploaded

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
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
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.
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
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
 
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
 

Recently uploaded (20)

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
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
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 ...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
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
 
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)
 

Book: Software Architecture and Decision-Making

  • 2. About me, in last 20 years
  • 3. Goal of Software Architecture?
  • 4. As practicing software architects: ● We know about many techniques ○ Abstractions ○ Arch styles, pros and cons ○ Patterns pros and cons ○ Where to use which one ○ How to compose them ○ Pitfalls, negative examples ● However, a lot of errors are not made there
  • 5. Causes of Mistakes ● Techniques conflict with each other. (e.g., Security vs. Usability or Flexibility vs. Simplicity) ● Going overbroad with some technique. (e.g., cloud portability) ● Given a project, we only partially understand the needs; we learn more as we go on. ● There is a background of the project - like a deadline, when can we rewrite, and the skills of the team ● Problems and techniques available evolve over time. ● There are techniques to handle uncertainty, but they have costs, too. I see Leadership Challenges, not technical Challenges!!
  • 6. Leader is a dealer in Hope ● To me, leadership is about ○ managing uncertainty ○ bringing order to the chaos. ○ providing a hope of a better future and making progress. ● People follow whoever offers to handle uncertainty ● It is a choice “A leader is a dealer in hope.” --Napoleon Bonaparte
  • 7. Software Architecture is about Managing Uncertainty and Abstractions
  • 8. Each area has good Books!!
  • 9. What if you are not in Charge? ● Good architects start to play the role years before they are given the title. ● The more knowledgeable you are, the better chance you’ll have if you do choose to lead. ● Take the initiative; help your leader and deliver. You will find you own more and more. Titles will follow. ● If you believe someone can do it better, by all means, follow and learn from them!!
  • 10. Book will draw examples from many technical leaders that made seemingly impossible Systems possible
  • 11. Great Tech Leaders: Wright Brothers
  • 12. Great Tech Leaders: Kelly Johnson
  • 13. ● Seven Principles P1: Drive Everything from User Journey P2: Use a Iterative Thin Slice Strategy P3: Support more users while doing as less as possible on each Iteration P4: Leader must make Decisions and absorb the Risks P5: Design Deeply things hard to change and but implement them Slowly P6: Eliminate Unknowns and learn from Evidence P7: Consistency in the Architecture is a Tradeoff We will discuss, Five Questions to Ask and Seven Principles ● Five Questions Q1: When can we rewrite the system? Q2: Performance sensitivity? Q3: Skill Level of the team Q4: Time to Market Q5: What are the hard problems?
  • 15. Q1: When can We rewrite the system? ● You can rewrite it sooner than you think. ○ If yes, We can be lean, simple, worry less ● Also, with the new IDEs, it is comparatively easy to refactor and align code to the new architecture. ● Let us plan to rewrite (partially) beyond key milestones. ○ Having accepted that we will rewrite, we can push non-essentials to the next rewrite.
  • 17. Q3: Skill Level of the Team “You go to war with the army you have, not the army you might want or wish to have at a later time.” ― Donald Rumsfeld ● Given the top 1% of programmers, not much leadership is needed; leadership is needed when we work with less-than-perfect teams. ● Have a hard, realistic look at your team. ● You must pick an architecture your team can manage. ○ For this reason, do not pick EDA CQRS without experience. ○ High costs in understandability and debugging challenges.
  • 18. Q4: Time to Market ● Time to market is everything; ask the business. ● Our design must incorporate the realities of time to market. ● We may rewrite it later ● Although deadlines are often not negotiable, features in the release are usually negotiable. ● Use UX-based design and, build an MVP, and negotiate features as needed.
  • 19. Q5: What are the hard problems?
  • 21. P1: Drive Everything from User Journey Quote ??
  • 22. P2: Use a Iterative Thin Slice Strategy “Premature optimization is the root of all evil” -Donald Knuth.
  • 23. P3: On each Iteration, try to add most value for least effort ● Deeply understand the user journey ● Do less ○ Embrace Minimal Viable Product (MVP) ○ When in doubt( when the team disagrees significantly with each other), leave it out. ○ Wait until enough X three people ask for the feature ( X decided by the leader) ○ Say No if features do not match the user journey. Saying yes to one means saying no to others! (if we take a book store, the user journey is what people do when they come, and it is never fully defined - e.g., someone wants to search by the number of pages in the book, you need to gauge if that is useful for enough users?) ○ Do not over engineer/ Look out for Google Envy. (see You are not Google) ○ Whenever possible, build on top of middleware tools or cloud services. (E.g. IAM) ● Interfaces and other abstractions are techniques for creating options and delaying decisions. But Mind the cost (. e.g., One often seen mistake ("anti-pattern") in using abstractions is an extensive use of layering (with really terrible performance impact).
  • 24. P4: Leader must make Decisions and absorb the Risks ● Any project faces many uncertainties. ○ E.g., the capacity of the MVP's first version. ○ A leader must collect the required data and perform required experiments, but that is often not enough. ● While designing the moon rover, nobody knew the moon's surface. ○ Phyllis Buwalda wrote a specification of the moon's surface, just elevating parameters from the harshest desert on the earth. He absorbed the risks. ● Leaders must remove ambiguity, create solvable targets, and absorb the risks. If they do, little time would be wasted on indecision. ● Make it your goal not to slow down anyone!! Nicholas Mutton / A fork in the road / CC BY-SA 2.0
  • 25. P5: Design Deeply things hard to change and but implement them Slowly
  • 26. P6: Eliminate Unknowns and learn from Evidence
  • 27. P7: The proper Granularity of the Architecture is a Tradeoff
  • 28. Produce Delivery Design: Questions ● When can I rewrite the system? ○ Sales goals will tell you, OK, to rewrite in a year or so ○ Build on top of a single cloud ● How performance-sensitive is my system? ○ Depends on sales forecasts? Likely No. ● How skilled is my team? ○ Find out ● Time to market? ○ Likely, we need this pretty fast? ● What are hard problems? ○ How to handle perishability in the system? ○ Low-latency WAN networks ○ Security
  • 29. Produce Delivery Design: Principles ● Do less and as late as possible ○ MVP is built around key experiences, learns from users ● Make decisions and bind the scope ○ Set down performance targets ● Design deeply, implement slowly ○ Define APIs, understand future scenarios, implement the MVP ● Use iterative thin-slice strategy ○ Stage it, then use Growth Hacking to iterate ● Eliminate unknowns and learn from evidence ○ Build enough traceability ○ Test the thin slice to ensure performance ○ Verify third-party tools, APIs ○ Can simple DB handle it? ○ Growth Hack the Product
  • 30. Book Outline ● Part II ○ Background: Performance, UX ● Part III ○ MacroArchitecture ■ Chapter 5: Introduction ■ Chapter 6: Coordination ■ Chapter 7: Preserving Consistency of State Chapter 8: Handling Security ■ Chapter 9: Handling HA and Scale Chapter 10: Microservices Considerations ○ How to write a service ○ How to Build Stable systems ● Part III ○ Putting everything together
  • 31. Conclusion ● Building Great Software Designs is about handling uncertainty ● We need to use a fluid approach rather than rigid principles, such as maximizing options ● Five Questions gives you a framework to understand ● Six Principles gives you a framework to make decisions ● It is not a formula but requires careful consideration, and great designs can’t come from formulas. You must think!! Uncertainty is leaders responsibility