How much did Tencent spend on developing WeChat? Is it really that technically difficult? What is the difficulty?

How much did Tencent spend on developing WeChat? Is it really that technically difficult? What is the difficulty?

The article is a bit long, but you will definitely gain a lot after reading it, especially for those who want to work in the Internet industry and want to develop their own APP. This is the experience I have gained from my years of outsourcing and self-development of products with a cumulative R&D cost of over 10 million.

Conclusion first

Tencent spent more than 1 billion yuan to develop WeChat. The technology is really difficult. If it is handed over to a full-stack engineer, it may take 10,000 years to do it. The following is a detailed explanation and analysis of why the cost is so high and where it is high.

I used to work in the APP software outsourcing industry, and I have outsourced hundreds of APPs to launch online, covering areas ranging from e-commerce, education, finance, Internet of Things, and medical care. Last year, I began to transform and began to truly develop an Internet product for my own company. During this period, I truly experienced the huge difference between making products for myself and outsourcing, which can also explain why the cost of Tencent developing WeChat is so high.

Tencent's WeChat development costs are high, which can be roughly divided into the following reasons, which will be explained in detail one by one:

  1. Repeated modifications to functions result in huge costs, and previous ideas may be constantly overturned during the research and development process.
  2. Debugging compatibility issues between different mobile phones and different operating system versions and mobile phone models
  3. Dealing with high concurrency issues with a large user base
  4. Some functions cannot be developed just because you want to (such as message push). You need to negotiate with third-party mobile phone manufacturers before you can do them. In short, you may have to pay the third-party manufacturers.

1. Repeated modification of functions results in huge costs, and previous ideas may be constantly overturned during the research and development process.

When I was working for an outsourcing company, the development cost of most client APP projects was less than 500,000 yuan, and the price was mostly between 200,000 and 300,000 yuan. Take the most basic registration and login function as an example. Generally, the development time of Android and IOS registration and login with 200,000 or 300,000 yuan plus the background development is generally 2 to 3 working days (when 3 engineers work together), including the time for writing code and debugging bugs. If it is complicated or the client has high requirements, it may take no more than a week to make repeated changes.

When we were actually making an APP for ourselves to operate as our own Internet product, we changed the registration and login process no less than 100 times. The total time spent was conservatively estimated to be more than 50 working days, and the salary cost of the engineers spent on the registration and login process was conservatively estimated to be more than 100,000 yuan.

So what is the reason that when we make our own APP products, we have to make more than 100 changes, which takes 50 working days, and the cost of a simple registration and login is hundreds of thousands?

Let me show you a quick look at our product's registration and login page and explain the ins and outs of it.

At first glance, our registration and login page functions, which support mobile phone SMS registration and login, email registration and login, WeChat authorized login, and international SMS registration, don’t seem to be complicated.

But in fact, the tricks involved are very, very complicated. Let me talk about a few typical things.

Nowadays, it is very popular for APPs to perform authorized login via QQ or WeChat. After authorized login, users can skip the registration process at a lower cost and directly use the services of your APP, which increases the usage rate of APP users.

But is this definitely a good thing?

This may be a good thing for users, but it may not be a good thing for the APP platform. This will lead to a very annoying problem, that is, you cannot obtain the user's information (user's mobile phone number). When WeChat authorizes login, WeChat will not give you the user's mobile phone number or WeChat account, but only a user's WeChat nickname. This thing cannot contact the user himself.

So how important is the user's mobile phone number? Getting the user's mobile phone number can greatly improve the user retention rate! You should often receive text messages from apps such as Tantan, Honor of Kings, and Taobao. These text messages are used in various ways to recall and wake up you, an old user who has temporarily lost, or to remind you of new features and new activities to encourage you to consume.

If you don't go online for a while, Tantan will send you a message about how many beautiful girls have liked you in the last two hours, asking you to come and have a look. King of Glory will send you a message like "Zhuge Liang's new skin is online" to recall and wake up users to play.

