Do you feel like your project is under control? Feel like you are trying to go against the current? The problem with successful software projects is that they grow and gain complexity with time. This often means wasting time trying to figure out how to add features, getting others up to speed, and making sure that the code is not brittle. This can also result in delays shipping updates and bug fixes. And worst of all, you might be the one asked to migrate or modularize such a project.
Working with large codebases can be a nightmare. In this talk we discuss some of time the small steps that can be taken to help eliminate productivity waste and bring your code base under control. We will discuss tips for thinking about when modularizing a project, and tips for gradually improving the architecture of a codebase. We will demonstrate some tools that we have used successfully in the past and discuss results from both talking to team members and analyzing code of multiple projects.