Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The click that saves weekends

The click that saves weekends

Working with both startups and enterprises, over the years I realized that many companies are struggling to set up solid release practices. That results in risky, error-prone releases followed up with a lot of bugs, weekend work and people burning out.

With this talk, I am aiming to inspire engineers to step back from the day to day operations and rethink their engineering process. I share a personal story on how optimizing our engineering processes decreased our production bugs by 70% and leveled up the software we are developing and was a key driver to the scale of the company.

The talk is perfect for CTOs, VP of Engineering, tech leads, or software engineers who are exploring opportunities to leveling up their engineering teams and bringing improvement in their organizations.

095536b60668fc0bb929c3ff6b72c0a1?s=128

Tosho Trajanov

October 12, 2019
Tweet

Transcript

  1. The click that saves weekends HackConf, Sofia., 2019

  2. @TsTrv CTO Adeva - An Exclusive Developers Network Fully-distributed network

    Worked with startups and Fortune 500 companies Helped many startups optimize their engineering processes
  3. @TsTrv Setting up strong engineering process

  4. @TsTrv One-click deployment in legacy application

  5. @TsTrv State of the application ー Legacy, enterprise application built

    in PHP ー Being developed for over 10 years ー 0% test coverage ー 10 engineers - to keep it alive
  6. @TsTrv The problems ー Unable to ship fast ー Never

    ending bug fix cycle ー Full-regression testing took 3-4 weeks ー Releases once monthly ー Scheduled on weekends
  7. @TsTrv One-Click Deployment

  8. @TsTrv

  9. @TsTrv Why not!?

  10. @TsTrv Objections ー Complexity ー Risk ー Control ー Habit

  11. @TsTrv Continuous Everything

  12. @TsTrv Continuous Everything… Nirvana

  13. @TsTrv Continuous Everything… Nirvana

  14. @TsTrv Continuous Everything… Nirvana

  15. @TsTrv Code should always be in a relisable state

  16. @TsTrv Continuous Everything ー Failing small ー If something breaks,

    you know to fix immediately ー Fewer bugs ー Release new features faster ー Reduce Costs
  17. @TsTrv What could potentially go wrong?

  18. @TsTrv What could potentially go wrong right?

  19. @TsTrv Legacy code ー Strangler Pattern ー Branch By Abstraction

    Technique
  20. @TsTrv Strangler Pattern

  21. @TsTrv Branch By Abstraction

  22. @TsTrv Automated Tests

  23. @TsTrv Automated tests ー Assume legacy works flawlessly ?! ー

    Utilize new modules to Increase the code coverage
  24. @TsTrv Pipeline

  25. @TsTrv Deployment vs Release ー Decoupling ー Feature Toggles –

    Dark Launching – Phased rollout
  26. @TsTrv

  27. @TsTrv Deployment Strategy ー Blue Green ー Canary deployment

  28. @TsTrv Blue Green Deployment

  29. @TsTrv Blue Green Deployment

  30. @TsTrv Canary Deployment

  31. @TsTrv Mindset ー Everyone should participate ー Not a DevOps

    work only ー Continuous improvement, day by day
  32. @TsTrv Actions ー Wrapped up the legacy code ー Faked

    automated tests for the legacy ー Identified pipeline ー Decoupled releases from deployment ー Created a culture of continuous improvement
  33. @TsTrv Wins ー Release code to production multiple times daily.

    ー Production bugs lowered by 80% ー From bug report to deploy < 30 mins ー No more weekends work
  34. @TsTrv Always strive for continuous improvement, instead of perfection.

  35. @TsTrv Thank you