The first is to learn from Facebook, but in the specific operations are very careful groping, so it is necessary to carry out in-depth discussion. This article will be divided into a number of articles to introduce the content of the new barracks plan, the concept behind and operational attention to the details of the problem.
What is a new barracks?
In fact, in February 2012 when Zuckerberg announced his IPO, he made it clear that "... Facebook requires all new recruits-including those who are not primarily programming in the future-to join Boot camp (bootcamp) to learn our code base, tools, and methods. Many insiders are responsible for managing the team of engineers, but are unwilling to write the code themselves; However, the practical talents we seek are expected to be tested like new recruits. The
Yes, boot camp, in fact, is a rookie camp, the goal is to allow new engineers and product managers to receive six weeks of intensive training to quickly integrate into the company, more smoothly to start work. But what's so strange about this? Many companies will assign a mentor to a new employee. But Facebook's approach is distinctly different from theirs.
Why the Boot camp?
Let's talk about the history of boot camp.
The boot Camp plan was not established as a company. I didn't have the plan when I joined Facebook. When I entered the company, I found a bunch of problematic code in the first month to make changes, and I contacted and met a lot of friends through these jobs. In the second month, I chose a project that was about one months long and I played with no one to take care of. Get to know the people of the company, learn the culture of the company, and gradually integrate into Facebook in these exercises. But with the company's rapid growth and increasing number of employees, the unplanned self-study approach cannot quickly help large numbers of new employees integrate effectively into Facebook, so starting in 2008, Facebook began systematically designing and experimenting with boot camp programs and improving in practice. Soon the plan became a training program that all new engineers were forced to attend. For product managers, they are also required to attend in principle. As product managers come in and are determined to go to a certain group, unlike an engineer, most of them are not sure where they are going, so if the product manager's boss has a special request, he or she can start work directly without the boot camp. This situation is relatively rare.
The main catalyst for the program is Andrew Bosworth Andrew Bosworth, Bosworth is the main defender of corporate culture, "God forbid we have a day to prepare for the future of Facebook." We've seen one or another company grow into trouble because of scale, or because culture is in trouble. "In early 2008, he began to realise that Facebook's culture could face challenges and even failures. When he first entered the company, everyone knew each other, but one day in the summer of 2008, when he was in line at the company's restaurant, he met an engineer he had never seen before. So Bosworth asked him how long he had worked at the company, and his response shocked him: a year. He felt a little bit wrong. "We are Facebook, and if we can't plan a communication network of over 150 people, it's really going to be a problem." He thought so. I was 4.5 at Facebook, and at the beginning almost every engineer knew each other, but the rapid growth of people made it impossible. How to effectively let the most suitable (potential) cooperation of the people to know each other, trust, to ensure the efficient completion of the project, has become a big challenge for Facebook these years. Wait until the beginning of the project to participate in the people began to know each other, then the running-in period will be longer, the cost of running-in will be higher.
During the 2008 years when new hires flooded the company, the boot camp plan came into being as part of the company's culture-nurturing campaign. The program is designed to get new engineers to know the people involved in the company, to understand the company's culture, to understand the company's technology and products, to quickly integrate into Facebook and to find a team that fits their abilities and interests (i.e., through the process to determine his specific job functions).
What are the recruits going to do in the six weeks?
In the first week of Monday, the new engineers kicked off a six-week mandatory training camp after having lunch at the company cafeteria and their mentor (Mentor). The mentor will be solely responsible for answering new people's various questions, from work, to life, to gossip, if the new couple is really interested. After a brief introduction (Bosworth and other old employees will introduce the company's culture in this section), each will be divided into a computer and a desk. When you first turn on your computer, they will see 6 emails, 1 of which are welcome letters, and 5 for the tasks they are about to perform, including fixing errors on the Facebook site. One of the many purposes of training is to make new employees fully aware that they have the power to change the Facebook site directly.
Facebook wanted the engineers to set up all the programming environments on the first day and submit the code on the first day [1]. This allows you to participate in a weekly code release activity in Tuesday, synchronizing your code to a Facebook hundreds of thousands of server. Facebook does not want new people to submit complex code on the first day, basically a simple change, and hopefully through practiced allows engineers to quickly understand the entire process and quickly get into the role.
There are a lot of courses for the first three weeks. General Company's COO (Chief Operating Officer), CPO (chief product officer), vice president of engineering will be in the first week to the new people to introduce the general situation, give us a global understanding. The second week, focus on the company's major products, the common technical framework and technical tools introduced. Third week, focus on the company's operations (including marketing, sales and other departments), business model (Facebook's main advertising model and virtual currency profitability) and other non-product technical departments.
From the third week onwards, the new people began to contact a number of relevant groups, communicate with the managers of these groups, understand the products of these groups, and participate in meetings and discussions of these groups. It is generally required that on the weekend of the third week, the newcomer should elect no more than three groups as the alternative group they are interested in. The next week is to further narrow the target to the end of the sixth week with only the alternative group. This group is, of course, the last group to join.
From the first thoughtful sixth week, all new people over 60% of the time, need to spend on fixing code errors above. All other things should be done in the remaining 40% hours. Facebook believes that the best way to get engineers into the company is through code communication. After all, producing high-quality code is really the most important job for all engineers.
Who can be a mentor to boot camp?
Instructors need to have a strong understanding of the company's culture, usually in the company more than a year. Volunteer mentors typically want to develop as a personnel manager (arranges manager), a person who is interested in people management and dealing with others.
As part of the company's culture-nurturing campaign, the key is how to generate a mentor for boot camp. First of all, he needs to have a strong understanding of the company culture, usually in the company more than a year, of course, the longer the better. I have been on Facebook for more than three years when I started my boot Camp mentor in 2010 years; one year earlier than I had a mentor. Second, the Mentor is voluntary (also can be recommended by the boss of the appropriate engineer to do), as long as you have the will to apply, but also need to get the consent of your boss, because the tutor needs to occupy 1/4 of the normal working hours. People who are demanding for themselves do not reduce their performance by 1/4 because they are mentors, so that means crowding out part of their spare time.
Usually, a volunteer mentor typically wants to be a personnel manager, a person who is interested in managing people and dealing with others. Facebook now makes it hard to rule that all candidates who may be promoted as managers must be at least one boot camp mentor. For example, I was recommended by my boss to be a mentor in the two period before I was promoted to manager. In addition, the general requirements of the mentor is technical cow, because in the training camp, the new staff every day to complete a large number of specific technical tasks, need to mentor when necessary to guide the technical issues. Mentors also have the ability to accurately judge recruits ' abilities and talents at the end.
By the time I left Facebook, a new batch of engineers would come in about every two weeks, and every boot camp would be six weeks, with 2~4 mentors each, and each mentor to take 5~9 personally, which would take about 10-20 hours a week. All the mentors have a head, it's Mr. Bosworth, who has an assistant who is responsible for the distribution of all the mentors and new employees, basically assigning a similar background (such as alumni, former colleagues, and the same technical points of interest) to the same mentor so that the members of each group communicate better.
What does a mentor need to do?
New employees in the training camp 60%~70% time to use in the revision process errors, and encountered any difficulties, can seek the help of mentors, the key is the method, concept, culture transfer.
So what exactly does a mentor do? New employees have any problems, especially about the company culture, in addition to trying to solve their own, can seek the help or guidance of the mentor, the teacher will not at any time to the new employees look, but will fully support their learning.
First, the mentor has a weekly focus on "one-on-one" with the new employee being directed, such as his recent learning progress, how he behaves, what he does well and what needs to be strengthened. The company requires mentors to give the most direct feedback to new employees to help them grow quickly. Another focus of communication is on which teams and projects are present in the company, because the ultimate goal of boot camp is to get them into the company and find the right team. What is the right group? From a new employee's point of view, it is the ability to play both his strengths and his interests, and from the standpoint of the company, it is of course desirable to have the right manpower allocation for the key projects. If you can achieve both sides are satisfied with the match, is the ideal state. Facebook is a great way to encourage employees to go to areas of interest to him that are unfamiliar, so that they can bring a new perspective to a project. Of course, the premise is that these people are very intelligent, very capable engineers.
Second, the mentor attends a weekly tutor meeting, which includes all the trainers, Bosworth and their assistants at the training camp, to discuss the specific issues encountered in the training camp and to find solutions. Most of the time will be spent on recruits who perform exceptionally well or less favourably, and if they do not, they will be adjourned early. For those who perform exceptionally well, the instructor should focus on which groups are best suited for these tough recruits. The company hopes to use the best recruits in the most important and need their expertise. Several times, at the beginning of the first recruit battalion, several groups of team leader sent letters to recruit the same person, such "Rob people" will need to discuss how to guide and solve. In particular, it will take time to discuss how to help them change to make a difference. Because the company believes they have the strength to interview people through Facebook. Without many efforts, the company will not easily conclude that they are not suitable for Facebook.
Also, mentors will assign some code bugs to patch up new employees, and such tasks usually take up the 60%~70% of new employees. Imagine, as a newcomer, that the results of your work are quickly being used by hundreds of millions of users, and what a sense of achievement it is! Doing so can give them great confidence. In the process of correcting errors, new employees can understand the causes and consequences of related projects, need to deal with the relevant procedures of the team and engineers, familiar with a lot of internal tools ... This goes back to the ultimate goal of boot camp-helping them find the right group.
If the new engineer encounters difficulties in revising the error, does he consult with his or her friends in the training camp, and a group of rookies find out the answer, or seek the help of the tutor directly? Of course, rookie Mutual is the most encouraged, the way to solve the problem is often more than one, but there are many, everyone can conceive their own way , it is very taboo to ask others directly without doing anything. If you do not, and you really need to find a mentor, the instructor often does not give a direct answer, but to tell the new people, you can find the code error involved with the original engineers to chat, who have a better understanding of this part. As the Chinese proverb puts it, "teach it to fish", and hope that new employees can think about the problems themselves and find solutions to them, and that, of course, they cannot keep themselves in the face of difficulties and learn to seek the help of others properly. A simple rule is to spend at least half an hour in the relevant code without any clue, and this is a good time to find a mentor or ask a relevant engineer. This way, when you consult with a mentor or a related engineer, you can quickly describe the code you have viewed and some assumptions that have been excluded after you have explained the problems you have encountered. People who don't know how to ask, rather than delving first, are not popular on Facebook.
A lot of times in training camp, there are several ways to solve a problem, but the new employee doesn't understand which one is Facebook generic, and this time the instructor can tell him to go to the code base to see how the other places are handled, and see how the previous engineers did it, Repetition of this way of consistency is generally no problem. So how to do code efficiently is a skill that every employee has to learn.
If it's a technical issue with a specific product, Facebook does not recommend a mentor for further help, because it becomes me to help you do a very specific thing, and the key is to teach the new employee methods, ideas, and cultural things.
How to find the right jobs for new employees
After discussion with several managers who need hiring, the mentor will arrange for a roughly matched new employee to meet, usually the manager is doing the "sales", and the new employee is the "interview" group, and finally he decides which group he wants to go to.
In order for the right group to find the right person, the boot camp's day-to-day operations (Bosworth's assistants) will e-mail all the recruits ' resumes to the hiring manager one week before the start of each issue. If the manager sees a particular fit, the new barracks will cooperate with the manager to arouse the interest of the target candidate, such as encouraging him to participate in the group's seminars, and allocating the relevant code error modification tasks. But the ultimate success, the biggest decision comes from the recruit himself.
In addition, the mentor will also take the initiative to communicate with those who are currently in need of staff to see what the new employees are more suitable for their guidance. Facebook has a special page, Call Team Priority page (group Priority pages), each team in charge of product technology can put their own demand on the above, there is a committee composed of Bosworth and engineering directors, every two weeks, to discuss the priority of each group. Bosworth's strength is of great use at this meeting. According to these circumstances, the instructor will be with the corresponding several managers to do some discussion, such as picking a few of the most important group to recruit a few positions, looks like their own responsible for the new staff background more consistent with a rough match, the equivalent of a mentor to help new people to do a primary. After all, it is too inefficient and unrealistic for a newcomer to understand each group in a situation where there is no guidance at all. The mentor encourages new employees to contact and communicate with those who are in the alternative group.
Each week the Mentor ratings The new employee (with rockstar-stars, solid-, shaky-Swing) and briefly evaluates how well he is, what expertise he has, and which groups he is particularly interested in, which are then sent to all managers, So they have a general understanding of the ability of new employees.
After discussions with a few managers, the instructor will arrange for a roughly matched new employee to meet. Generally half an hour or so, is usually the manager to introduce his team to do what the project, what kind of people need to recruit, what the significance of this work, the group on the whole company what significance, etc., equivalent to doing "marketing"; And the new staff is mainly listening, like in the "interview" of those groups, and finally decided by his want to go to which group.
Unless there is a special case, the group selected by a new employee will receive him and cannot be rejected. Because if the reason you refuse is "he can't", it's better to dismiss him than to say you don't want him to go to your group, but to other groups, which is against Facebook's culture. I've stressed this before, "We're all working for Facebook, not for a group," so if you think a new employee doesn't work, the other group shouldn't want him. If the reason is "his background is not suitable", then should not meet at the beginning of the meeting. The instructor tried to avoid introducing the newcomer to the apparently unsuitable group, so the reason was not tenable.
This discussion can be initiated either by a mentor or by a manager who needs to be employed. For example, I had mentored a former senior engineer at Google in Boot camp (Senior Staff Engineer), who originally belonged to the top 3% in Googe, and in a few days there were several groups of managers who told me they wanted to talk to him. Of course, in this case, I don't want the manager to go directly to the person. I have to do a screening first, after all, the two sides know that I am the only person, if I think the appropriate group, and then transfer to the engineer to see if he is interested. In addition, it is to avoid excessive "marketing", which will confuse employees and get into too many choices. After all, there are a lot of very important groups for Facebook, and a lot of interesting groups, and if each group is going to sell it to the new couple, the idea of the new person is confusing, and there's no way to make a choice.
Mentors also have a very important task, that is, when a certain number of particularly important positions in the short time, to spend the effort to "fool" the right person to these groups. At this time, the instructor will try to arouse the new people's recognition of the importance of these groups and interest in their business. I've done a few examples of this kind of marketing work. To be honest, this is not the most natural way to match, because the inducement is too strong at this time.
The elimination will also occur at the end of boot camp, but the odds are low. The impression was that when I left Facebook, there were no more than 10 people out there, and the number of engineers and product managers through boot camp was about 500, and the elimination rate was less than 2%.
In one of my previous periods, a Berkeley graduate specializing in machine learning (Machine Learning), an American, has more than three years of work experience and is young. He's smart, but he has a typical PhD style--everything needs to be especially deep and meticulous. This leads to a problem that is too slow. I'm going to do it myself. Only a two-hour code repair, generally looking forward to the new person for up to half a day, but the brother in order to make it clear, spend a few days to be uncertain. We have had several discussions about the balance of quality and quantity, and we have reached the conclusion that he should speed up and increase output. I have given him a "swing (Shaky)" rating on many performance ratings, but it does not seem to improve much. In week fourth, we gave him the last chance to try to improve the machine learning algorithms section of the dynamic message group. Machine learning algorithm is a feature of the design of the test, data acquisition and analysis requirements are very high, compared to other product items, the quality of the requirements of high, low speed requirements, more suitable for research-type talent's appetite. So, this arrangement is also hoping to make it easier for him to show his expertise. Judging by the reaction from the group, he was satisfied with his performance. Finally we let him into the group, did not let him leave. For those with poor performance, Facebook is generally fast, but for an accomplished engineer, try to find the right job for him.
In fact, this also reflects a problem, that is, how the research talent in a rapid pace of the technology companies foothold. Facebook is also slowly groping.
As far as my personal mentor is concerned, I will continue following the boot camp (this is not the company's uniform requirements). After graduating from the new barracks one months and three months later, I will talk to these new employees "one-on-one", see how they feel, whether the new barracks help them, adapt to the current job, there is no cultural communication conflict.
Training camp is not only a new staff training course, but also manager training
For a fast-growing, expanding Facebook, boot Camp is a good place to nurture front-line managers and effectively maintain their cultural identity.
For Facebook, which was founded in 2004, how to maintain its cultural identity in the rapid growth (the relevant chapters of this book will focus on the company's culture), how the new engineer in the flood into the company can still be consistent, there must be a number of new front-line management to do the groundwork. Boot camp looks like just a new staff training course, but as we've described above, the basics of being a mentor are potential manager candidates who also gain valuable leadership experience in training camps. He takes 5~9 a new employee, just like a small team, discussing the problems he encounters, and he can learn management skills in guiding the new employee how to solve the problem.
This process of training managers is particularly important. Because Facebook was a few 20-somethings from the start, young people with no professional experience, and most of the engineers behind them, are mostly young people, many of whom have not worked in other companies, and although they have done a great job creating websites, they are not sure about the sustainability of corporate culture. Because of the very flat structure of Facebook, the first line management as the foundation of the entire engineer management, there is a systematic training institutions to continuously provide new managers, for the development of the company is very important.
Boot Camp has played an important role in this regard.
——————————————
[1] The process of generating Facebook code includes writing code, testing code (test codes), reviewing codes (review code), submitting codes (check in code), releasing code (release codes). Writing code refers to making changes in your own development machine that exist only in your development environment; The test code refers to testing your own changes on the local side to ensure that the changes do not introduce obvious problems; The review code refers to the appropriate engineers to look up the submitted code; The submission code is to submit the reviewed code to the server-side code base; The release code is to synchronize the new submitted code to all server-side to allow the end user to use the new functionality.