My top 10 experiences on Facebook

Source: Internet
Author: User

The author of this article has been engaged in Facebook for more than four years of development work. This valuable work experience has brought together 10 tips of life. I hope every developer will benefit from reading this article.


1. Stick to your vision, but be flexible in terms of details

As a leader, you need to rely on your own vision (at least in the business area you are responsible for) and those who work with you or for you will rely on your vision. What is vision? Is a description of the final state. It's where you need your team to land. Is a new life after it takes effect. It is the northern star, and the direction. Here is an example. When I start the payment risk team, we only have the rule engine. Rules are written by people. A rule is just a simple logic with very limited variables. For example, if the registration date is less than 30 days and the expense is greater than $100 and the payment is for the first time and the user is from Indonesia, the transaction is rejected"

Humans cannot effectively process more than 10 variables. We need to be more quantifiable. We want to automate things that many machines are better at than others. Therefore, we have established a vision to replace our main rules with the machine learning model. This vision has driven us to add a doctor in the machine learning field and another doctor joining us.FacebookEngineers with similar practical experience in the past. The bet is huge, but this is needed in the future.

But you need to be flexible in terms of details, because there are great roads to Rome. You need to provide enough room for your team (wiggle room), as long as your team is moving in the right direction at the right speed. Another story: At one time, I was more interested in decision trees than regression. However, the lab algorithm engineers told me that they can only ignore the differences when selecting algorithms. I can stick to my opinion (this is indeed my real idea at the time), but I trust him and let him choose the right algorithm. There are also interesting things in the Process of cooperating with designers. They have a preference for fonts, colors, line spacing, and others. I usually keep them motivated as long as they benefit the final result. We want to choose the right battlefield for war. Such a battlefield must be global rather than local battles.

2. only work with the best people

Niu Ren only wants to work with Niu Ren. They are even better together. First-class people generally cannot tolerate second-class goods. What determines the "best person "? My understanding is that those who can quickly do what they know and learn what they cannot, so that they can accomplish things far beyond expectations. Their instinct is to surpass expectations, or even their own expectations. For them, good enough is never good enough. There are many benefits if you only have the best people in the team.

(1) This makes you more willing to trust. From the experience of saving me, the ox won't trust unfamiliar people. Before accepting your help, they need to know that you are as good as them or even better than themselves. Otherwise, they would rather do everything they can. But if you have been proved, they will trust you very much and are willing to trust you. An awesome team with effective trust is almost omnipotent.

(2) They are examples of each other and use this to improve their performance. This is a great concern for the pressure. If used properly, a virtuous circle of teams can be formed.

(3) cattle are challenged. I remember a head engineer who made a bet on whether we could complete the code modifications required for website translation before the deadline. He would dye his hair blue. This challenge is often because the "boring" work has become a game. It will be interesting to be part of the game. Of course, there are often more serious challenges, and cool people like the challenges (whether challenging others or accepting the challenges)

(4) The cattle learned a lot from each other. I wouldn't stay on Facebook for four years if I had so much to learn. This is increasingly true for inexperienced people. We hire very smart graduates who are motivated to prove their strength. They don't want to come to a comfortable and unchallenged company. They want to learn a lot to enrich their experience, complete the tasks that cannot be completed, and improve their career path. They want to prove "Yes, they can ". They want to achieve this together with the cool people.

You don't want second-class goods, but how can you stay away from them? First, recruit people slowly. Be stubborn when giving an offer. I have seen countless recruitment decision-making meetings that people with brilliant resumes cannot be hired only because an interviewer doesn't think this person can impress him. In other examples, the candidates who have received the same pass still cannot obtain the employment opportunity because everyone just thinks that he will be qualified. In most cases, you need to avoid risks. (By the way, we will also hire candidates who fail to pass the ticket, as long as one or two votes are strongly recommended-you will be happy to take the risk of trusting your employees) Second, it is faster to fry. It is like taking chronic poison to make a second stream of goods exist. One day, gradually, but eventually you will be suspended. What you need to do is to kick the second stream onto the squid track (in some cases, the law will not let you do this). I have seen some slow-moving squid, the negative effect on the team is not a joke.

3. Establish and measure high expectations.

