As complexity increases, disorganization becomes suicidal. Consider trying to find a book in here:1
Uncle Bob's observation that we must continually throw away our designs as the system grows is sobering. It also provides us a clue to the conundrum as to why even when investing in clean code, it quickly still feels like we're creating the equivalent of the library in the picture.
The organization structure that works for a thousand line program, does not work for a ten thousand line program. And the organization structure that works for a ten thousand line program does not work for a hundred thousand line program.
To achieve the organisation we desire as programmers we must continually be ready to create new organisation structures and be prepared to throw away ones we've already spent considerable time investing in.
This again reminds me of the absolute necessity of complete unit and acceptance test coverage. Without it we're unable to refactor fearlessly. Without that we will persevere with the disorganisation and mess that our initial structures were created intentionally for the purposes of avoiding.
http://blog.cleancoder.com/uncle-bob/2015/04/15/DoesOrganizationMatter.html "Does Organization Matter?" - Clean Coder Blog ↩