This article was originally created by “TGO Kunpeng Club”. Link: Fan Weiwei: The DEVELOPMENT system construction of Chinese Perpetual Calendar

Oral | FanWeiWei finishing | Li Yunong

Hello everyone, I am Fan Weiwei from The Chinese Calendar. I am very glad to discuss with you today the topic of the construction of the research and development system of start-up companies. My share is mainly to research and development of the whole process of Chinese calendar products, to introduce to you how to build their own RESEARCH and development system in different stages of the product, to ensure the stable development of products and business.

Chinese perpetual calendar is a calendar product, in addition to some essential calendar functions (lunar calendar, almanac, traditional cultural fortune), there are weather, constellation, festival reminder, subscription public information and other functions. The original intention of the product is to provide information and traditional culture through the calendar, connecting weather, reminders, countdown days and constellations.

Here’s a startup joke: “I have a great idea, a great team and angels, and all I need is a programmer.” But IN my opinion, as long as the startup project is not a demo, there is more than one programmer missing. It is not easy for a start-up company to survive. It must be supported by a complete R&D system, so it is very important to build an efficient R&D system.

What is r&d system

Everyone in technology should know Conway’s Law — that a company’s products and services are a reflection of its organizational structure and the way it communicates and works. From this perspective, an R&D system should consist of three parts:

  1. Organization. Organization and people are the most important. If there is no organization and team in the R&D system, it is meaningless to talk about process/specification or technology/architecture.

  2. Processes/specifications. The optimization of processes and specifications is to make collaboration between organizations more efficient while ensuring the delivery quality of our research and development;

  3. Technology/tools. The appropriate technical architecture ensures rapid iteration of our products, and the use of automated tools can improve work efficiency.

Together, these three lines form the RESEARCH and development system, with many practical points under each line to drive the product and business forward. I’m going to talk to you about how we built and built the systems we developed at different stages of the development of the calendar, at different points in time for these three lines.

Chinese calendar product development history

The initial phase, zero to one

Going from zero to one was a wild growth process, and the first version of the product was as simple as it could be in order to get it to market quickly. In the initial stage, the shortage of manpower is a common problem from 0 to 1.

From the point of view of organization, it is better to build a team before starting a business. If there is no team, the first problem we face is to recruit people. One of the rules of early recruitment in a startup is “family, Friends, Fools,” but we were also limited in funds, so we were encouraged to hire as many people who were versatile, able to grow in multiple fields.

At the same time, the process/specification of this stage is also very rough, communication basically depends on Shouting, collaboration basically depends on walking, and there is no independent office. But the efficiency is the highest at this time, because everyone is face-to-face communication, so avoid a lot of unnecessary links. In terms of the process, if there is an idea, demand or development online, it can be directly launched, without a very complete development link.

Finally, at this stage, do not have any technical feelings, choose the technology stack you are best at, not the trendy technology architecture of big companies. Technical service business, priority to ensure the quick launch of products. At this stage, the most basic technical aspect to achieve is the unification of the code and development environment. At the same time, there were very few tools, and most of them were operated by human flesh.

In the growth period, we treat them in groups

We encounter the following problems during the growth phase — the rapid growth of the product:

  1. With the rapid growth of user scale, a large number of new demands will emerge.

  2. Team members expand rapidly. The efficiency of communication and collaboration is greatly reduced;

  3. The original system architecture in the expansibility, stability, will expose a lot of deficiencies, a lot of problems;

  4. There is an urgent need for automation because most of the work has previously been done by human flesh.

At this stage, we will start to implement the rule by group, the business and organization will be separated.

Because the demand at this stage will be very large and all aspects of talent need to be fully configured, we need to establish a talent echelon and QA team. At the same time, we need to accumulate some best technical practices at this stage, so we need to establish a technical wiki within the team to encourage internal sharing and mutual learning and improvement among the team.

In phases 1 to 10, requirements sources and capabilities are numerous, so we have to prioritize and pool requirements. At the same time, we also need to ensure the quality of the code and conduct code review. In addition, bug tracking and fault management processes must be established, and small bugs must be solved centrally. Although failures are inevitable, we should record them and analyze the reasons behind them to avoid repeating mistakes.

In terms of technology/tools, with the growth of users, we need to introduce mature open source technologies to improve development efficiency. At this stage, we split the individual system into sub-systems such as users, UGC, content and community and put them online quickly. In addition, because of the frequency of releases during this phase, we had to establish a continuous delivery tool chain and a unified log management platform. Finally, make a big sword system, including assets, computer room, application, monitoring and other operations and maintenance infrastructure management, unified management by the system.

Growth phase, product iteration process