As a leader, you need to set high but realistic expectations. High enough to make your team feel bored. The reality is that they do not have to run off the lights. When you create an experience for them to review the end of the journey, they will say: Mom, I didn't even think I did this. This is amazing. At Facebook, like other high-tech companies in Silicon Valley, expectations are combined with returns, so it is crucial to establish clear expectations. And you need to find a way to measure your expectations. I spent a lot of time working with my team to figure out our most important 3-5 goals for the next quarter. The target is assigned to one or a group of lions with different division of labor, or they are taken away from the target. In this case, we not only have a list of 3 to 5 metrics, so that we can quickly tell what we are doing, at the same time, we also know who is behind each specific target. The success of the team is closely related to individual performance. For example, my team's biggest contribution in the past year was to reduce the credit card payment dispute rate by 75% through different quarterly indicators within a year.

One thing to emphasize is that you still need to be realistic. When you only have a 10% market share, it is unrealistic to imagine a 10-fold increase in revenue. Master Steve Qiao is very good at pushing his team to surpass their potential, but also squeeze them out (although they are so proud of what they do). 99.9% of the leaders are not Lord Joe, and of course they do not need to be. However, you can still drive a sustainable team to achieve success without conflict with the recognition of their limits.

4. Focus on data rather than blindly accessing data

DecisionProductWhat we need is imagination, passion, and guts, not data. data allows your team to move in the right direction without being derailed. It also helps the product to gradually optimize and shape from "what is at the beginning" to "what should be at the end. however, data cannot help you decide the direction. for example, when we press on all the resources of our team in artificial intelligence (machine learning), we are uneasy. however, we firmly believe that the existing anti-fraud system based on the artificial rule engine will soon become a dead end because it is too rigid and difficult to scale to process big data. So, like Frodo in the movie Lord of the Rings knows that the road to Mordor is very dark, cold, and dangerous, but it is a road he must choose to go; we chose to put all the treasures on machine learning. Failed, the entire team will be ugly;We decided to go hard but we thought it was the right path.This approach also applies to the design of tools for user reporting (external tools) and case reviews (internal tools) to deal with potential spoofing. The final direction we decided was "automatic processing" and "Establishing a feedback mechanism ". It is always easy to select a path that is directly thrown to humans for processing, because you only need to build a team of many silly customer support personnel. Lame! We want to solve most of the fraud cases through automatic processing, and focus on the special cases that really need to be handled separately, while also focusing on the Business Support Team (that is, the Customer Support Department) the processing comments are automatically collected and integrated into the next round of machine learning. As a result, our machine judgment will be more accurate and intelligent and keep pace with the times.

However, you cannot ignore the data. Without the support of data, it is easy to go wrong or even make a big mistake by relying on intuition. For some time, we believe that crawling tools (by analyzing the associated cookies, credit cards) may find many fraudulent associates. The experimental results show that whether this expectation is true depends largely on the characteristics of the currently popular fraud. for example, association analysis is an effective method when cases of theft or selling credit cards are very common. However, in most cases, association analysis is ineffective when the accounts are hacked or the little treasures use their mom's credit card to go online for online payment. Intuition touched the gray face before reality. Fortunately, we soon realized this and stopped the project, so we didn't waste too much resources.

In addition, we recommend that you test a/B. A/B Testing won't tell you what products to do, but it can help you determine which minor version of the product can hold your father's mind even more.

5. Avoid unnecessary waste of time

Just enteredFacebookWhen I was an engineer, I enjoyed the feeling that I had been immersed in the sky all day and night. Later, more and more project responsibilities were gradually undertaken, and less time was spent writing code (but most of the time was still the largest). Sometimes it was more time-consuming.ProductDirection and design. A lot of things are done with product manager designers, but there is a lot of say in Facebook's siege lions, and sometimes it is the right to make decisions. Facebook hopes that the lions will be successful. facebook wants the attacker to decide what to do, rather than always "determined" (a popular saying is that write your ownjob description ). therefore, I spent a lot of time thinking about these problems-which functions need to be added, which need to be deleted, and which tests need to be started or stopped, whether we are bleeding and sweating is the most important issue now. Should we take the time to optimize the user interaction process, reduce the error rate, or make the system faster. These questions are a headache, and the answers are often uncertain, which is harder than getting cramps. however, these problems are important and may even determine whether your daily and daily routine is necessary. it is recommended that all Siege lions think about these issues beyond the code, and team leaders are more necessary. of course, most of the time it takes to attack lions should be spent on code.

Which time should not be wasted?

