Code base management

Anxiety around huge code bases may become old, but management of these huge code bases can never become old. There are so many approaches, patterns, school of thoughts defined around this topic and there are many more still coming up. There must be so many of these which are not even documented, or atleast privately documented.

Every practice which is built, is based on a certain set of principles. Principles are important as they usually define intent of the practice. Practice - the term in itself inherits magnitude or abundance. There cannot be a practice if there are not multiple people involved. An individual cannot be a practice. But an individual can still have principles. So practice in essence is a blend of people and principles.

In terms of softwares, where there are huge code bases to manage and maintain, principles are very important. Obviously, these good quality softwares are not built by a single brain. Its a collective and collaborative efforts of huge teams. When these teams work, they have to work on a predefined construct or we may as well call them as a set of rules. These rules are nothing but principles, often referred to as design principles. Teamwork based on principles is practice. Again, there are various types of principles which need to be considered - design, coding, communication, memory allocation, etc. Every thing can be streamlined in order for teams to work collaboratively and produce a good quality software.

A good software architecture is the one which gives a lot of emphasis on these principles.