From a student project of Harvard campus in 2004, Facebook has rapidly grown into the world’s largest social network with 1 billion users in a short period of 7-8 years, which once again witnessed the miracle of successful Internet entrepreneurship. At the same time, its product development process has become the pursuit of many Internet product companies.
Facebook is no less innovative than Google in today’s Internet landscape. Last time I talked about Google, today I’ll talk about Facebook. First of all, I would like to state that since I have never worked in Facebook, the quality control system of Facebook is based on the discussions of employees working in Facebook and related network materials.
Before analyzing FB’s quality control, it is necessary to first understand its cultural characteristics and business form:
1. “This is the first Fortune 500 company founded by millennials,” said Molly Graham, a former hr and product manager at Facebook. Millennials, born after 1980, tend to be footloose and live under the illusion that work should be fun.
Facebook’s CEO, on the other hand, has embraced the characteristics of young people and crafted a management strategy for them. “Hacking” has become part of Facebook’s corporate culture, carefully designed by the company’s top brass. “Hacking” is what makes Facebook stand out from the crowd. It is a sign that Facebook has always had the most advanced productivity, aiming to bring the world closer through constant innovation and experimentation.
So it’s managed internally at Facebook
Facebook’s culture was influenced by Marcus Buckingham. Buckingham is a British-born management expert. He urges people to “play to their strengths and avoid their weaknesses”, advising managers to cater to their strengths when assigning jobs to employees.
Facebook even encourages lower-level employees to question and criticize managers. Google’s management structure is more rigid, and being a “manager” means having more power. At Facebook, “job titles don’t matter.” People look at the quality of your work, the strength of your convictions and your ability to influence others.”
2. Product features of Facebook
Users are relatively tolerant of the quality of social products. For example, if you can’t connect it now, you can connect it later. If you can’t post it now, you can post it later. The number of fans is wrong, and no one cares too much. Facebook doesn’t think it’s bad quality. They believe that the quality of a product is not determined by the number of failed test cases and bugs, but by the user’s expectation of quality.
If users have high expectations for product quality, a bug missing will create a poor quality impression, and users are likely to give up using it. On the other hand, if the user’s expectations are average, 100 bugs will not affect the user’s continued use. So facebook releases products that meet users’ expectations for quality.
Relatively loose product release cycles. Many products from Microsoft or Google are already on the market, and expectations for the next release date and new features are high, which often puts pressure on product development teams. Facebook doesn’t have much of that problem. It has its own launch deadline and no distractions.
Therefore, in terms of the composition of its product RESEARCH and development team, it can still maintain a small research and development team size, while retaining the characteristics of the entrepreneurial team. The staffing ratio for Facebook projects: A project typically has two or three designers, 5-10 engineers, and a product manager to make sure the code is delivered on time.
There are a few very important principles to follow:
Each engineer is responsible for the product from start to finish. From the beginning of an idea, to prototype development, internal review, feedback, product development, launch and maintenance, all handled by engineers.
Take feedback very seriously, especially early internal feedback. Engineers are encouraged to prototype and get feedback as soon as they have an idea.
Do it. Make it happen.
Internet products are constantly changing, and you don’t have to wait for a perfect product design to launch.
In contrast to Google, Facebook has no test engineers. However, Facebook still has engineers responsible for quality assessment and actively encourages each engineer to report bugs. And each role is different from the traditional corporate positioning.
1. Like Google, Facebook has an engineer-oriented culture. “Product managers are basically doing nothing here,” says one engineer. Engineers can modify specifications of products not yet commercially available and come up with new feature ideas at any time.
2. If product managers want to obtain development resources, they will not organize and allocate them through project review as many companies do. Instead, product managers need to release product ideas by themselves to attract interested engineers.
3. Unlike the way a product manager defines a product, a product manager usually doesn’t interfere with the preferences of an engineer. If a debate arises, the engineer will develop a prototype, spend a week developing a feature and testing it to see if it’s worth rolling out. Typically, new features are tested by Facebook employees themselves.
As a result, Facebook uses the following quality control measures to ensure product quality:
Development is responsible for quality: Development is done by itself from design, implementation, testing, to deployment. Other tools, process engineers develop tools and processes to make testing, deployment, and monitoring easier for developers. Each developer has their own separate test environment, which is run on the development local machine and is very simple and fast to deploy. The test environment uses real user data.
Continuous integration and test automation: released weekly. By Sunday night, builds to be released branch out from the main line to the release branch, and by Tuesday noon, if there are no major problems, they should be online. All test runs are limited to 10 minutes, so you don’t need to consider which test cases you don’t run. Run all test cases. (Only hearsay, not research.)
Strict code audits: Code reviews take up about 50% of the time at Facebook, and managers have some responsibility for code quality. Code quality is even more important than anything else: Facebook Code Review is a key KPI assessment subject to a serial system, and if there is a Code quality problem, the KPI responsibility is 30% for the lead, 50% for the programmer, and 20% for the reviewer.
Before the code checkin, review by someone. Facebook founder and CEO Mark Zuckerberg personally oversees every code update to the News Feed. At Facebook, all major updates to the code are subject to mandatory review, and any change is reviewed by at least one person. But any changes engineers make to the News Feed will be vetted by Zuckerberg himself.
Internal beta (Dog Food) : Before launch, company employees use the feature to be released. You can have hundreds or thousands of people using the new feature within 2-3 days. Developers responsible for publishing features do a lot of testing between Sunday night and Midday Tuesday.
Control risk through grayscale publishing: new features may have quality problems, and new features may affect other existing features. To reduce or control these risks. Facebook has developed a complete set of publishing, control, and monitoring processes and tools.
1. After passing the test, the product quality is basically guaranteed. 2. Even if there are missed test bugs, only a small number of users will be affected. 3. Monitor problems in time. 4. Fix it.
Product monitoring: through positive and negative public opinion of community discussion, and the comparison with historical application data, the system operation status of monitoring products is repaired.
One of the proudest and most notable aspects of Facebook’s quality control is that “there are no dedicated test engineers,” so personally, dedicated test engineers are a pretty vague conclusion. Especially now that our product quality control methods continue to evolve and improve, the concept of “testing” is not just about finding bugs, all work around improving product quality is testing.
It doesn’t matter whether the title is “test” or not. It doesn’t matter whether the position is “test” or not. What matters is how to effectively ensure and improve product quality. Therefore, in a sense, development engineers, operation and maintenance personnel, in fact, assume the functions of testing, but do not exist as a special position.
And you’re also concerned about how to make sure that people at Facebook are quality conscious in such an innovative environment. In fact, I think there are two points worth learning from
1. Transparency: Every Employee at Facebook has a points system that other employees can “like” and “press” — for engineers, of course. If in the release process, there is a code bug that can not be released smoothly, or the code quality is found to be poor during the code review, will be trampled.
Of course, engineers can get “thumbs up” from others for trying to achieve great results. This score directly affects the semiannual performance evaluation. In addition, employees who are frequently laid off after transparency will find it difficult to stay in the company.
2. Strict result assessment: The engineer is responsible for quality. If an engineer’s code bug leads to release rollback or serious quality accident during operation and maintenance, the engineer will be “fired”.
As a result, Facebook has a quality control process and incentives to make sure that every engineer cares about the quality of their code. Because no one else is responsible for your code but yourself, and if something goes wrong, it’s the engineer’s responsibility. Ensure that the assessment system is simple and easy to implement.
Facebook does put a lot of trust in its employees, but that’s the opposite. Every employee who violates the rules must bear serious consequences and responsibilities. Therefore, for many people, the atmosphere of Facebook is actually very stressful, and it is not as “mixed” as the outside world thinks. It is a misunderstanding that the work pressure of innovative companies is not so high. Therefore, also confirms a saying, “God rewards those who work hard”, innovation is also how ah.
Interested can add software test exchange: 718897738
If you are interested in Python test automation, Web automation, interface automation, mobile automation, large Internet architecture technology, interview experience exchange and so on, please follow me. Welcome to share, comment and forward.