SlideShare a Scribd company logo
Fire Fighting
A developer's story
Ahmed Eid
Software Developer
Booking.com, Amsterdam
crouchsays
Agenda
• What to expect?
• What brought me here?
• What is a fire?
• Fire-fighting vs. The team
• Mapping out dependencies
• Feature toggles
• Abuser Stories
• The unknown unknowns!
What to
expect?
Why fires aren't only harming
your SLIs?
A pro-active approach to fire-
fighting.
What could they have done
better? (War stories)
What brought
me here?
• Same process, different problem
• The scale matters
• Less fire-fighting = Higher productivity
What? Why? How?
What is a fire?
Anything that would require an emergency re-
allocation of resources.
IOW, anything that would require you to drop
whatever you have in hands right now and start
working on.
Why is it a
problem?
Disturb the planned work
Hero culture
Stressful for fighters
Patches make it chronic
How does it
happen?
• Cutting corners while solving problems
• Too many problems and no enough time
• Allowing others control the project agenda
• No priorities, everything is urgent
How to be ready?
Dependencies
Think about your subsystems
and dependencies
Document impact in case of
failure
Think of fallbacks or degradation
of service
login​ list_products checkout​
Users DB​ Fatal​ N/A​ Needed​
User activity stream​ Needed​ Needed​ Needed​
Products DB​ N/A​ Fatal​ Fatal​
Stored Cards​ N/A​ N/A​ Needed​
Features
• What are they?
• Release Toggles vs Long-lived Switches
• Document them:
• When to use?
• What is the impact?
login​ list_products checkout​
Users DB​ Fatal​ N/A​ Needed​
User activity stream​ Needed​ Needed​ Needed​
Products DB​ N/A​ Fatal​ Fatal​
Stored Cards​ N/A​ N/A​ Needed​
Abuser
Stories
• Evil users
• It's important to change hats
• Prepare for the worst
War stories?
• As an abuser, I'd like to live stream violent
content(video) and make it go viral. - Facebook
• As an abuser, I want to post social engineering-
based scams and make them go viral. - Twitter
There are known knowns. There
are things we know we know. We
also know there are known
unknowns. That is to say, we
know there are some things we
do not know. But there are also
unknown unknowns, the ones we
don't know we don't know.
Donald
Rumsfeld
Knowns Unknowns
Known Known
Knowns
(Facts)
Known Unknowns
(Questions)
Unknown Unknown
Knowns
(Intuition)
Unknown
unknowns
(Exploration)
The unknown
unknowns
You don't know what you don't
know
Users use systems in
unexpected ways
Log messages & metrics are
your best friends
* https://twitter.com/DZoneInc/status/1301603469267214338
Procedure
ASSESS CONTAIN INVESTIGATE
RESOLVE DOCUMENT
Thanks

More Related Content

Similar to Fire fighting a-developers-story

Emperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakkEmperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakk
kevinjohngallagher
 
Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012
kevinjohngallagher
 

Similar to Fire fighting a-developers-story (20)

Tips & Tricks for Being a Successful Tech Lead
Tips & Tricks for Being a Successful Tech LeadTips & Tricks for Being a Successful Tech Lead
Tips & Tricks for Being a Successful Tech Lead
 
Stop punching yourself in the face!
Stop punching yourself in the face!Stop punching yourself in the face!
Stop punching yourself in the face!
 
How to Talk About Your Open Source Project So People Get It
How to Talk About Your Open Source Project So People Get ItHow to Talk About Your Open Source Project So People Get It
How to Talk About Your Open Source Project So People Get It
 
What I have learned by dealing with a dungeon master
What I have learned by dealing with a dungeon masterWhat I have learned by dealing with a dungeon master
What I have learned by dealing with a dungeon master
 
Project Management 101 - Wordcamp TO 05112011
Project Management 101 - Wordcamp TO 05112011Project Management 101 - Wordcamp TO 05112011
Project Management 101 - Wordcamp TO 05112011
 
Corp Web Risks and Concerns
Corp Web Risks and ConcernsCorp Web Risks and Concerns
Corp Web Risks and Concerns
 
Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)
Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)
Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)
 
Emperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakkEmperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakk
 
Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012
 
Paired with an Idiot: Things that sabotage success
Paired with an Idiot: Things that sabotage successPaired with an Idiot: Things that sabotage success
Paired with an Idiot: Things that sabotage success
 
Rich Holdsworth @Didlr Presentation
Rich Holdsworth @Didlr PresentationRich Holdsworth @Didlr Presentation
Rich Holdsworth @Didlr Presentation
 
Scrum: From the Classroom to the Workplace :: IPLeiria 2016
Scrum: From the Classroom to the Workplace :: IPLeiria 2016Scrum: From the Classroom to the Workplace :: IPLeiria 2016
Scrum: From the Classroom to the Workplace :: IPLeiria 2016
 
Emperors new clothes_jab
Emperors new clothes_jabEmperors new clothes_jab
Emperors new clothes_jab
 
Large Scale Data Management
Large Scale Data ManagementLarge Scale Data Management
Large Scale Data Management
 
Proyectos Investigación y Desarrollo
Proyectos Investigación y DesarrolloProyectos Investigación y Desarrollo
Proyectos Investigación y Desarrollo
 
Software Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code GamesSoftware Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code Games
 
