
In the discussion that unfolded after the post
“Get a Programmer at ABBYY.howto,” I mentioned that we always need star developers, i.e. high rank programmers in our intra-ABBYY classification. At this interested interviewees demanded clarification.
It is extremely inconvenient to describe the organization of work of our development department in the comments, this requires a detailed post format. I offer you a brief summary of the topic - read, ask questions. If I missed something - I will describe in the comments. Only confidential information, I do not blame me, I will not reveal it :)
The rank system is not a unique invention of ABBYY. In China, this system is many hundreds of years old; in Russia, in the times of Peter the Great, Tabel was introduced for bureaucracy with 14 ranks. And in IT companies, the ranking system is not new, although it is far from being in everyone (see David Mercer’s book IBM, Management in the World’s Most Successful Corporation, Moscow, Progress, 1991).
')
A single, harmonious, transparent and fair system is practically necessary for any company that intends to engage in the industrial development of software. That is, companies where the number of developers exceeds several dozen people (and there are several hundreds in ABBYY). This system interrelates the competence, abilities, responsibility of employees of a certain profession with their compensation, position in the company and other benefits.
There are 14 levels in the ranking system for ABBYY development staff. (We, frankly, believe that anyone who came to us is already a star, simply there are stars of greater caliber \ rank :)). From the rank of a programmer, tester, linguist and other developers depends on his salary, access to corporate social benefits, the available level of managerial responsibility, a place in the organizational structure. I warn you right away that I will not reveal the salary levels for different ranks - this is confidential information. An employee can move up the ranks of the ladder thanks to the standard certification procedure.
Rank 1 : Young programmers from college or with little experience are not yet ready to develop commercial projects right away. First you need to teach the "asterisk" methods and development standards adopted by the company (in particular, to ensure code maintainability). Those. A young programmer, selected from hundreds of candidates, first enters the “study group”, where he has been studying for about three months. After graduation, a qualifying exam is held, including tests and tasks (write code, etc.). Upon successful completion of the exam, the developer is distributed to some team, enrolled in the state and gets 3 rank. Students
of the ABBYY department at the Physical and Technical Institute can take a qualifying exam at any time during the training, get a third grade and start working with a full or partial load in one of the project teams.
3 rank in ABBYY is the rank of the students. Third party developers are given the simplest tasks, for example, to write a test utility.
After some time working at a certain rank, the developer accumulates enough examples of his own code or other materials (in the case of linguists, semantic descriptions). If this material is of really high quality and finesse, or the level of the tasks to be solved corresponds to a higher rank, then the developer, with the consent of his supervisor, may submit examples of his work for
certification to a higher rank. These examples are sent to the experts 2 ranks higher for evaluation. Those. for example, if a programmer of the third rank wants to be certified for the fourth, then examples of his code are sent to the experts of the fifth rank. If both experts agree that the candidate is worth raising, then his “case” is submitted to the attestation commission for consideration. If the attestation commission agrees, then the developer is congratulated on the increase in rank and at the same time the salary increases (the rank of developers is clearly linked to the salary grid). The certification system works up to the highest ranks.
Rank 4 - this is also the rank of students, but there tasks are given a little more complicated. Often these are already development tasks in commercial projects, and not just for internal systems. An example of a task is to write a dialog box for a boxed product with complex scenarios. Or an example of a linguistic task is to make an interface for editing phrases.
Rank 5 means that a person can already program independently without constant supervision of the chief. And he can already set high-level tasks, without describing, for example, the necessary classes, since it is expected that the five-rank specialist can formulate them himself. Example of a task for the fifth rank in a linguistic project: write a module for automatic selection of phrases by the existing corpus. Examples of five-rank tasks in the
FineReader project
: implement support for a new format , write a compressor for a complex graphic format, or write a new classifier. Sometimes at the fifth rank employees are given managerial responsibility.
Developers
of rank 6 are faced with slightly more difficult tasks. Almost always, six-rank developers lead teams; manage in addition to the specialty It should be noted that there is no specialization in ABBYY programmer groups (one is an algorithmist, the other is a coder, the third is a manager, etc.). The manager must be a generalist - be able to create algorithms and write code, i.e. a real swede, and a reaper, and a dudee Such universalism gives him the authority and competence to resolve possible professional disputes in the group and, as a result, allows him to productively develop the final product.
Rank 7 is already true professionals whose groups are capable of solving complex high-level tasks, for example, morphology support in FineReader.
Developers of
rank 8 are masters of their craft, highly qualified specialists and managers. They lead large groups or departments and solve problems of high complexity. An example of a task is the development of a “compact” recognizer for embedding in mobile devices or multifunction devices.
Engineers of
higher ranks (from the ninth and above) are capable of solving truly difficult tasks. Examples of such tasks are:
developing high-quality recognition of documents in Chinese or developing a
technology for recognizing flexible forms with the possibility of self-study on patterns . There are very few such specialists in ABBYY, but, as we suspect, there are very few of them in principle in the world. These people are real stars of big caliber.
The system of ranks and the certification procedure allowed ABBYY to build an effective team of many hundreds of developers who clearly produce dozens of products a year. Every day, these products are gaining an increasing share of the global market due to their quality. The source of this quality is the talent of ABBYY developers and the correct, effective organization of their work.
Nastasya Savina,
HR Director