By understanding how software engineering works at Google, we can take a higher level look at whether our projects are robust enough.
The project management
Google engineers are known to have 20% free time to work on whatever interests them without approval. The idea, of course, is to stimulate the creativity of the engineers, but also to keep them productive and not suffocated by what they have to do.
Also, given that many employees do things privately, it’s better to encourage people to make these lines of research public.
Goals and key results
Both individually and as a team, write down your goals clearly and assess your progress towards achieving them. At the end of each quarter, the achievement of the goals will be scored on a scale of 0 to 1 based on key results. This OKR score is publicly available throughout the company.
But this is not directly used as input to individual performance evaluations. The average score is 0.65, but people are encouraged to aim high, so it’s normal to add 50% more work to achievable tasks.
project
Google does not have a clearly defined process for project approval and cancellation. Even managers who have been at Google for 10 years have no idea how decisions are made. Probably because processes are not consistent across the company, managers can use their own judgment and make decisions.
Sometimes decisions are made from the bottom up because everyone on the project team is gone. Sometimes decisions are top-down, with bosses deciding which projects get more money and which must be closed.
Institutional restructuring of
When closing a big project, engineers can find new opportunities on their own and join new teams. Sometimes, there is “defragmentation”, the merging of disparate teams, during which time engineers can choose their own teams and work locations. Frequent restructuring helps break through the inefficient trap of large companies.
jobs
Google separates the “technical path” from the “management path”; Separating “technical leadership” from “management”; Integrate “research” into “engineering”; Set up “Product Manager”, “Project Manager”, and “Site Reliability” to support engineers.
Key engineering positions include:
– Project Manager
This is the only “people management” position in the engineering sequence. Software engineers may manage people, but engineering managers always manage people. Engineering managers are usually former engineers with technical experience, as well as managerial skills.
There is a difference between technical leadership and people management. The “engineering manager” does not necessarily lead the project; Projects are usually led by a “technical lead”, although the “technical lead” may also be an “engineering manager”, but in most cases it is an “engineer”. The “technical leader” of the project has the right to decide the technical issues in the project. The manager is responsible for selecting the “technical leader” and monitoring team performance. The engineering manager is also responsible for the training and guidance of career development, performance evaluation, and part of the compensation. And do some recruiting. Typically, an engineering manager supervises 3-30 people, and typically 8-12 people.
– engineer
At Google, “engineering” and “management” career paths are different. Engineers can manage subordinates, but it is not necessary. At a higher level, leadership is necessary, but it doesn’t necessarily come from managing people. For example, developing influential software, or writing code that is used by many engineers, is also a form of leadership.
– Research scientist
The recruitment threshold for scientists is higher, requiring academic ability to publish papers and code ability. There is no significant difference between scientists and engineers, except that scientists need papers and books. At Google, scientists and engineers work together, develop the same products, and work on the same team. This arrangement will help to better import research results into products.
– Site reliability engineer
Maintenance of the system is the responsibility of a team of software engineers rather than the usual system administrator. Site reliability engineers have slightly lower skill requirements than software development engineers.
– Product Manager
Product managers manage the product. They coordinate with software engineers, talk about features, work with other teams, track bugs and progress, and make sure everything runs smoothly to produce a high-quality product. Product managers don’t write code.
– Program Manager/Technical Program Manager
Program managers are a bit like product managers, but they don’t care about products, they manage projects, processes, or operations. The ratio of engineers to product and program managers is generally very high, ranging from 4:1 to 30:1.
facilities
Google has state-of-the-art facilities, including playrooms, gyms, and free restaurants that serve a variety of gourmet foods, all in an effort to keep employees at work. You can also bring friends over for lunch, which increases your chances of recruiting them.
Google’s seats are open, even a little crowded, which helps enhance communication but also compromises personal focus, a trade-off. Although employees have their own seats, they have to change them every 6 to 12 months to enhance communication.
There are several kinds of training for Google:
– New employees (Nooglers)
Take an orientation course – technical employees take a “Codelabs,” short online training courses that include coding exercises – many online and on-site training courses – and Google also supports every new employee to take courses from outside organizations, Each was assigned a formal “mentor” and a “partner” to help him get started quickly. Job changing encourages job changing to spread knowledge across the company and improve communication across the organization.
After 12 months in the same job, you can choose another project or move to another office. Performance evaluation and rewards Google welcomes mutual evaluation very much. Engineers can give each other positive reviews, such as “co-worker bonuses” and “upvotes.” Each employee, twice a year, is nominated for a “colleague bonus” of $100. This “colleague bonus” is meant to reward employees for helping others beyond their duties. A “like” is just praise, no cash reward. The manager may award bonuses, including a special bonus at the completion of a project.
Google, like other companies, has year-end performance awards and stock incentives. Good performance, can be promoted. Poor performers need to be improved, but it’s interesting that Google rarely fires people. Employees also evaluate the performance of managers to ensure management efficiency and quality.