Thinking about the project structure
It's no secret that as a project grows, it becomes harder and harder to find things in it – both in listfiles and in the source code. Therefore, it is very important to maintain the project hygiene right from the start.
Imagine a scenario where you need to deliver some important, time-sensitive changes, and they don't fit well in either of the two directories in your project. Now, you need to additionally push a cleanup commit to restructure the file hierarchy to fit your changes neatly. Or, what's worse, you decide to just shove them anywhere and add a TODO to deal with the issue later.
Over the course of the year, these problems accumulate, the technical debt grows, and so does the cost of maintaining the code. This becomes extremely troublesome when there's a crippling bug in a live system that needs a quick fix or when people unfamiliar with the code base need to introduce occasional changes.
So, we need a good project...