> For the complete documentation index, see [llms.txt](https://hanfak.gitbook.io/workspace/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hanfak.gitbook.io/workspace/general-paradigms/projects/rewriting.md).

# Rewriting

## Why

* Too hard to work with current
  * To make changes
* Too long to fix bugs or add features
* Severe issues which cannot be fixed
* Influential people wnating to use new technology

## Patterns

* Strangler

## Costs

* Something that works, is battle tested, a new app is not and issues/bugs will occur
* The cost of creating it
  * Always some issue that affects the new project which did not affect the old
  * other users cannot change
* The cost of testing current functionality
* The cost of maintaining two code bases
  * Always catch up
* The current app will have logic which may not be documeneted (test/docs) which may be forgotten in new app
* Takes more time than you think

## Links

* <https://www.quora.com/Why-are-people-afraid-of-rewriting-software>
* <https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/>
