The problem isn&#x27;t that you have to use&#x2F;extend existing code, the problem is that it isn&#x27;t documented. I&#x27;m guessing there is a lack of knowledge sharing between the developers.<p>Like others have said; instead of writing the functionality from scratch, try to understand the existing code and document it.<p>&gt;  The process slowly repeats until my feature eventually converges onto a configuration of existing components, with as little new code as possible.<p>In other words: &quot;The process slowly repeats until you know the codebase&quot;. Also, less code brings less bugs.<p>&gt; I must spend X^(size of our codebase) hours grappling with other people&#x27;s ideas, solutions, and mistakes.<p>Learning to understanding how other people think is crucial, and its better to learn from the mistakes of others than your own.<p>&gt; Should I be deriving pleasure from this?<p>Hopefully, with time. But you are more supposed to derive a salary from it.