SlideShare uma empresa Scribd logo
1 de 17
Alexander Nemsadze
Software Developer
Typical Development Life Cycle
Conception
Initiation
Analysis/Req.Def.
Design
Development
Integ. Testing / QA
Deployment
Maintenance
Quality of Life
Quality of Life
 Release 1.0 is the beginning of your
software’s life, not the end of the
project.
 Your quality of life after Release 1.0
depends on choices you make long before
that vital milestone.
Quality of life degraded, what now?
Get fired!
Gain experience, learn lessons!
Stay happy
• Frequent server restarts
• Professional users
• Favorite browser
• No concurrent load on server
• Emulated integration points
• No financial risk in case of
malfunction
• Server is up for months
• All kind of users
• Different browsers (at least that you
have promised to support)
• Real load
• Real integration with external
services
• Negative financial impact
• No assumptions that something
won’t happen, if there is a tiny
chance it will definitely happen
Environment differences
Design Production-Ready System
 Choosing an appropriate technology
 Performance and capacity analysis
 Development team culture
 Architectural decisions
 Effective stress tests
 Deployment checklist
 Monitoring and effective incident investigation
Choosing an appropriate technology
 Investigate
 Evaluate
 Use cases
 Documentation
 Community
 Stability
 Tooling
 Storage
 Experience of your team, learning curve
 Use force
 Your early decisions make the biggest impact on the
eventual shape of your system.
 The earliest decisions you make can be the hardest
ones to reverse later.
Performance and capacity analysis
 Define capacity against system specificity
 Capacity can be maximum concurrent active sessions,
in case of public web site, until allowable response
time is not exceeded.
 Or it can be maximum transactions throughput in case
of financial transactions processing system.
 Any other thing or combination
 Memory usage analyses
 Horizontal scalability
 Hardware topology
 Maybe use some cloud vendor, that offers elastic
capacity service
 Server responsibilities
Development team culture
 Team members must understand and respect methodology
of project management, whether it’s agile, extreme or
whatever
 Note every detail
 Respect coding quality standard
 Unit tests are mandatory
 Integration test are desired for critical modules
 Don’t resolve an issue hoping that someone will test it for
you
 Worst and most annoying is returning back to issue that you
declared as resolved
 Make code reviews of each others code
 Refactor as many times as it is needed for your own
satisfaction looking at your own code.
 Log effectively
 Ask for advice, if you are not sure that you make it right
Architectural decisions
 Gather use cases and constraints before thinking
solution
 There are no straightforward rules or patterns
for success. All of this templates together with
experience just help to make correct decisions
 Do not confuse architecture with tools and
frameworks
 Design domain model from the performance and
reporting requirements point of view
 Rethink and refactor before it’s too late
 Avoid radical decisions when the milestone is
nearing
 Think pragmatic
Effective stress tests
 Try to build realistic environment
 Compose scenario of real world usage
 Simulate exceptional situations
 Analyze chains of failure
 Analyze increased memory usage impacts
 Analyze overall performance impacts
 Simulate integration points malfunctioning
Deployment checklist
 Make sure production parameters are set
correctly
 Check memory usage configuration
 Check database connection pool size
 Check thread pools configuration
 Check timeouts configuration
 Check logging configuration
 Check security configurations
 Other server configurations
Monitoring and effective incident investigation
Use monitoring tools and permanently analyze logs.
If you noted some suspected behavior, don’t
hesitate to react, before it will burst the overall
system.
After incident happened don’t immediately destroy
facts that would help you to investigate the issue.
If something happened once it will definitely
repeat.
Alexander Nemsadze
Software Developer

Mais conteúdo relacionado

Mais procurados

Resource#2
Resource#2Resource#2
Resource#2
testerul
 

Mais procurados (19)

What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)
 
The Fallacy of Fast - Ines Sombra at Fastly Altitude 2015
The Fallacy of Fast - Ines Sombra at Fastly Altitude 2015The Fallacy of Fast - Ines Sombra at Fastly Altitude 2015
The Fallacy of Fast - Ines Sombra at Fastly Altitude 2015
 
Ready, set, go! - Anna Royzman
Ready, set, go! - Anna RoyzmanReady, set, go! - Anna Royzman
Ready, set, go! - Anna Royzman
 
