> For the complete documentation index, see [llms.txt](https://petozoltan.gitbook.io/simplecode/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://petozoltan.gitbook.io/simplecode/clean-code/clean-code-outline/why-clean-code.md).

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

![](/files/-M1fWXieduUp2uGbybE9)

> Technical debt is the biggest risk of the development
