I work in a shop where I regularly interact with our code developer group. The primary program they work with deals with almost all of the regulated work we do (we are a contract pharmaceutical lab).
This program was originally written in the late 90s by someone who had no formal programming experience, and they did a great job for what they knew about and what they could imagine the business would grow to include. What they did not do, and it's hardly surprising since they weren't trained as a programmer, was make things modular. At all.
Since then, we have grown to generate about 100x the work, and the software now has a team of six full time developers, who all do modular coding. The underlying code base, however, has largely not changed.
This is not good. In fact, it's about the worst thing you can possibly have, and it has resulted in the application becoming something like the Winchester Mystery House, where modules are built all over the place on top of each other. Since there's very little consistent underlying structure, it makes development a royal pain, with many, many problems, since nothing was developed to work together.
In the next couple years, we are going to be hiring a few more developers, and re-doing almost the entire thing from scratch.