Perspectives on salesforce architecture Forcelandia talk 2017
Perspectives on salesforce architecture   Forcelandia talk 2017Perspectives on salesforce architecture   Forcelandia talk 2017
Perspectives on salesforce architecture Forcelandia talk 2017
 
Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOps
 
AgileCamp 2014 Track 5: The Seven Wastes - Can You Get Leaner
AgileCamp 2014 Track 5: The Seven Wastes - Can You Get LeanerAgileCamp 2014 Track 5: The Seven Wastes - Can You Get Leaner
AgileCamp 2014 Track 5: The Seven Wastes - Can You Get Leaner
 
Practical Agile. Lessons learned the hard way on our journey building digita...
Practical Agile.  Lessons learned the hard way on our journey building digita...Practical Agile.  Lessons learned the hard way on our journey building digita...
Practical Agile. Lessons learned the hard way on our journey building digita...
 

More from Agile Club

More from Agile Club (15)

A Great Agile Coach? - insights from coaching trenches
A Great Agile Coach? - insights from coaching trenchesA Great Agile Coach? - insights from coaching trenches
A Great Agile Coach? - insights from coaching trenches
 
SAFe 101
SAFe 101SAFe 101
SAFe 101
 
Let's Shape Our Team Identity
Let's Shape Our Team IdentityLet's Shape Our Team Identity
Let's Shape Our Team Identity
 
Agile Club #16 - Online Retrospectives
Agile Club #16 - Online RetrospectivesAgile Club #16 - Online Retrospectives
Agile Club #16 - Online Retrospectives
 
Agile Club #15 - Lean Night #05: How to use the 10 Types of Innovations to en...
Agile Club #15 - Lean Night #05: How to use the 10 Types of Innovations to en...Agile Club #15 - Lean Night #05: How to use the 10 Types of Innovations to en...
Agile Club #15 - Lean Night #05: How to use the 10 Types of Innovations to en...
 
Scaling kanban with domain storytelling
Scaling kanban with domain storytellingScaling kanban with domain storytelling
Scaling kanban with domain storytelling
 
Delegation Board - A tool to protect the team
Delegation Board - A tool to protect the teamDelegation Board - A tool to protect the team
Delegation Board - A tool to protect the team
 
Agile Club # 11 - Agile Programming Techniques
Agile Club # 11 - Agile Programming TechniquesAgile Club # 11 - Agile Programming Techniques
Agile Club # 11 - Agile Programming Techniques
 
How to design your investor pitch?
How to design your investor pitch?How to design your investor pitch?
How to design your investor pitch?
 
Scrum Team Group Coaching
Scrum Team Group CoachingScrum Team Group Coaching
Scrum Team Group Coaching
 
Gamification at the workplace
Gamification at the workplaceGamification at the workplace
Gamification at the workplace
 
Escaping the Priority Trap
Escaping the Priority TrapEscaping the Priority Trap
Escaping the Priority Trap
 
Portfolio management
Portfolio management Portfolio management
Portfolio management
 
Enterprise agile Framework
Enterprise agile FrameworkEnterprise agile Framework
Enterprise agile Framework
 
Introduction
IntroductionIntroduction
Introduction
 

Recently uploaded

Recently uploaded (20)

2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysis
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 

Fire fighting a-developers-story

Editor's Notes

  1. - Same agile process with the same mistakes, skipping retro, too many meetings, missing standup and even no proper estimation. - Fires now are caused by the live traffic and bad code rolled out unlike before for me where it was a new requirement from a potential customer - The new scale makes a fire actually feels like a fire, it's visualized, it's big and it's its own type of stress - I love and hate firefighting, it gives me the rush I need to be excited but if it becomes a fulltime job it's very exhausting, stressful and leads to a half-baked piece of software with tons of patches.
  2. - Takes time from the sprint, pushes timelines .. - Tasks traffic, how many added vs how many we burn - Hero culture messes up the reward/compensation model, leads to stressed employees, no WLB, etc. - Rushed patches, leads to other bugs that will group with existing bugs and will become a fire within months and then it becomes chronic
  3. Facebook iOS SDK tookdown Spotify, TikTok
  4. Focus on user activity stream as a dependency. If it went down, we can work without the tiny green light, we can just ignore that code path of handle the failures gracefully
  5. Refer to Martin Fowlers' toggles and the idea that if possible for feature releases we should break down the feature and make the toggle the last option compared to long term feature toggles as a degradation of service technique. Even if they use the same framework to flip the switch, we still need to make that logical distinction
  6. Focus on stored card as a feature that you want to disable and enable manually as you might use it in case your suspect a malicious attack or a technical problem like an outage in your auth service.
  7. Looking at the story from a different perspective really helps with fleshing out the task.   It really helps if you think about it before hand, you already have the fire pressure.
  8. It could have helped if they were ready for that kind of abusers. - Facebook could have shut down the video much faster. - Twitter could have been able to use some keywords to block a tweet from being viral (which what they did, but it took them some time).
  9. Everything can happen at the same time, without proper monitoring you are fling blindly and have 0 visibility over your system. Think of a moment where you are seeing a drop in sales but you don't know why, after a while you realise that CS inbound is only from Europe and North Africa, after that you start looking into this and you find that the server has ran out of space because of logs and it wasn't written in a way to handle that gracefully.
  10. - Timezones? - epochs? - MM-DD or DD-MM ?
  11. - Don't forget to hydrate - It can be stressful and long, so try to stay calm - "The simplest explanation is most likely the right one" Occam's razor - Follow your gut and look for evidence