TL; DR – Fixing silos is hard, getting common source control and next level tooling in place can help significantly.
Microsoft just announced via a fascinating blog post that they have moved the entire Windows codebase and engineering organisation onto git, and in doing so created a the Git Virtual File System (GVFS).
The GVFS work, and the act of moving the entire Windows code base into git is a very impressive achievement. It shows, in our opinion, a commitment by Microsoft to use and understand the tools their customers are using, in a manner far beyond the boundaries of what most, if not all, of their customers will ever encounter. When it comes to source control git is by far the most commonly used tool out there.
While the git aspect is undoubtedly interesting, particularly in terms of the scaling problems that were encountered, the interesting aspect of this work is the transformational work that is being undertaken.
Most large engineering organisations suffer from problems of silos, multiple internal tools and varying processes, a not invented here syndrome and so forth. As Brain Harry of Microsoft notes they are no different
There are some “common” tools but also a lot of diversity – with VERY MANY internally developed one-off tools (by team I kind of mean division – thousands of engineers).
In trying to address these problems Microsoft set out on an effort called “One Engineering System” (1ES), which covered a multitude of areas in the modern software development lifecycle. But at the very core of this is the source control system. As Brian Harry points out
source control systems generate intense loyalty – more so than just about any other developer tool
There were significant internal debates at Microsoft asking if git was even suitable for such a task (at the time it was not), whether other solutions were better and so forth. People were clearly dogmatic in their positions, a not uncommon occurrence in discussions about core engineering software and approaches.
In this case a decision was made, one presumes in no small way due to what customers are using, to go with git – and there was no effort to find consensus. There are moments when the technology discussion becomes religious that this must be done, and the engineering leadership at Microsoft is to be applauded for making this decision.
Longer term it will be interesting to see if other extremely large codebases move to git. Microsoft have shown it can be done, and highlighted, as is often the case, that the biggest problems will be cultural acceptance rather than the technology.
Disclosure: Microsoft is a current RedMonk client.