Complexity in software is the result of poor design. It has nothing to do with the size of a codebase, but how well it articulates the problem it is solving. A solution should never be any more complex than its original problem domain. The domain should be stripped of ambuigity & noise, and cleanly represented by a concise model. Fail to do this, and every day complexity will be added trying to support an incorrect model.

Stop thinking about solutions in code, and take a step back, understand the problem, and solve it with your design.