Google's Software Engineering: Project Management
20% Time
Engineers are allowed to spend 20% of their work time on any project they want to contribute to, without needing approval from their managers or others. This is highly valuable because:
- As long as there are good ideas, no matter how bad they sound at first, there is ample time to develop them to a demo-ready state.
- It allows managers to see activities they might not otherwise notice; otherwise, engineers might engage in "skunkworks" and work secretly.
- It enables engineers to work on interesting projects, preventing burnout and motivating them to be happier. The output gap between motivated engineers and burnt-out engineers far exceeds 20%.
- It encourages innovation; if others around you are working on 20% projects, you will be inspired to do the same.
OKRs
Individuals and teams must publicly document their objectives and how they measure them.
- Objectives
- Set quarterly and annual goals.
- Individual and team goals should align with the larger group’s goals.
- Key Results: Measurable key results can quantify progress towards objectives, ranging from 0 to 1.
- Set OKRs high; generally, achieving around 0.65 is a good standard. If your results are often below this, your goals may be set too high; if above, they may be too low.
- Benefits
- Everyone knows what others are working on, fostering mutual motivation.
- Provides purpose to execution, making it easier to achieve goals.
- OKRs are not directly related to performance evaluations.
Should the Project Continue or Be Terminated?
While the review process for major new releases is systematic, there is no definitive answer to whether a project should continue; some decisions are bottom-up, while others are top-down.
Reorganization
Splitting and merging teams is common, seemingly optimizing efficiency.
My Evaluation
The results of 20% time are positive, having incubated significant projects like Gmail and AdSense. In a competitive environment, encouraging talented engineers to spend time on new initiatives is highly beneficial. Promoting 20% time is also a unique strategy to attract talent when the company is small and needs to offer excellent benefits. I tend to view 20% time as a management style rather than a guaranteed path to success.
The distinction between OKRs and performance evaluations is crucial—this means separating vision from execution and goal management from performance management. For example, asking "Did you reach the destination?" compared to "Is the car you drove a good one?" are two different questions. Similarly, poor product sales and whether engineers produced a good product are two separate issues.
For regular engineers, maintaining good relationships with other teams in a large company, including those unrelated to your specific work, is important, as it increases your demand in the labor market. This way, in the event of a reorganization or other adverse events, you will have more options.