The difference between a good and a great code base
Bear with me on this. While I was in the restaurant industry I learned, after a few years, the difference between a good manager and a great manager.
A good manager was one, while in the restaurant, was able to effectively communicate and get the team to basically satisfy the customers in a timely professional manner. It became obvious with happy customers coming to the checkout register and occasionally complementing the food and or staff.
A great manager was one, while not in the restaurant, was able to accomplish the same thing (or an even better environment). It meant that all the staff were hired well, knew what was expected of them, and were trained properly. Somewhat subtle but it did make a huge difference among the restaurants.
Now that I am in the software industry I see a similar pattern. A good code base is, while the code owners are around, extendable and understandable when you ask the code owners.
A great code base is one where the code owners are not available, hopefully on vacations etc, and even the junior developers can easily understand the code base and make changes.
Both of these have a few critical concepts in common: simplicity, clarity, and training.
When instructions are given in a simple and clear manner it is easy for others to understand and perform.
Simplicity and clarity is the same in our code bases. It makes them easier to understand, test, and extend, which are the critical parts of software.
An effective training program is also critical, and in the restaurant environment, this seems obvious. However, not so in the software world. Many software teams lack a good training or a mentoring program.
A focus on training should also be the case in our software teams. We should be training our teams to test and follow critical principles often, not just handed a task and left alone (which happens all too often in the real world).
The software industry has been on break neck speed and looks as if it will continue to do so. Until AI supplants all of us, then I urge everyone to remember a few of these core concepts and hopefully they will improve your teams as well.