If you don’t have the user’s mobile phone number, you can’t send text messages, and you can’t do this at all. This is an important way to increase user activity and retention.

Even if it is not for the purpose of improving user retention, if the user reports any problems or bugs that need to be solved urgently, you cannot contact the user through the phone to help him solve the problem. Because WeChat authorized login does not allow you to obtain any valid user information.

We first made the WeChat authorization login button very large and conspicuous, but later we found that more than 90% of users used WeChat authorization to log in, without using a phone number or email address to register. So we thought this was a mess and we had to find a way to make the WeChat button less conspicuous. So where to put this button is also very important. If it is too small, users can't find it, which may also lead to a lower registration rate. Many people may not register because it is troublesome. If it is too big, all users will log in with WeChat authorization.

So we have to keep trying to find the right position to put it, hoping that users will register via their mobile phone number or email address, but at the same time hope that they will ignore WeChat. But if they must find WeChat, they can find it.

Maybe this one thing is enough for you to adjust it five or six times and try it repeatedly.

At the same time, many people may have done WeChat authorization login and forced users to bind their mobile phones for the first time. This mechanism may also cause users to be disgusted. The cumbersome process may cause users to give up registration or uninstall the APP. So how to design registration and login to increase the registration rate, every detail has become a problem worth pondering and trying.

At the same time, for example, in terms of SMS registration, whether your APP supports international SMS may be N times more difficult. If you have overseas users, you may also need international SMS registration. At the same time, some SMS channels may send SMS too slowly, or cannot be sent under certain conditions, with low arrival rates, etc. In this case, you also need to design a mechanism to ensure the sending rate and arrival rate of SMS.

For example, the general SMS channel does not receive recall SMS, so you need to find a way to get a channel that can send recall SMS. Take our own product as an example, the SMS channel is connected to three companies, and different channels are used to send SMS under different conditions. The purpose of such a complicated process is to ensure the sending speed and arrival rate of SMS and other special situations.

There are more than a dozen details in the registration process alone. Each solution requires a lot of attempts and costs. Every copy, the position and color of every button are the result of a lot of experiments, not just random guesses.

So what’s the point of doing this?

I have talked to many other APP companies before. Many of them can only achieve a download-to-registration rate of 70% to 80%, and some are as low as 60%. Our initial download and registration rate can only reach between 75% and 80%. After a series of long-term optimizations, we can now achieve a download-to-registration rate of about 95%. The registration rate has steadily increased by about 15%.

This means that if the same 1 million people download my app, only 750,000 to 800,000 will successfully register to try my subsequent app services and may stay as my users for a long time. Now, there will be an additional 150,000 people among the 1 million users who will try and become my users.

Do you think it's worth my time and energy?

Although looking back, if we don’t have any deviation in our thinking during the development process, and directly copy others’ things at the pixel level, the cost will definitely be much lower, because we don’t have to think about why, and there is no process of repeatedly overturning ourselves. For example, I originally spent more than 100,000 yuan on registration and login, and if there is a ready-made copy, it may cost 20,000 yuan. But you have to think clearly, the characteristics of each product are not different, and the user characteristics of different APPs also determine what the registration and login page design should be, and others may not be suitable for you.

Ps: Those who are interested can study Zhihu's registration and login page, which also hides mysteries. For any APP product of a large company, it can be said that the registration and login page is optimized almost every year. The purpose is to constantly try to further increase the download to registration rate of the product. You will know it if you download a few more APPs of large companies.

As a small company, we spent hundreds of thousands of yuan on a registration and login, while a large company might spend millions of yuan on repeatedly modifying a registration and login. What about our previous outsourcing projects? We charged customers 5,000 yuan at most for a registration and login, and it was usually completed in two or three days. Are there costs and budgets for these details?

And this is just a registration and login. A software with good user experience must balance the user experience and guide the user to the degree you need, which requires repeated consideration and trial of each function. No matter how much money is spent on these six words of good user experience, this is what I said before, each function of the APP of a large company may be modified hundreds or thousands of times.

