# The difficulties of using old code for future work In my experience it is a well known phenomena, that I write some code with the goal of using it for future work. Then I switch to an other project and forget about the first project. When a long period of time has passed I return to the first project and do not understand any more what I have written there. Especially when the project was more complicated much of the important information about how to use the code and what features to implement next was temporary saved in my brain. This information gets lost if I don't use it constantly. This results in the phenomena that for each more complicated project I have only one try to finish it without interruption. As soon as I have changed the topic for more than 3 months there is no chance to finish it anymore. The solution to this could be to write very modular code and document the interfaces very well in a way that one can use the code even if it is completely new to one. An problem with this is that it is often hard to write modular code and integrate libraries into an existing code structure. Especially if the libraries depend them self on other libraries. This is a big problem with Python and also with Javascript. The commonly used solutions to this problem are the package managers, for example pip and [npm](../../tools/source-code/npm.md). The problem is that they are not decentralized, complicated to use and it feels like a waste to use such packages for a small amount of code like for example just one function. A solution to this could be a [decentralized package manager](../ideas/decentralized-package-manager.md)