Many, but I only give two examples that I think are the most important.

Email. Not all emails are sent equally. Some emails are purely soy sauce. Some emails do not need to be processed immediately. I tried to use filter rules to kill soy sauce emails and highlight the important emails that need to be processed immediately. Here, we will share two points.

1) create a mail filtering system suitable for you. I will immediately reply to important and urgent emails, and suspend the handling of emails that can be replied later in the evening (especially self-sent teams, product managers, brokers and headers ). However, I want to ensure that all these emails are processed, read, and returned before I struggle to climb to bed. For those emails for reference only, the filter system will put them in a fixed corner. I will visit them every other day. Such emails, such as a drunkard asking napavalley which wine cellar is very punctual, are usually interesting. It is very time consuming to dig a lot of holes. I usually do not skip or skip immediately.

2) Tell me your personal email processing policy. I will let my friends around me know how I handled emails and put this policy at the end of all my emails. -"I am trying my personal email processing policy.-To get rid of email addiction, I will force myself to view my email every three hours or more, please call/text message/IM me in an emergency. "This is more about making others understand and don't expect immediate response. in fact, I check emails more frequently than every three hours, but at least I don't have to force me to go back to every email immediately. I can hold on to it. if it is really urgent, my iPhone should have been ringing. in addition, batch processing is much more efficient. don't lie to you.

Meeting. A meeting is too easy for a group of people to pull each other's eggs. it is a waste of time and no conclusion is found and it hurts. however, meetings are often necessary for teamwork. it is a matter of course to host a meeting. however, you cannot or do not need to attend every meeting that invites you. If you think that your participation in a meeting is less valuable than others, we recommend that you do not consider it. If you want to be polite, write an email to ask the host whether you can be absent. Generally, when you think about this question and decide to send such an email, the answer is usually yes. In some cases, I may be ashamed to ask my product manager to hold a meeting for me. Of course, I will encourage him to try again. Onlymake the meetings you really have. similarly, I asked my team to be cautious when organizing and attending meetings, and often asked them to think about whether they spent too much time in meetings. One approach is to integrate all possible meetings. There is an example. Early on, we often receive casual meeting requests from the support team. This split the day of the siege lions into fragments. all users who write code know that a continuous period of 3-4 hours is not easy to climax. in addition, such meetings are usually very inefficient. as a result, we changed our approach and arranged a fixed period of Q & A time every week (office hour) and supported team likes and then follow up. Of course, urgent issues should be dealt with right away.

There is a principle that is often ignored-think consciouslyWhat should not be done and will not be done right away?. For example, what are unnecessary arguments that can be avoided (for example, Han and Fang zhouzi's personal opinions), what functions can be abandoned, what relationships should not be developed, and who should be removed, etc. I often ask myself a very simple question: is what I am doing very important to my goals. If you know what you are doing and what you want, the answer is clear. Go forit.

6. Increasing intimacy is an effective way to reduce tension.

There is a tangle of cooperation and competition between engineers and the Support Team (note: the cooperation is prior ). Many people (especially smart people) in Internet technology companies always expect engineers to give a smiling solution to all problems. But the reality is that not every problem can or should be solved under the technical framework. For some specific problems, the customer support and operation departments will have some profound and unique insights. Engineers may not be able to do so. After all, many insights require different professional knowledge and rely on field experience. Yes, engineers can automatically log a large amount of raw data in the code, but it is not always possible to extract reliable insight from the raw data. just like the Iron thrown in the Age of steel making, iron bumps rather than expected steel. unlike customers or support departments in many other companies, our Support Department recruited very good-quality employees (many from prestigious American schools-I have 3 Stanford alumni among 20 people in the anti-fraud Support Group I am directly engaged ). So who should I listen to when both groups of smart people have different opinions? Tension is inevitable.

Different engineering teams also have cooperative competitions. There is a close working collaboration between anti-spam, security, and anti-fraud (my team) teams. These teams also try to learn from each other and share their experiences and technologies. However, sometimes teams try to sell their solutions and ideas to each other when they handle similar but different issues independently.

How can we keep cooperative competition in a healthy and orderly state? I think the key is to promote intimacy between people. It's easy to get people closer. I spent a lot of time building relationships with other teams. For example, one-on-one meeting with other team leaders once every two weeks or in January 1. The more relevant teams there are, the more frequent the headers will be. I myself or my team members may choose to participate in meetings of other teams (we call it friends & familymeeting ). When I was working for a common big project, I arranged for different department members (engineers, support, data analysis, and finance) to join in the project sprint. This is a very effective way to narrow the distance between each other, especially to reduce the chance of wrangling. because they are often invited or invited to drink coffee. I also often agree with some people to have a work lunch. I often talk about it and increase my feelings. Sometimes a long walk can make people speak freely. This close relationship will help you solve problems in the face of critical moments of a very challenging project.

7. You are used to entrusting, but do not blindly. Please be careful

It is easier to understand the importance of assigning tasks to others. because you are not a Superman, you can't pour tea into the water, you can do everything, you can eat and drink. sometimes, you are not the most suitable candidate. when the team has many things, you must learn to entrust others to take charge of appropriate tasks. for some leaders, entrusting others with an important goal may not be very reassuring, but I am very used to entrusting others, and sometimes I am too used to it. this is a problem that my former boss pointed out to me. once I assigned a team member a technical difficulty and a coordination challenge. the process is slow. however, I have given him too much time to make the effort. In fact, he needs some improvement in some aspects, and in some aspects, he needs more active help. my boss pointed out that if I want to make others do whatever they want, the premise is that I need enough confidence. I need facts to prove that my decision is correct. exercise caution when entrusting. if the project fails, I am the final person in charge, not others. therefore, I cannot accept the failure of entrusting others.

If you have an important task to delegate to someone else, you can either

1) I already know this person very well. I know that he can handle the problem with extraordinary combat power, or believe that he can quickly learn how to improve the skill of fighting chicken;

