SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Building 
Dependable Software 
Strategic technology advice 
for building dependable business-critical software 
Dr. Jayaraj Poroor 
http://jayaraj.poroor.com
Overview 
The land of 
requirements 
The land of 
dependable software 
The gap needs to 
be filled by 
employing the 
right technology 
strategies. 
● Architecting 
● Analysis 
● Feasibility Studies 
● Prototyping 
Semantic gap 
between 
requirements and 
dependable code.
Bugs vs Strategic Mistakes 
● It will take a lot of bugs to kill a typical 
software - but a single strategic mistake 
is enough.
FBI’s Virtual Case File project 
$170 million project scrapped 
700,000 lines of unusable code written 
“The [VCF] architecture was developed without adequate 
assessment of alternatives and conformance to various 
architectural standards.” 
Assessment Report by Aerospace Corp. 
[IEEE Spectrum]
What is Software Architecture? 
A complex jigsaw that connects together 
frameworks, libraries, modules, data stores, 
platforms, app servers into a robust system. 
●
Functional vs Non-functional 
requirements 
Functionality is only a part of the puzzle. 
Stability Extensibility Performance 
Security Scalability 
Domain 
Functionality
Good vs Bad Architecture 
A system that can 
collapse any time 
A system that can 
gracefully handle stress 
vs 
● load 
● attacks 
● changes
Benefits of proper software 
architecture 
● Stability 
● Scalability 
● Performance 
● Security 
● Reduced code complexity 
● Extensibility
Data architecture is especially 
important 
“Show me your flowcharts and conceal your tables, and I 
shall continue to be mystified. Show me your tables, and I 
won't usually need your flowcharts; they'll be obvious.” 
Fred Brooks 
Computer Pioneer & Turing Award* Winner 
* Turing Award is Computer Science equivalent of Nobel Prize
Data Architecture: Good vs Bad 
System 
Requirements 
Wrong Data Architecture 
System 
Requirements 
Right Data Architecture 
vs
Not all application data are equal 
Basic 
Domain 
Data 
Time-tagged 
Log Data 
Relationship 
Data 
Unstructured 
Text 
Session 
Data 
The same application may have diverse data requirements.
Force fit all data into the same 
data store? 
● Poor performance/scalability 
● Complex application code 
○ Slow/buggy 
Application’s diverse data 
requirements. 
A single data store won’t fit all 
requirements
Hybrid Data Architecture 
● Use the right kind of data store for each 
different kind of data requirement.
Data stores: the sheer variety! 
Key-value Stores 
Distributed 
Key-value Stores 
In-Process 
Key-value Stores 
Un/Semi-structured 
search databases Time-series 
databases 
Column-family 
databases 
In-process SQL 
databases 
Relational 
databases 
Graph 
databases 
Document 
databases 
XML 
databases 
Logic-based 
databases
Frameworks are important too! 
Frameworks support the code we write.
Choices are many! 
Ruby on 
Rails 
Groovy 
on Grails 
Express 
(Node.js) 
Spring 
CakePHP 
Client-side 
frameworks, e.g. 
AngularJS
Security: Protect your precious data! 
Security incidents result in serious financial losses 
and lost credibility 
Cross-site 
Scripting 
XSRF 
SQL 
Injection 
Use of 
Vulnerable 
Libraries
Rework is costly 
● Architectural mistakes are strategic 
mistakes - costly to correct 
○ e.g., migrating from a bad framework or 
migrating to a new data store. 
● Investment in architecture will save you 
time, money, and your reputation 
tomorrow
Strategic decisions must be 
based on hard data 
“In God we trust; all others must bring 
data.” 
Edward Deming* 
*The man behind Japanese post-war industrial revolution
Strategic technology activities 
● Architecture Performance & Scalability 
Study. 
● Framework Comparative Analysis. 
● Architecture Vulnerability Assessment. 
● Technology Feasibility Study. 
● Technology Prototyping.
Performance & Scalability 
“Premature optimization is the root of all evil.” 
Don Knuth. 
● Scalability is important but not everyone 
needs to be Google or Twitter. 
○ Over-architecting can be expensive. 
○ Under-architecting can be disastrous.
Performance & Scalability 
1. Study Requirements. 
2. Start with a simple architecture. 
3. DO 
Model the architecture, simulate (in AWS 
with actual VMs), and collect performance 
data. 
Identify bottlenecks. 
Incrementally modify the architecture. 
ITERATE UNTIL 
PERFORMANCE IS 
SUFFICIENT
Choosing the right framework 
You’re unsure whether to really go with 
framework A, B, C, or D? 
How to decide? Roll a dice?
Framework Comparative Analysis 
Analyze data from various sources so that you can 
make an informed decision.
Concrete trend metrics 
Analysis will show framework trend metrics. 
● Stable? 
● Active? 
● Growing community? 
● Library availability? 
● Support? 
● Security Issues?
Architecture Vulnerability Assessment 
Analysis should help identify security weak links 
in your system architecture.
Using an insecure library? 
Analysis should reveal whether libraries, 
frameworks, platforms you are using have any 
serious security issues.
Technology Feasibility Study 
When you explore fresh & challenging application 
domains feasibility study report will be your map.
Technology Prototyping 
Nothing beats building an actual prototype when 
exploring new & challenging domains. 
“I do and I understand.” “The map is not the territory.” 
- - Confucious
Thank You 
jayaraj.poroor@gmail.com 
http://jayaraj.poroor.com 
Peace of mind with dependable software.

