Fergus Henderson, who has been a software engineer at Google for 10 years, published the PDF document entitled “Software Engineering at Google“, where he collects and describes key software engineering practices the company is using.
It covers the following:
- software development – version control, build system, code review, testing, bug tracking, programming languages, debugging and profiling tools, release engineering, launch approval, post-mortems, and frequent rewrites.
- project management – 20% time, objectives and key results (OKRs), project approval, and corporate reorganizations.
- people management – roles, facilities, training, transfers, performance appraisal and rewards.
Some of these practices are widely known, some not so much. There are not a lot of details, but the overall summaries should provide enough food for thought for anyone who works in the software development company or is involved in management.