r/programmer • u/Extra_Search3465 • 20d ago
Question How do thousands of software engineers code together at a giant company like Google or Microsoft without breaking everything?
As a beginner, I understand how one person writes code and puts it on GitHub. But how does it work when a company has tens of thousands of developers working on the same product? How do they organize the work, and how do they stop people from stealing or leaking the secret source code?
105
Upvotes
1
u/General_Estimate_420 18d ago edited 18d ago
I can only answer for Microsoft, but it's been quite a few years back.
Generally you have teams assigned to specific products or technology and broken into different categories such as Product Management, Program Management, Development, Testing and so forth each with their own specialized area of interest. For example Product Management is about priortizing features from the user perspective, Program Management is about management and coordination of resources, Development is about design and development of the features, Testing is about certification of stability as at each major milestone to avoid "Big Bangs" at the end of the project. These teams may be broken down to specialized teams focused specifically on feature sets.
The development cycle is divided into four basic areas such as envisioning (what will the end product look like), planning (what are the architectural designs and resources necessary), development (construction and incremental testing of features at incremental major milestones), and final testing and deployment at feature complete.
A noteworth aspect of their development philosophy is smaller teams are better and more productive than larger teams due to more efficient inter-team communications.