Others always say that the greatest complexity leads to simplicity, but here I want to say that the greatest simplicity also leads to complexity.

2. Debugging compatibility issues between different operating system versions and mobile phone models

As a national-level application, WeChat has good compatibility with different mobile phones. But this does not mean that it is easy. You must have often found that various apps have flashbacks, freezes, or black screens on mobile phones. Generally, the smaller the company, the more likely it is to be like this.

IOS is not so bad. There are hundreds of mainstream Android models in China. If you want your software to run perfectly on every phone without too many crashes, it will cost millions just to buy all the test models. After buying all the models, every function must be tested on phones of different brands and different operating system versions.

It is also possible that your APP will not crash on Huawei P8, but it may crash on Huawei P9, or even fail to open. In other words, different problems may occur not only across manufacturers, but even different models produced by the same manufacturer. However, users don't care about you so much. If your APP crashes frequently, it will inevitably be uninstalled.

Another important point is that compared to the hardware cost of buying all kinds of mobile phones for testing, this cost is just a drop in the bucket. What is really expensive is the salary cost of testers and programmers who have to fix the bugs after you test them. You can't test the bugs and not fix them, right?

Generally, a large company's products may have dozens of testers alone, with annual salaries of several million or even tens of millions.

Small APP developers cannot do this very well. Generally, they only test on a dozen mobile phones. Some even only test on their own mobile phones. Therefore, frequent crashes occur. It is not that everything will be fine once you have written the function code. If you want to solve various compatibility issues, it will definitely be a big deal.

3. Dealing with high concurrency issues with a large user base

This question has been discussed a lot by others, so I won’t say too much. Simply put, for the same function, when you have 10,000 daily active users and 100 million daily active users, the implementation method and cost of the function will be fundamentally different.

The R&D costs of WeChat’s search and other functions are not simply a matter of how much the staff salary costs are. As a core product of Tencent, the technology used in WeChat is not necessarily derived from the accumulation of the WeChat team itself. Tencent’s technology in developing other products can be fully supported and grafted over, so the technology R&D costs of developing other products before are equivalent to not taking a detour in WeChat.

However, not every company has the technology that can be grafted over. Just because others have it doesn’t mean you have it.

It is totally different from Japanese. Of course, many small companies generally don’t encounter this problem at all, so there is no need to consider it.

4. Some functions cannot be developed just because you want to (such as message push). You need to negotiate with third-party mobile phone manufacturers before you can do it. In short, you may have to pay the third-party manufacturers.

Everyone should know the message push function in the APP drop-down box. However, it is absolutely a tricky thing to do a good job of message push. Basically, small companies do not do message push by themselves, but use some third-party systems of Huanxin and Tencent to connect and implement. Of course, you will see some words like "5 minutes, three lines of code to connect" on the official websites of companies such as Tencent and Huanxin.

People who don’t understand it easily mistakenly think that the message push function of an APP can be implemented in just three lines of code and five minutes. Because these third-party companies are just equivalent to the channel for sending push messages, but the specific push mechanism of your APP and the circumstances under which it is pushed are still up to you to design. And designing this thing is very complicated for many APPs.

Take Zhihu as an example. You will get push notifications when someone likes your post, follows you, sends you private messages, and so on. There may be dozens of situations here, and it is not as simple as pushing messages when there are messages. If you keep pushing messages when the user is asleep at night, it may cause the user to turn off the push function or even uninstall the app. Similarly, even during the day, too frequent push notifications may cause users to be disgusted, so it is very challenging to design a reasonable push mechanism at this time.

It is very difficult to ensure that users can receive your push notifications to increase the opening and usage rate of the APP while not causing user disgust. At this time, you may also need to design a system to push only some messages when multiple push conditions are met. You also need to consider that there are many things you want to tell users in the form of push notifications, but it is impossible to push all of them. Then you need to think deeply about how to make a choice.

En....Finally, you thought that everything would be fine once you figured out the mechanism?

