In the new issue of IEEE Software (Nov/Dec 2016) Ricardo Britto, Lars-Ola Damm and I share a story of architects working with remote teams at Ericsson. We have followed a case of a large-scale monolithic legacy product development trying to understand how new teams are onboarded and improving over time, and whether the company will be able to step away from the centralized architecting towards more trendy approaches to evolving the design of the system.
In our study, we have found that architects play a major role in guarding the system’s integrity and evolvability, and mentoring the new remote teams. They review the code, they propose the design of the work items, they even suggest code improvements to speed up the progress. The importance of architects’ support is naturally higher when teams are immature, and decreases over time. In our study, we came up with the factor 4,5x.
Our findings have one major implication. When a company wishes to have flexibility in deciding where the system is developed, and scales up and down in different remote locations, we believe it is impossible to step away from the centralization of the architectural decisions and control. And this is especially true in complex legacy systems, in which it takes years to accumulate enough knowledge to become productive and independent.