The figure above shows the product iteration process during the growth phase. The first is the collection and review of product requirements, including design review and technical review. Then enter the stage of research and development, testing, and then go online production after passing the test environment and pre-release environment. One week after the iteration of the whole version, we will make a review to analyze the data of the last version, reflect on the incomplete links, optimize in the next iteration, and confirm the direction of the product iteration of the next version.

This stage is a very important stage of the product, also known as the climbing stage. At this stage, business, products, users, systems and organizational personnel are all growing upwards, and there will be many problems. Therefore, we need to improve organizational processes, technical architecture and tools quickly.

Mature period, stability in seeking change

Through the high-speed development period, our products will gradually enter the mature period. At this stage, you may encounter the following problems:

  1. Product functions are relatively stable, and new business breakthroughs need to be sought;

  2. The more attempts, the higher the failure rate of new business;

  3. In the same business scenario, there will be the problem of duplicate wheels;

  4. There are more and more demands for data analysis in all dimensions.

The team at this stage needs professionals in the vertical field to continuously improve team agility and form a closed loop of the R&D team. At the same time, we need to establish the basic platform department and data analysis team, precipitation of basic services, to avoid duplication of wheel.

Be agile in your processes, take small steps, accept user feedback, and evolve your product quickly. Beyond that, data-driven product decisions, grayscale and A/B tests. When we were at this stage, we were doing tens of millions of daily activities, so it was impossible for new features to be launched to cover all users, and if something went wrong, it would be a very serious online failure.

This stage of the technology/tool stack is relatively stable, but if there is a new business or breakthrough you want to try, you may need to accumulate some common components of your own to platform the base services. At the same time, in this stage, we should unify the communication tools, communication and process. Finally, we need a data analysis platform, which can be purchased in the early stage and built by ourselves in the later stage.

For the future, we want organizations that are nimble, small and beautiful. We hope to instrumentalize processes and best practices. Hope to truly achieve technology-driven business development.

conclusion

  1. I think an efficient RESEARCH and development system needs to be considered as a trinity of people or organizations, process specifications and technical tools. There are many specific practices for each line, and although each company is different, the thinking is the same;

  2. Research and development system is not lofty, just for their own;

  3. An effective r&d system, like a product, requires constant iteration.

The above is all I share, I hope to help friends who are starting their own business, thank you.

Q & A

What are the criteria for maturity?

The development stage of each company is different. For our mature product of C, there are very few iterations of new functions. We pay more attention to the stability of core business, and we will make new attempts in other directions or fields. In my opinion, if a product’s core functions are stable, it also starts to want to break through and make new attempts, even if it has reached the maturity stage.

How do you get rid of bad people?

Since our company has been growing for 8 years now, we have many senior employees. Some older employees will grow with the company and become the core of the company, even into the management level. But some older workers can’t keep up or stop looking for change on their own. We first interview those who can’t keep up, give them financial rewards, and if that doesn’t change the situation, then the problem will be solved quickly.

Should the R&D team of a startup company do KPI performance?

We divided r&d into groups, each of which was responsible for a small piece of independent products. From the perspective of the whole business goal, R&D, products and operations were the same, so R&D also had to follow the KPI of the business. In addition, r&d will also have other assessment, such as delivery speed, delivery quality, online failure and so on.

Did you make a feature that failed, and how did it end?

There will be. Especially in the beginning, will be left and right by the user, each function point is very scattered, not systematic. When you make a few versions, you will find that few people use the feature, and even you will gradually forget about it, so it will have to be cut. We now use data to measure the core features that must be done, plus A/B tests to make the final choice.

What is the communication and collaboration mechanism between the technical and product teams?

Internet companies deal with a lot of products and technology, each version of the demand and product touch. In fact, communication and collaboration, the most important point is to achieve the same goal, on this basis, communication will be much better.

How to arrange the team to work overtime, how to motivate the team?

For startups, overtime is inevitable. I think there are two kinds of overtime: trying new business and working overtime every day in a dark room. At this point, the team leader must ensure that the material compensation is doubled. Give rewards for successful projects; The rhythm of product iteration is not well arranged, causing the R&D team to work overtime. We do not encourage such overtime work. As a team Leader, we should think about how to avoid and optimize it. Because this type of overtime work does not improve efficiency, the final delivery of products will be very poor, resulting in dissatisfaction of the team, and there is no time to improve team members.

Is there an appropriate ratio of admonishment to encouragement?

If a team member is bad at something, we should start with positive encouragement. If positive incentives don’t work, then we use reverse incentives. Such as criticism, deduction of performance bonuses, but also need to control the proportion.

End

For more content, please follow wechat official account TGO Kunpenghui (ID: TGO-Kunpenghui). Now you can get a “CTO Skill Map” for free!