Summary
Building software that is evergreen is hard. Software that stands the test of time, does not lose its maintainability, and has the ability to allow development of new capabilities in a reasonable time frame is even harder. Keeping the time it takes to develop new business value close to constant is what we’re aiming for. This makes it much easier for businesses to determine the impact of new functionalities. It also makes this impact more predictable for developers.
To this end, there are techniques, patterns, practices, and principles that can help. Thinking in extensible terms and designing the code to not become locked down is key, in my opinion. In this way, most of the time, it’s possible to focus on additions, rather than having to perform open-heart surgery just to add new capabilities.
In the next chapter, we’re going to look at combining what we looked at in this chapter with what you started doing with conventions in Chapter 10, Convention...