Today's summary is about a paper written by Fergus Henderson in 2017.
The aim of this paper is to catalogue and briefly describe Google’s key software engineering practices.
Note: In the summary, I skipped lots of items that I found fairly obvious and now widely practiced in the industry (at least from my experience).
Product managers are responsible for the management of a product; as advocates for the product users, they coordinate the work of software engineers, evangelizing features of importance to those users, coordinating with other teams, tracking bugs and schedules, and ensuring that everything needed is in place to produce a high quality product.
Program managers have a role that is broadly similar to product manager, but rather than managing a product, they manage projects, processes, or operations (e.g. data collection). Technical program managers are similar, but also require specific technical expertise relating to their work, e.g. linguistics for dealing with speech data.
The ratio of Software Engineers to Product Managers and Program Managers varies across the organization, but is generally high, e.g. in the range 4:1 to 30:1.