Or

2) You need to teach him at the beginning and ask him from time to time until you have enough confidence in him.

This is what I did. at the beginning of the project, I asked the principal to give me an overall plan and tasks that can be completed within a few days. at the beginning, I often followed up and confirmed the task in the next few days. estimate whether he can achieve the final goal with high speed or no difficulty Based on the completion status. after confidence is built, the details of the project can be reduced. at this time, the delegate can be put more open. however, it should be noted that, if it is too tight, it may make people feel that you are not at ease with him, and he will also be timid, which may be worse than blindly entrusting. therefore, there is a subtle balance between delegation and prudence.

I think I need to strengthen it. I would like to remind you of it here.

8. feedback should be continuous, rather than one or two activities a year.

The annual feedback is very common in Silicon Valley. its purpose is not to embarrass employees and make them blame each other. it aims to help employees gain a more comprehensive understanding of others. feedback includes self-feedback and feedback from colleagues. self-feedback is a process of self-evaluation, which goals have been fulfilled, which goals have been missed, which have been done well, and which aspects have yet to be improved. however, it is inevitable that you are biased because you are both a player and a referee. feedback from colleagues is like a mirror that allows you to see yourself beyond 180 degrees. inFacebook, The formal feedback of 360 degrees is twice a year and linked to salary. however, in recent years, feedback and compensation evaluation have gradually been separated. for example, one thing I do is quarterly Feedback. The time and formal evaluation are staggered. in those days, I asked all colleagues in the relevant group to write comments and feedback about my members on a voluntary basis. Just a few words would work. I will collect and integrate the information, and finally report it to my team members during the first-to-second meeting.

If you need to wait for half a year to collect comments, many related stories have been forgotten.The longer the story is, the blurrier the memory, and the more void the comments.Moreover, when feedback and compensation are tied together, normal people (even normal people) will naturally put their eyes more on compensation, rather than opinions.

In addition to quarterly light feedback, daily feedback should be delivered immediately if any.

It is also very important to pass the organized opinions effectively"It's not what you say thatmatters, it's how you say it". I am not that extreme. I think it is equally important to pass on opinions. I have tried either of the two methods. I'm not sure which one is more effective. I will talk about it here. one is to give priority to questions and gradually deepen their thinking, for example, "How did you thinkabout the meeting you hosted yesterday"; the other is a naked straight-in theme, "Hey, let's talk about the meetingyou held yesterday, and then start to talk about my own feelings. either way, you must give the other party an opportunity to explain your behavior; always assume and tell him that I believe his will is good. in order to avoid falling into the "XXX you did yesterday", I did yyy "I think you did XXX" in an endless round-robin debate, first, I want to reach a consensus with them on "what we perceive is facts. based on this premise, we will focus on how to change others' feelings and finally make things complete smoothly. After all, many people collaborate to complete most important things. when they realize that they want to improve a certain aspect, how to change is a relatively easy problem-smart people have always been able to find ways to improve. What I do is to cooperate with them in brainstorming. the final purpose of the conversation is to generate a better concrete solution for how to do it next time.

