[[Presenting]] on [[Brainhub's Knowledge Sharing]] ![](https://youtu.be/ucLv7oQVYh0) # Intro [[Legacy]] - a mythical land that strikes fear into the hearts of many developers, while clients shed tears spending more money to cover tests, refactorings, and reduce [[Tech debt]], all while deliveries slow down. In this wild world, is there room for a Good developer who seeks to bring order and standards, or are we resigned to the belief that Bad Hack (workaround)|hacks and fixes in [[Production environment]] are our only options, and that Ugly code will prevail? In this presentation, I will share insights from my own experiences and those of many seasoned professionals, exploring whether legacy is truly as terrifying as it is often portrayed. # Summary ![[Quality triangle 2.png]] ## Good & Ugly > Avoid Ugly & Good as it will only cost your Time and Money > - [[Premature Optimization]] > - [[You Aren't Gonna Need It]] > - [[Legacy]] is contextual > - WHY - You need to understand client's vision and requirements > - Programming is [[Craftsmanship]], not Art ## Bad & Ugly > Avoid Ugly & Bad as there is no Quality at the end > - [[Test Driven Design]] > - [[BDD]] > - [[Boy Scout Rule]] is actual refactorization > - [[Code for the Maintainer]] so people like you ## Good & Bad > Avoid Quality & Fast as it will bring you no money at the end > - estimations are hard, but metrics are more important > - understand [[OCP]] > - [[Static code analysis]] is for you, client won't understand it > - present metrics - like [[DORA]] > - new technologies are like casino, you are much closer to business > - [[Gartner Hype Cycle]] > - [[Amara's Law]] ## Finale > It is all about finding Golden Mean > - You cannot provide `Cheap, Fast and Quality` at the same time > - Startup tends to Fast > - [[Legacy]] tends to Quality > - At the end you need to find `Golden Mean` > - while providing `Cheap` > - That's why it is extremely important to understand client's WHY > - and make it as simple as possible [[KISS]]