I write down the history of the library in order to make sure, that I know, why this piece of programming exists. It also helps me to limit the scope of the project and to determine, if this project is still needed.
While implementing an solution program during my master's internship, I created some generic helper code, configuration storage and an integration into log4j. These utilities helped me to organize my knowledge and try out things regarding programming in Java, which was relatively new to me. I also noticed that some things in the standard and external libraries of Java did not seem to ideal. A needed araised to create code in order to easier integrate these libraries.
During my master thesis I implemented a successor to the previously mentioned solution program . For this I created a library that wrapped all dependencies and integrated these into the optimizer. It worked as intended but was over engineered and I implemented too many things on my own.
After my master thesis I used this framework for some other personal projects and noticed that some things were of with my library. I also recognized, that I invested too much time into it.
I therefore formally defined the goals of the library and decided that as many parts as possible should not be implemented in Dem. Some guidelines were needed on how to integrate foreign software. So I made the library Dem a little bit smaller and drafted an experimental guideline. The library was still too big and the quality of the guide could be better.
During my programming escapades I noticed, that I needed to write some things down regarding the art of coding. There existed to many useful bits of information to keep them in mind and to apply them in practice. I therefore expanded the scope of the guidelines. Now I use the guidelines for any kind of practical bits regarding software development, as long as it does not apply to only one language.
So I wanted to force myself to improve this piece of software, that I use for multiple projects, and make it more useful to me. Therefore, I forced myself to make this project public and open source. This motivated me clean the up this project.