I am writing this piece based on some of my experiences . There are tons of materials which talks at a technical level of how this scalability of software can be achieved.
I am a programmer, never really understood the importance of the use of design patterns. I failed to deduce the significance of them in real time. This ignorance may be due to most of my experiences dealing with the core framework which I have to adhere. However, as I move up, I realise the importance of it. However, now as an Architect, I am bound to do such things as supporting enterprises with crazy workloads (at least for me) yet accommodating the new features.
Most of the pain in this journey of transforming the application can be mitigated during the early stages of development by having a vision with proper well researched or new(should be well tested though) design/architectural patterns. At least having a good understanding will help us open our minds to limitless possibilities of what can be done during some situations. This approach allows organisations to massively reduce the cost/effort and provides better time to market.
The product should be adhering to a pattern and a set of rules, which helps us in future to dismatle and assemble the whole system in a particular way without damaging anything. Here the damage would be existing stability. This requires everyone on the team should be on the same page with minimum skill set.
One should know what's in the box before you think out-of-box
I am personally starting a new series in this very blog to keep you updated with my "design patterns" journey, feel free to give your valuable suggestions along with my journey.