The development of the Internet today is not the era of fish, but the time of fast fish eating slow fish. The winning principle of Internet products is a word-"fast". In 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, fast 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 ... 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 do you choose a variety of possible product features? The user will be the best compass, any product launch certainly will not be perfect, perfect is a kind of dynamic process, so to quickly let the product to induction user needs, so the moment constantly upgrade evolution, innovation, this is the only way to stay ahead. In this field, the product is always beta, it may be a few days a version, quickly to upgrade, constantly listening to the forum, user feedback, constantly adjust changes, and then determine the direction behind you.
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 weekly average will release 20 versions, the reason to do so high product release rhythm, is because we have been insisting on doing two things.
1. To stabilize iterations, small steps run
Although, we pursue the quick release, but needs a steady research and development rhythm to guarantee the team efficiency and the product quality. How can be both fast and stable, QQ Farm using a unique agile iterative development model, we call it "speed model."
Fig. 1 "Speed model" of QQ Farm
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.
1 features need to be cracked into very small deliverable sub features, usually no more than 2 days of development effort.
2 prior to iteration, feature planning, communication validation, interface interaction and visual design should be completed in advance.
3 The iterative planning and evaluation process must also take into account the coupling relationship between characteristic/sub characteristics and the coupling relationship between development manpower, and make reasonable planning arrangements to ensure the smooth development process and reduce the risk.
4 requires 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.
2. With characteristics as the center, with the hair
Characteristics, is the user can perceive and use, to the user real meaningful function unit. Therefore, only the pursuit of the number of releases is meaningless, each release at least to the user to bring the perception or use of the function.
Therefore, all the activities of our product development are based on the characteristics of 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.
Of course, to be able to do so, but also depends on the product technology framework, test automation, operation and maintenance of the release automation capabilities to do support. But first of all, 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 makes the whole research and development supporting capacity of the product develop around this center.
Second, timely feedback, quick response
To achieve the rapid release of products is only the first step, its fundamental purpose is to enable users to use the new function as soon as possible, get user feedback information, in order to timely product development adjustment. Therefore, it is important for a product team to be able to quickly get user feedback, to really value feedback, and to respond in a timely manner. After 12 years of the Internet, we attach great importance to the feedback from users, and constantly improve their products, accumulated rich experience in delivery.
1. 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.
2. 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.
Taking Qqmail as an example, in order to ensure a quick response from user feedback, a 1000/100/10 story is circulating in Tencent.
1 each month must reply 1000 forum user posts.
2 each month must check 100 articles related to Qqmail.
3 each month must handle 10 user feedback.
3. 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.
Data operation is the use of product operating data to speak, through the analysis of operational data for product development to provide an objective basis for decision-making. Through the analysis of operation data, we can get the accurate evaluation of a certain product characteristics in a short time, and then guide the development of the products quickly.
Figure 2 is an example of continuous operating data for a product's user registration success rate within 93 days.
Fig. 2 Example of continuous operation data analysis
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 2 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 is also around 40% floating 2%. By analyzing the operation data, we can quickly judge whether the target of the characteristic is achieved, and then instruct the next action.
Three, need to innovate quickly, need strength
We want our products to iterate faster, but will we be able to get up with this idea? Fast not just a product concept, but also a technical strength, following the core values, the need for innovative thinking technology, 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, and the next full upgrade of the new architecture takes only 1 days. The architecture has been able to improve quickly from the following aspects.
1. Client Web technology: like b/s system development mode and release cycle
Some people ask: Can the client's product launch quickly? It's really difficult, but it has to be done, because that's the basic requirement of Internet products, 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.
The entire architecture consists of the client's microkernel, plug-in version control server, and resource download server, as shown in Figure 3.
Fig. 3 The technical structure of QQ PET
The microkernel is briefly described below.
1 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.
2 Plug-in loader, responsible for loading plug-ins.
3 Plug-in version control component that is responsible for asking the version server to obtain the loaded version.
4 Resource Download component, responsible for downloading plugin resources.
The client's brief startup run process is as follows:
1 Get version: After the kernel starts, ask the version control server to obtain the version that needs to be loaded.
2 download the corresponding version of the XML configuration.
3 The loader resolves the XML configuration.
4 Start the first plug-in load logic.
5 Download the resources for the first plugin.
6 load the first plug-in.
7 Continue loading the child node plug-in.
Micro-Kernel lazy loading the comparison of the schema with the Web schema is shown in table 1.
Table 1 Comparison of micro-kernel lazy loading schema and web architecture
Lazy Load Schema Web schema loader lazy load micro-kernel TT, Qqbrowser, IE, Chrome, Firefox and other browser description language xmlhtml loading object plug-ins pictures, videos, flash, etc.
2. Micro-core, plug-in architecture: Features Plug and play, product flexibility and stability
The business development based on the micro-kernel lazy loading architecture becomes very simple and extremely flexible. The whole product large and small characteristics, are dismantled into a functional components, components are forcibly decoupled, reduce dependence on independent operation, which greatly reduces the dependence on the joint, testing, system integration of the work of difficulty, reduce time and enhance efficiency. More importantly, each component can be downloaded independently and run on the client side, which means that the release risk is reduced and efficiency is increased.
Figure 4 Microkernel, plugin architecture
3. Feature-oriented vertical architecture: to develop granularity with characteristics and improve development efficiency
Traditional product technology architecture is a horizontal layered structure, and each layer is accustomed to assigning 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. 5 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.
Fig. 6 Vertical Product Technical framework
In this way, the feature-oriented development model is enforced, which increases efficiency and speeds up the tempo.
Four, fast need means
Think fast easy-do fast, in addition to products, operations, technical capabilities, product development process need to have the necessary means to ensure the development of the whole.
1. Scrum Agile Development: Flourish
Agile is quick and quick to respond to changes, which is the development needs of Internet products. 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. Through the development of the bottom up and the active exploration and precipitation of Tencent people, gradually formed the "classic iteration", "Speed", "elephant", "Operation" of the four more characteristics of the agile research and development management model.
We are in the agile promotion, the implementation aspect, already has set to operate as the idea promotion pattern, has agile as the product to operate, has formed "the management", "the project" two lines, promotes agile in the multiple dimensions.
Fig. 7 The Scrum agile development of Tencent
2. 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.
As the ability to speed up the release of products, CI plays a significant role in the following aspects.
1 automatically compile output report, maintain code can run, expose risk in time, reduce integration cost.
2 Dailybuild Day Build system, let product Manager, tester can experience and test as early as possible.
3) 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 valued, reduce the cost of resolving defects, shorten the resolution time.
3. Grayscale release: Increase the frequency of the release, 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.
Author Introduction:
Jing, Tencent R&d project director, Agile coach. Engaged in communication, Internet development, project and research and development management for many years, is currently responsible for Tencent multiple business lines of important products project management, explore and promote the agile research and development and project management for Tencent.
Source Address: http://djt.open.qq.com/po......=view&aid=206