Optimizing Java
Optimizing JavaOptimizing Java
Optimizing Java
 
Performance Testing And Beyond
Performance Testing And BeyondPerformance Testing And Beyond
Performance Testing And Beyond
 
Penetration Testing; A customers perspective
Penetration Testing; A customers perspectivePenetration Testing; A customers perspective
Penetration Testing; A customers perspective
 
Architectural Testability Workshop for Test Academy Barcelona
Architectural Testability Workshop for Test Academy BarcelonaArchitectural Testability Workshop for Test Academy Barcelona
Architectural Testability Workshop for Test Academy Barcelona
 
Positivityofnegative
PositivityofnegativePositivityofnegative
Positivityofnegative
 
Hello
HelloHello
Hello
 
What is Regression Testing? | Edureka
What is Regression Testing? | EdurekaWhat is Regression Testing? | Edureka
What is Regression Testing? | Edureka
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Implementing a testing strategy
Implementing a testing strategyImplementing a testing strategy
Implementing a testing strategy
 
TGT#9 - Lessons learned in software testing - Olga Żądło
TGT#9 - Lessons learned in software testing - Olga ŻądłoTGT#9 - Lessons learned in software testing - Olga Żądło
TGT#9 - Lessons learned in software testing - Olga Żądło
 
Hardware/Software Integration Testing
Hardware/Software Integration TestingHardware/Software Integration Testing
Hardware/Software Integration Testing
 
Software testing principles
Software testing principlesSoftware testing principles
Software testing principles
 
Getting started with performance testing
Getting started with performance testingGetting started with performance testing
Getting started with performance testing
 
Software Testing Principles and  Techniques
Software Testing Principles and  Techniques Software Testing Principles and  Techniques
Software Testing Principles and  Techniques
 
Seven testing principles
Seven testing principlesSeven testing principles
Seven testing principles
 
Resource#2
Resource#2Resource#2
Resource#2
 

Destaque

Destaque (7)

იოსებ ძმანაშვილი - The Web APIs
იოსებ ძმანაშვილი - The Web APIsიოსებ ძმანაშვილი - The Web APIs
იოსებ ძმანაშვილი - The Web APIs
 
შოთა გიორგობიანი It's all about having fun
შოთა გიორგობიანი   It's all about having funშოთა გიორგობიანი   It's all about having fun
შოთა გიორგობიანი It's all about having fun
 
როგორ ვერ გავხდი $მილიონერი$
როგორ ვერ გავხდი $მილიონერი$როგორ ვერ გავხდი $მილიონერი$
როგორ ვერ გავხდი $მილიონერი$
 
იოსებ ძმანაშვილი Node.js
იოსებ ძმანაშვილი   Node.jsიოსებ ძმანაშვილი   Node.js
იოსებ ძმანაშვილი Node.js
 
Hack@macs 2014 test driven development & pair programing
Hack@macs 2014 test driven development & pair programingHack@macs 2014 test driven development & pair programing
Hack@macs 2014 test driven development & pair programing
 
შოთა გიორგობიანი - More than Code
შოთა გიორგობიანი - More than Codeშოთა გიორგობიანი - More than Code
შოთა გიორგობიანი - More than Code
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 

Semelhante a ალექსანდრე ნემსაძე - Release it

Sean carter dan_deans
Sean carter dan_deansSean carter dan_deans
Sean carter dan_deans
NASAPMC
 

Semelhante a ალექსანდრე ნემსაძე - Release it (20)

Heuristics of performance testing
Heuristics of performance testingHeuristics of performance testing
Heuristics of performance testing
 
Agile testing
Agile testingAgile testing
Agile testing
 
How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP Shop
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Resilience and Compliance at Speed and Scale
Resilience and Compliance at Speed and ScaleResilience and Compliance at Speed and Scale
Resilience and Compliance at Speed and Scale
 
Best Practices for Applications Performance Testing
Best Practices for Applications Performance TestingBest Practices for Applications Performance Testing
Best Practices for Applications Performance Testing
 
software lecture
software lecturesoftware lecture
software lecture
 