This is just the beginning. Let’s put it this way. You will encounter a series of more annoying problems later. For example, you will find that iOS push notifications are fine and users can basically receive them. But Android users always fail to receive your push notifications. Why is this?

Because different Android phone manufacturers may limit you to use the push interface they provide in the system, otherwise the push information cannot be sent. When your program is running in the background, it will be killed by the system itself, resulting in your push information not being sent. Then you have to develop different push functions for different systems.

The most annoying thing is that for some manufacturers, such as OPPO, you can't do anything you want. We have previously found that on the OPPO R9, a model that is very active among our users, most apps are disabled by default after installation. Only a small number of apps such as WeChat, QQ, Weibo, and Zhihu have their push notifications enabled by default. Even the message push notifications of apps from big companies such as Baidu Tieba and Kuaishou are disabled by default.

From this point of view, Zhihu is still very powerful. It can make OPPO enable its push notifications by default, just like WeChat, QQ and Weibo. As for how this is done, I am not sure yet, but there is no clear official document to tell you how to do it.

I suspect that this may require paying OPPO or negotiating with them. Small companies are simply powerless in this regard.

Let me explain to some people who say that registration and login are minor functions and that they should spend their time on making products.

Registration and login are not small functions, but the most basic functions, the threshold of your APP. If you can't even do the most basic registration and login well, how can you guarantee that other functions can be done well? How can you say that the product experience is good?

For an Internet company, every penny should be spent wisely. The average cost of acquiring a user has increased by hundreds of times compared to when the mobile Internet was just emerging, such as in 2012. It is not easy to acquire any user. The cost of acquiring a user for many apps has already reached more than 10 yuan or even hundreds of yuan per download. If the conversion rate from download to registration is not well controlled, a lot of your promotion money will be wasted, because a large number of users will be lost at the registration step, and the corresponding app retention rate and daily activity will definitely be lowered.

Similarly, I want to say that it is 2018 now, and people cannot live in the past. In 2012, you could get a lot of users and a lot of good reviews for anything you made, because it was rare and there was nothing. No matter how bad your user experience was, no matter how ugly your UI was, or how unusable the functions were, users might still accept it. Because everyone was at about the same level, and they were all very bad.

But it is 2017 now, and the user experience of most apps is no longer the same as it was in 2012. The huge amount of R&D investment by big companies like BAT has greatly raised the threshold and average level of the entire market. Users' requirements and expectations of you are no longer the same as they were in 2012.

If you take something made in 2012 and look at it in 2017, it may be a pile of shit. The later you start a business, the higher the market and users’ requirements will be, because the basic needs have been met and the pie has been divided up. So the ones that come out now are more likely to have optimized all the details very well, and only the accumulation of details can determine the so-called good user experience.

How can you easily achieve a good user experience? If you don’t optimize and polish the details of your product, where will your daily activity and retention rate come from? Do you expect a pie in the sky?

<<:  5G is not here yet, but WeChat is already struggling

>>:  What is the current status of short videos? Big data tells you that Douyin is more popular and Kuaishou is more profitable!

Recommend

Counterpoint: Global semiconductor industry revenue will drop 8.8% in 2023

The global semiconductor industry's revenue f...

The simplest video chat tool Xiaoyu accompany robot experience at home

With the help of technology, being able to see th...

Surprisingly, the accuracy of "Dog Doctor" in cancer detection is as high as 97%

The working dogs we hear more about in our lives ...

How did the ancients see Mars?

Author: Fan Yu (Lunar and Deep Space Exploration ...

The Last Ship Season 1-5 HD English subtitles

Chinese name: The Last Ship Foreign name: The Las...

Community operation: 6 thoughts on community operation!

As the growth rate of offline channels and e-comm...

How to start Baidu information flow advertising from 0 to 1?

Baidu information flow was developed after Baidu ...

As an operations manager, what is your daily job?

Different products, different product stages, dif...

Liu Guosheng Yang Gong Feng Shui 2017 Guangzhou Training Course Video 88.63G

Liu Guosheng Yang Gong Feng Shui 2017 Guangzhou T...