How do technology companies like Google measure the performance of their engineers or software developers?
First you must know that development is an art. Therefore, there is no exact science. It's a matter of strategy.
360 evaluation for each employee be a developer, PM, Director, CIO or CEO etc.
What is the evaluation of 360 ?, in which each person defines 3 objectives that must be consistent with the mission and vision of the company, and other 3 personal objectives to improve themselves as training, language, contribute something etc. And in turn, this same person would be evaluated by his boss, by himself, by his peers, by the client, by the supplier, etc. To value in different facets.
Ah but this is for a normal company. In Software Development likewise, what we need is to be a little more technical. As what ?, evaluate by its "tags" or parameters.
1) Junior Programmers, Analysts: Learn new things, they may have mistakes but they learn and document and consult with senior people. And they can also teach their peers and seniors. Your tag in general is 70% solve tickets, and 30% new projects. In general, they analyze and develop.
2) Senior Programmers: They learn new things, they over-specialize in something new, they encourage junior programmers to detect their strengths and learn more, and help solve problems in their free time. Your tag in general is 60% create new projects, 30% solve complex tickets that could not solve the juniors, and 10% teach or create new projects, can participate to create guidelines or recommendations guidelines for the team. In general: Analyze, Estimate Times, Develop and Implement solutions.
3) Masters Programmers: Very similar to the Senior, but if they can get into the core of a system, for example modify the symfony library to work better, or get and reverse engineer in Moodle and can deduce where they come from data and modify at the core level, or even Javascript can create their own frameworks or improvements at the level of pure Javascript, are those programmers who have published articles, blogs, and have participated in large projects or with some API have modified to use it millions of people. API's to manage money, traffic, and for high transactions like 3000 per minute like min etc. They are the ones who train seniors, create guidelines, etc.
Their tag is 40% They teach new things, publish books, articles or blogs or document guidelines, 50% new projects and 10% help to supervise big projects and push or catalyze for Masters and Senior Programmers to land and deliver their projects to time or fit at least.
4) PM. What a project leader does, is an intermediary who communicates constantly with the programmers, and asks their status every day. And with the clients they are always with the door open and they make feedback once a week with each client. And it feeds them the advance, and feedback of the tests with the responsible programmer (Senior or Masters).
5) CIO or CEO, either of which must make strategic decisions, and endorse.
What is the goal of Google, or any technology company ?. It makes it easier for each programmer on average to make more than what they spend within the company.
That give more solutions, instead of problems, and if they have problems that are not stuck ask for help, and know how to help each other as a team.
A company like Google has small groups of less than 10 people in each project, or subproject. Never more than 15 programmers. Because if there is no chaos. And because it is measured by results in each project that reach the goal, it is useful to the clients.
In my personal experience ...
I measure a programmer, for the ability to solve problems, and be more able to create new things, instead of solving problems every day tickets. And if you repeat the tickets again it is because your previous solution was not correct and re-rework again, and then make the Senior Programmer work these are the ones that spend more. Better still find the error in the testing phase, because an error detected in production by the client side is more expensive repair and correction of the system, true #apple or #microsoft ??.
And what you have to try to do, is that a programmer learns continuously, and every 100 lines of code so to speak has 1 error, and not 99 errors and 1 thing well. Well, these programmers go outside.
In Google 10 years ago I knew that each programmer makes approximately 300,000dlls on average to Google. This will give you an idea of the performance that Google has with its own employees.