Continuous Delivery and Continuous Agile by Andy Singleton - Agile Maine Day...
Continuous Delivery and Continuous Agile by Andy Singleton - Agile Maine Day...Continuous Delivery and Continuous Agile by Andy Singleton - Agile Maine Day...
Continuous Delivery and Continuous Agile by Andy Singleton - Agile Maine Day...
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Problem Solving Methodology 2011 - 2014
Problem Solving Methodology 2011 - 2014Problem Solving Methodology 2011 - 2014
Problem Solving Methodology 2011 - 2014
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Essential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionEssential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile Adoption
 
Best practice adoption (and lack there of)
Best practice adoption (and lack there of)Best practice adoption (and lack there of)
Best practice adoption (and lack there of)
 
Incorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development ProcessIncorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development Process
 
Testing In Software Engineering
Testing In Software EngineeringTesting In Software Engineering
Testing In Software Engineering
 
DevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operationsDevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operations
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Sean carter dan_deans
Sean carter dan_deansSean carter dan_deans
Sean carter dan_deans
 
Effective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile EnvironmentEffective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile Environment
 

Último

Último (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

ალექსანდრე ნემსაძე - Release it

  • 2.
  • 3. Typical Development Life Cycle Conception Initiation Analysis/Req.Def. Design Development Integ. Testing / QA Deployment Maintenance
  • 5. Quality of Life  Release 1.0 is the beginning of your software’s life, not the end of the project.  Your quality of life after Release 1.0 depends on choices you make long before that vital milestone.
  • 6. Quality of life degraded, what now? Get fired! Gain experience, learn lessons!
  • 8. • Frequent server restarts • Professional users • Favorite browser • No concurrent load on server • Emulated integration points • No financial risk in case of malfunction • Server is up for months • All kind of users • Different browsers (at least that you have promised to support) • Real load • Real integration with external services • Negative financial impact • No assumptions that something won’t happen, if there is a tiny chance it will definitely happen Environment differences
  • 9. Design Production-Ready System  Choosing an appropriate technology  Performance and capacity analysis  Development team culture  Architectural decisions  Effective stress tests  Deployment checklist  Monitoring and effective incident investigation
  • 10. Choosing an appropriate technology  Investigate  Evaluate  Use cases  Documentation  Community  Stability  Tooling  Storage  Experience of your team, learning curve  Use force  Your early decisions make the biggest impact on the eventual shape of your system.  The earliest decisions you make can be the hardest ones to reverse later.
  • 11. Performance and capacity analysis  Define capacity against system specificity  Capacity can be maximum concurrent active sessions, in case of public web site, until allowable response time is not exceeded.  Or it can be maximum transactions throughput in case of financial transactions processing system.  Any other thing or combination  Memory usage analyses  Horizontal scalability  Hardware topology  Maybe use some cloud vendor, that offers elastic capacity service  Server responsibilities
  • 12. Development team culture  Team members must understand and respect methodology of project management, whether it’s agile, extreme or whatever  Note every detail  Respect coding quality standard  Unit tests are mandatory  Integration test are desired for critical modules  Don’t resolve an issue hoping that someone will test it for you  Worst and most annoying is returning back to issue that you declared as resolved  Make code reviews of each others code  Refactor as many times as it is needed for your own satisfaction looking at your own code.  Log effectively  Ask for advice, if you are not sure that you make it right
  • 13. Architectural decisions  Gather use cases and constraints before thinking solution  There are no straightforward rules or patterns for success. All of this templates together with experience just help to make correct decisions  Do not confuse architecture with tools and frameworks  Design domain model from the performance and reporting requirements point of view  Rethink and refactor before it’s too late  Avoid radical decisions when the milestone is nearing  Think pragmatic
  • 14. Effective stress tests  Try to build realistic environment  Compose scenario of real world usage  Simulate exceptional situations  Analyze chains of failure  Analyze increased memory usage impacts  Analyze overall performance impacts  Simulate integration points malfunctioning
  • 15. Deployment checklist  Make sure production parameters are set correctly  Check memory usage configuration  Check database connection pool size  Check thread pools configuration  Check timeouts configuration  Check logging configuration  Check security configurations  Other server configurations
  • 16. Monitoring and effective incident investigation Use monitoring tools and permanently analyze logs. If you noted some suspected behavior, don’t hesitate to react, before it will burst the overall system. After incident happened don’t immediately destroy facts that would help you to investigate the issue. If something happened once it will definitely repeat.