Contenu connexe

Dernier

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
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.
 
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
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 

Dernier (20)

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
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
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
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
 
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
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 

En vedette

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 

En vedette (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

Building Dependable Software

  • 1. Building Dependable Software Strategic technology advice for building dependable business-critical software Dr. Jayaraj Poroor http://jayaraj.poroor.com
  • 2. Overview The land of requirements The land of dependable software The gap needs to be filled by employing the right technology strategies. ● Architecting ● Analysis ● Feasibility Studies ● Prototyping Semantic gap between requirements and dependable code.
  • 3. Bugs vs Strategic Mistakes ● It will take a lot of bugs to kill a typical software - but a single strategic mistake is enough.
  • 4. FBI’s Virtual Case File project $170 million project scrapped 700,000 lines of unusable code written “The [VCF] architecture was developed without adequate assessment of alternatives and conformance to various architectural standards.” Assessment Report by Aerospace Corp. [IEEE Spectrum]
  • 5. What is Software Architecture? A complex jigsaw that connects together frameworks, libraries, modules, data stores, platforms, app servers into a robust system. ●
  • 6. Functional vs Non-functional requirements Functionality is only a part of the puzzle. Stability Extensibility Performance Security Scalability Domain Functionality
  • 7. Good vs Bad Architecture A system that can collapse any time A system that can gracefully handle stress vs ● load ● attacks ● changes
  • 8. Benefits of proper software architecture ● Stability ● Scalability ● Performance ● Security ● Reduced code complexity ● Extensibility
  • 9. Data architecture is especially important “Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowcharts; they'll be obvious.” Fred Brooks Computer Pioneer & Turing Award* Winner * Turing Award is Computer Science equivalent of Nobel Prize
  • 10. Data Architecture: Good vs Bad System Requirements Wrong Data Architecture System Requirements Right Data Architecture vs
  • 11. Not all application data are equal Basic Domain Data Time-tagged Log Data Relationship Data Unstructured Text Session Data The same application may have diverse data requirements.
  • 12. Force fit all data into the same data store? ● Poor performance/scalability ● Complex application code ○ Slow/buggy Application’s diverse data requirements. A single data store won’t fit all requirements
  • 13. Hybrid Data Architecture ● Use the right kind of data store for each different kind of data requirement.
  • 14. Data stores: the sheer variety! Key-value Stores Distributed Key-value Stores In-Process Key-value Stores Un/Semi-structured search databases Time-series databases Column-family databases In-process SQL databases Relational databases Graph databases Document databases XML databases Logic-based databases
  • 15. Frameworks are important too! Frameworks support the code we write.
  • 16. Choices are many! Ruby on Rails Groovy on Grails Express (Node.js) Spring CakePHP Client-side frameworks, e.g. AngularJS
  • 17. Security: Protect your precious data! Security incidents result in serious financial losses and lost credibility Cross-site Scripting XSRF SQL Injection Use of Vulnerable Libraries
  • 18. Rework is costly ● Architectural mistakes are strategic mistakes - costly to correct ○ e.g., migrating from a bad framework or migrating to a new data store. ● Investment in architecture will save you time, money, and your reputation tomorrow
  • 19. Strategic decisions must be based on hard data “In God we trust; all others must bring data.” Edward Deming* *The man behind Japanese post-war industrial revolution
  • 20. Strategic technology activities ● Architecture Performance & Scalability Study. ● Framework Comparative Analysis. ● Architecture Vulnerability Assessment. ● Technology Feasibility Study. ● Technology Prototyping.
  • 21. Performance & Scalability “Premature optimization is the root of all evil.” Don Knuth. ● Scalability is important but not everyone needs to be Google or Twitter. ○ Over-architecting can be expensive. ○ Under-architecting can be disastrous.
  • 22. Performance & Scalability 1. Study Requirements. 2. Start with a simple architecture. 3. DO Model the architecture, simulate (in AWS with actual VMs), and collect performance data. Identify bottlenecks. Incrementally modify the architecture. ITERATE UNTIL PERFORMANCE IS SUFFICIENT
  • 23. Choosing the right framework You’re unsure whether to really go with framework A, B, C, or D? How to decide? Roll a dice?
  • 24. Framework Comparative Analysis Analyze data from various sources so that you can make an informed decision.
  • 25. Concrete trend metrics Analysis will show framework trend metrics. ● Stable? ● Active? ● Growing community? ● Library availability? ● Support? ● Security Issues?
  • 26. Architecture Vulnerability Assessment Analysis should help identify security weak links in your system architecture.
  • 27. Using an insecure library? Analysis should reveal whether libraries, frameworks, platforms you are using have any serious security issues.
  • 28. Technology Feasibility Study When you explore fresh & challenging application domains feasibility study report will be your map.
  • 29. Technology Prototyping Nothing beats building an actual prototype when exploring new & challenging domains. “I do and I understand.” “The map is not the territory.” - - Confucious
  • 30. Thank You jayaraj.poroor@gmail.com http://jayaraj.poroor.com Peace of mind with dependable software.