For the effective delivery of feedback, another 4 points are mentioned.

1) feedback is not necessarily negative. it can be an advantage of others. you really appreciate it. you want him to stick to this and do more. for example, "Hey, I really love your weekly summary email with the keymetrics at the top. please keep them coming "may produce good incentive effects.

2) Feedback must be truthful and reasonable. if you only tell others that he is bad, but you don't know when the waves have been wasted or why, he will not be used unless he is ignited. therefore, when relevant personnel include their own feedback, I need to provide instances. for example, "I think he couldmake meetings transparent and shorter by having an agenda, like theweekly data review meeting on last Friday" is more bloody and effective than "his meeting is toolong.

3) Feedback must be operable. it is of little significance to give people an advice. it makes much sense to propose a scheme for reference at the same time. but note that it cannot be a command (that is, Qingbao ...). For example, in the previous example, "I thinkhe cocould make meetings transparent and shorter by having an agendasent ahead of time... "It is very easy to operate.

4) (personal preferences) in the last two evaluation cycles, I wrote feedback to about 15 colleagues (half of whom are not directly affiliated to me. I share what I wrote with them directly. out of this idea, I lost a lot of impulse in my next assignment. because they can read the data, I cannot do it. because they want to read data, I need to make it meaningful, easy to understand, and add many examples. in addition, I welcome them to discuss with me directly. as a result, they also understand that I wrote these feedback for their progress.

9. You can do better than you think.

This is not a case. I have my own example. we once thought that it would be difficult to reduce an outrageous fraud rate to the acceptable level. it is really difficult. but think about it, we finally got a little better, and dropped it down to half of the limit. it feels great. for a long time, the entire team was very confident.

Ox people constantly surpass themselves. give them an out-of-the-box goal, with the appropriate tools, appropriate help, enough confidence and a certain amount of time. They will surprise you and surprise you.In this regard, Qiao bangzhu is an expert and has tried and tried many times.

But there is a premise to do this-Do not be afraid of making mistakesIf a mistake is to be severely punished or a failure is not allowed, the ox people can only be captive in the box, and there is no way to break through. I often talk about one sentence"Ask for forgiveness, not forpermission". On Facebook, it is easy to be forgiven to make bold mistakes.

But on the other hand, be careful. As mentioned at, you can't just give an outrageous goal to a person and expect him to surprise you. it may be frightening. you need a real cow, at least a potential cow. as a leader, one of your tasks is to help them and encourage them to unleash their potential. facebook has no shortage of such cool-men to be detonated.

10. Do not design too much or optimize it too early.

Some engineers have an instinctive impulse to scale their programs, even before they see the dawn of large-scale use. at the beginning of Facebook, I was also a impulsive engineer. but after several failuresProductLater, I kept this lesson in mind. Do not design too much or optimize it too early. simplify the design of core functions.You can add features or scale only when you see the trend that products are used in a large scale.. One of my products used a maximum of 2 million users (Facebook's user base was around 40 million in the whole month at that time ), however, my implementation has done a lot of extra work to satisfy more users. I felt very good when I was doing it (I felt very good, and I felt that many people would not crash when using products), and then I felt miserable.

However, this does not necessarily apply to architecture work. For example, the failure of a website named Friendster is that the performance of its infrastructure has long been unable to cope with the rapid growth of users, resulting in a slow website or even a crash.Before the peak of user growth, you should have done enough foreplays on the architecture.Otherwise, it will be like a Friendster. but at the same time, you must be aware that the user access mode you see, your website features, when you only have 0.1 million users, it may be very different from 0.1 billion users. all the major architectural actions that are too early and too frequent may be counterproductive. in this regard, you must be careful when judging.

Facebook's 4 and a half years of fun. I learned more than ten items. but I hope this sharing will be helpful to my friends. at the same time, I wish all my friends good luck in their current roles.

In addition, if you are an entrepreneur and agree with some of the above ideas, I welcome you to share your ideas with others. I will be happy to give my suggestions, either in terms of product technology or management. participate in early angel investment if possible. there is not much investment, but you may gain a free consultant with a little experience.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.