If the software is undocumented, then document it as you read it. At the very least make sure that you are documenting your own modifications. In any code base, you are going to need to dedicate the time to learning what that code base is.<p>Before you do X, you should always ask someone if they are aware whether or not X already exists in the code base.<p>This is true outside of the work setting. If you are making websites for fun in your spare time, you are likely to spend time learning a framework such as node or django. If you are making games you are going to learn some tool like Unity or an engine like unreal or source.<p>Imagine if you had a project where you defined 20 different functions for requesting the html of a webpage, each doing something slightly different. Think about what kind of a maintenance nightmare that would be. You are suddenly required to implement a proxy on all requests, but doing so breaks half of your functions. You can&#x27;t just scrap them, because each has a nuanced use (since you were too lazy to update your existing function(s) to fit your needs).<p>You would never do that in your own project, but that&#x27;s exactly what you&#x27;re doing with this company&#x27;s code base.<p>&quot;It means my thoughts must be bent to fit some pre-existing shape, which eliminates the need for my thoughts, and suggests they should be permanently replaced with those of my predecessors.&quot;<p>No, it means your thoughts must bend the pre-existing shape, which eliminates the need to create the shape yourself, since that was already handled by your predecessors.<p>Your point of view is a lie. Do you program on an OS you wrote yourself from assembly code, in your own programming language, on your own custom built hardware, with no libraries or tooling?<p>Musicians do not reinvent thousands of years of musical discovery, yet they manage to find immense pleasure and creativity in their work.<p>If you have done very little programming outside of college, you should see other people&#x27;s code as a treasure trove of information. Just as musicians find inspiration in other people&#x27;s songs. My last tip is to revert to pencil and paper when you are having difficulty understanding someone else&#x27;s code.