# Why Clean Code?

### Enterprise Software

It is not enough to learn a programming language. We have to develop enterprise software which are:

* Large: 100k – 1M lines
* Long life cycle (years)
* Complex
* Many developer
* Many modifications
* Iterative development

### Problems

* Many bugs - potential bugs hiding in the code
* Code is too complex - hard to understand
* Code is fragile - changes causes new bugs, side effects
* Falling productivity - low development speed
* Unreliable, impossible estimations
* Too much Technical Debt collected

### Technical Debt

* Invisible
* "Should have been done"
* "We will fix it later"
* Result of "quick & dirty" coding
* Poorly written code is a technical debt - *"Should be written better"*

> The total cost of owning a mess. (Robert C. Martin)

![](https://2662009507-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M1Cc_hcV3kt58baLlJP%2F-M1fWTAgd23ZOK2rnlJu%2F-M1fWXieduUp2uGbybE9%2Fvelocity-graph.png?alt=media\&token=891fbb7b-e52f-414a-9c80-a1e76ecc66c5)

> Technical debt is the biggest risk of the development
