In the current internet age, is not the era of fish, but fast fish eat slow fish era. Just as the famous "World martial arts, only fast not broken", the Internet product winning principle is a fast word. In the various forms of product development, we always implement one of the values is "fast", how should we understand and interpret "fast"? What are the ways to implement this principle?
Quick iterations, quick hair
Internet products are different from traditional software development, we are faced with hundreds of millions of users such a huge user group, who they are, what preferences, what kind of habits, how to use our products, whether we like our products ...
Fig. 1 "Speed model" of QQ Farm
We do not know these things accurately. Therefore, the demand of Internet products, and not through a few months of user research, market research, product planning can be made clear, not to mention the Internet user group itself is also in the rapid development of the dynamic.
So how do we develop our products in this situation? How to choose the best possible product features? The user will be the greatest compass, quickly let the product to induction user needs, constantly upgrade evolution, innovation, is the only way to stay ahead. Keep listening to the user's feedback, constantly adjusting the changes, and then deciding which direction to follow.
Therefore, "rapid iteration" is our basic requirements for the product, can be done fast enough has become a measure of product development is one of the standards of maturity. To "QQ Farm" for example, the current average daily has at least one release, or even more, the reason to do so high product release rhythm, because we have been insisting on doing two things.
To stabilize the iterations, step fast.
First of all, the QQ farm used a unique agile iterative development model, we call it "speed model."
QQ Farm Research and development team, composed of a number of roles, including: Project manager, product, UE design, foreground development, background development, testing, operation and maintenance. With a week as a fixed iterative development cycle, this week includes a complete team of research and development collaboration processes for each role: pre-iteration feature planning, iterative review, and iterative processes including iterative planning, development, testing, and publishing. But the biggest difference with scrum agile iterations is that it is not delivered at the end of the iteration, but is able to perform multiple delivery and publishing processes in one iteration.
This approach seems simple, but in fact, the team's comprehensive research and development capabilities is a huge challenge. The main challenges are the following.
• Features need to be cracked into very small deliverables that typically do not exceed two days of development effort.
• Pre-iteration, feature planning, communication validation, interface interaction, and visual design should be completed in advance.
• The iterative planning and evaluation process must also take into account the coupling relationship between characteristic/Sub features and the development of human coupling, and make reasonable planning arrangements to ensure the smooth development process and reduce risk.
• Require team members to work with high occlusion ability, high capacity, need long-term tacit cooperation. foreground development, background development, testers are able to communicate efficiently, smooth collaboration.
With characteristics as the center, with the hair
Secondly, all the activities of our product development are carried out with the feature as the center. A more common approach is to plan a batch of features and then go through a development phase to test, concentrating on testing the regression and completing the release. However, in the "QQ Farm", from the characteristics of planning, planning, development, testing, publishing are based on characteristics of the unit to drive. That is, when a feature has been developed, it is immediately transferred to the test and immediately after the test is completed. Within an iterative cycle, there are many different features that are independently parallel to the process from development to release.
This must also rely on the product technology framework, test automation, operation and maintenance of the release automation capabilities to support. But the core idea of "characteristic as the center and follow the hair" is the guiding principle of product, technology, project management and Operation Dimension, which is the foundation of the continuous development of the product's whole research and develop supporting capacity.
Timely feedback and quick response
To achieve the rapid release of products is only the first step, the fundamental purpose is to allow users to use the new features as soon as possible, to get user feedback information, in order to timely product development adjustments. Therefore, it is important for a product team to get user feedback quickly, to really value feedback, and to respond in a timely manner. After 12 years of the Internet, we attach great importance to feedback from users, and constantly improve products, accumulated rich experience in delivery.
Building User Feedback Channels
First of all, to solve the problem of how to collect user feedback, to meet different user habits, provide a variety of ways of feedback channels, so that feedback timely. Users can use different channels of the product to carry out feedback, suggestions and suggestions.
Pay attention to feedback, quick response
User feedback, comments, and suggestions are like a mine, providing a treasure for the development of the product, but it is not easy for the product team to really recognize their value and be able to dig these treasures quickly.
Take Qqmail as an example, in order to quickly respond to feedback from users, in Tencent circulated a 1000/100/10 story.
• Each month must reply 1000 forum user posts.
* Each month must consult 100 articles related to Qqmail.
• Each person must handle 10 user feedback per month.
Focus on data operations, data is the only truth
No matter how meticulous the investigation beforehand, how meticulous the planning, for product managers, the release of a new feature, is still a scary experience: the characteristics of the user's acceptance of how the user will be used, the new characteristics of the product to bring how to pull or inhibit, which features may be interactive, ease of use, Stability and so on. It is difficult to answer these questions.
Fig. 2 Example of continuous operation data analysis
Through the analysis of operation data, we can obtain the accurate evaluation of a certain product characteristics in a short time, and then guide the development of the product quickly. Figure 2 is an example of continuous operating data for a product's user registration success rate within 93 days.
As can be seen from Figure 2, the registration success rate is stable between 20%~30% before July 12. July 12 to the registration page interactive process optimized and released, after two weeks of data observation shows that the new interactive design has been expected to function, registered success rate to 40%~60%, even in the July 17, 24th two days a directional to a province all online QQ users to publish the message, Its registration success rate also floats about two percentage points around 40%. By analyzing the operation data, we can quickly judge whether the target of the characteristic is achieved, and then instruct the next action.
Need to innovate quickly, need strength
We want our products to iterate faster, but will we be able to get up quickly with this idea? It's not just a product concept, but also a technical strength, following the core values, the need for technical innovation thinking, so that technical ability to support our "fast."
Take the QQ pet as an example, through the technical architecture innovation has successfully promoted the client product release speed and the renewal frequency. With a traditional client approach, a full upgrade of one version takes 6 months, while the next full upgrade in the new architecture takes only 1 days. The architecture has been able to improve quickly from the following aspects.
Client Web technology: development methods and release cycles like B/s systems
Some people ask: Can the client's product launch quickly? Can we make the client as agile as the Web? The answer is yes, our client micro-kernel lazy loading architecture, the client Web technology to achieve the same as the Web Development client products.
Fig. 3 The technical structure of QQ PET
The entire architecture consists of the client's microkernel, plug-in version control server, and resource download server, as shown in Figure 3.
The microkernel is briefly described below.
• The entire client is transformed into a micro-kernel plug-in platform with only one plug-in loader, plug-in version control component, and resource download component.
• Plug-in loader, which is responsible for loading plug-ins.
• Plug-in version control component that is responsible for asking the version server to obtain the loaded version.
• Resource download component, responsible for downloading plugin resources.
• The client's brief start run process is as follows.
• Get version: After the kernel starts, ask the version control server to obtain the version that needs to be loaded.
• Download the appropriate version of the XML configuration.
• The loader resolves the XML configuration.
• Start the first plug-in load logic.
• Download the resources for the first plug-in.
• Load the first plug-in.
• Continue loading the child node plug-in.
• Micro-Kernel lazy loading schemas are compared to web schemas as shown in table 1.
At the same time, through the micro-kernel lazy loading architecture can also achieve the characteristics of Plug and play, so that products flexible and stable. Components are forcibly decoupled, greatly reducing the difficulty of dependencies in the context of tuning, testing, and system integration. Since each component can be downloaded independently and loaded on the client side, this means that the release risk is reduced and efficiency is increased.
Feature-oriented vertical architecture: develop granularity with characteristics and improve development efficiency
Traditional product technology architecture is a horizontal layered structure, and each layer is accustomed to assign to different people responsible. One of the problems that comes directly from this is that we develop, tune, and test the characteristics of the character as a result of the complexity of people coupling, layer coupling, and the introduction of risk.
Fig. 4 The traditional technology architecture of horizontal layered products
For example, for example, the development of a login page login function, may require the Web Foreground Engineer Development page, web background engineer to develop CGI, server background project development user authentication interface, database engineers do database table structure development. So such a simple login function, in the tuning, testing, publishing will involve a lot of human collaboration, but also because each layer needs to change the code, this layer of other functional code may affect. Is this a way to get up fast?
The new architecture of the QQ pet is feature-centric, using a vertical architecture to solve the problem, one component per feature, one responsible for development, and each component must include UI, logic, and protocol code implementations.
In this way, the feature-oriented development model is enforced, which increases efficiency and speeds up the tempo.
You need the means.
It's easy to think fast-it's hard to do. In the process of product development, in addition to products, operations, technical capabilities, we also need to have the necessary means to ensure that the development of the whole fast.
Fig. 5 Vertical Product Technical framework
Scrum Agile Development: Flourish
We have introduced agile development as early as 2005 and have now created our own agile research and development management framework combining scrum with our own product, culture, and team characteristics. After the development of the bottom up and the active exploration and precipitation of Tencent, gradually formed a classic iteration, speed, elephant, operation of the four more characteristics of the agile research and development management model. And in the promotion of agile, implementation, there has been a set of operating for the concept of the promotion model, agile as a product to operate, formed a "management", "project" two lines, in a number of dimensions to promote agile.
CI: Continuous integration, fast experience
CI is very effective in improving automation efficiency in the product development and testing phase. At present, our CI development level is still uneven, but from the beginning of automatic compilation has gradually added static code detection, unit testing, automated deployment and more content, began to more research and development team favored.
Fig. 6 The Scrum agile development of Tencent
As the ability to speed up the release of products, CI plays a significant role in the following aspects.
Automatically compiles output reports, maintains code to run, exposes risks in a timely manner, and lowers integration costs.
Build the System Dailybuild day to allow product managers and testers to experience and test as early as possible.
As an automated system, the use of static Code inspection, unit test reports and other means for the team to provide reports, to promote the quality of coding continue to be paid attention to reduce the cost of resolving defects and shorten the resolution time.
Grayscale Publishing: Increase the frequency of publishing, reduce the risk of publishing
In the Internet industry, grayscale Publishing has become the most important means of release control. Sometimes we want to develop new features for a small number of users and let them experience new features and new features first. Through the user feedback, the data operation means obtains the feedback early, the prompt improvement. In this way, you can reduce the risk of publishing, but also promote the release frequency, speed up the release rhythm.
Summary
Fast is a pursuit, a habit, but also a kind of ability, this kind of ability needs products, technology, operation, research and development management of many support to be able to get up fast. This fast, like China's high-speed rail, in high-speed driving must make you feel safe, comfortable, service, convenience.