[[Presenting]] on [[Brainhub's Knowledge Sharing]]

# 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]]