Author: Idle fish technology — Mo Epilepsy

preface

As the r&d team grows to a certain size, it is inevitable that there will be multiple solutions to problems in the same field. Typically, different lines of business develop and use different testing frameworks, and many lines of business redevelop feature centers, configuration centers, rules engines, and distribution platforms. It is undeniable that there are reasons such as business particularity or existing schemes that cannot be satisfied, which lead to reasonable construction, including the phenomenon of wheel reconstruction.

The author started to participate in community governance of Xianyu Club half a year ago. From self-doubt about what plan to use and whether he would rebuild the wheel, to a sudden insight into the efficient response of the community’s general audit system to operational needs, this experience is quite rewarding. In this paper, by reproducing this experience and thinking, we will talk about how to avoid falling into the mire of reinventing the wheel when solving problems in the same field, and achieve the goal of solving business problems efficiently and realizing the maximum technical value.

Don’t repeat yourself

A basic principle of software engineering: DRY(Don’t Repeat Yourself), which emphasizes abstraction and reuse, is fundamental to avoiding reinventing the wheel. The application of algorithms, design models and framework design ideas can avoid repeating themselves from different angles and at different levels. Students who have been stationed in business lines for a long time also need to abstract business from solving one business problem after another, to change the working way of solving one class of problems after another to liberate productivity.

Unlike platform product managers who draw a complete blueprint of the product in the early stage, line of business product managers translate the product form of the user side or the single-point tool appeal of the operation into a continuous stream of requirements documents, which may or may not be related to each other. In a time and space discontinuous need, identifying common processes and reusable capabilities, abstraction, planning, and design in advance becomes extremely important and difficult. In the initial stage of community business, we fully investigated and refined the needs of community governance:

• Follow business objectives and policies and regulations: The Play community is positioned as a pure, toned and atmospheric community that needs to operate people, content and venues that fully understand and collaboratively control the community. At the same time, caC has increased the intensity of online information rectification and punishment, raising higher demands on the integrity and timeliness of self-examination and self-correction. • Research industry and competition solutions: Xianyu Huiplay is a community that bears UGC and PGC content at the same time. Like all similar communities, content, topics, creators and other dimensions of the community have rigid requirements for review or labeling in safety prevention and control, classification and original protection; • Full communication with partners: there are many senior people inside and outside the team who have profound experience in business and technology, which is a good opportunity to absorb other people’s experience and verify their own ideas;

These methods help efficient long-term positioning service stage and in the same field, combined with the current needs, it is reasonable to see need to support the risk decision-making, management and marking audit or audit requirements, such as a business access, job training, audit, quality inspection, and optimizing the efficiency of the general process, key indicators of different business also almost the same, They just have different sensitivity to human effects and real time. A general-purpose and scalable audit system can handle the above business, avoiding self-replicating wheels for quick access to business.Audit business abstraction

Don’t repeat yourself

Another, more common way to recreate the wheel is to duplicate someone else. JohnKeogh of Australia filed a patent for “circular transportation devices” (wheels) in 2001 and was awarded the 2001 ig Nobel Prize in science and technology. There are several reasons for the proliferation of software in the open source community and within the enterprise:

1. Leisure time driven by personal study or interest 2. Poor experience of others’ things 4. Existing solutions cannot fully meet the needs, cannot be adapted, extended, or cost is too high 5. There is no maintenance or the maintenance cost is too high. 6. Strategic reasons Internal competition for strategic direction by horse racing 7. Failure to cooperate or low cooperation efficiency due to organizational structure 8. Pure KPI reasons

Among them, 3, 4, 5, 6 and 7 are reasonable internal demands in production enterprises that take efficiency as the main goal. The fourth point, “to what extent can the existing scheme satisfy the appeal”, actually determines whether the scheme can solve similar problems. This situation leads to a certain degree of ambiguity in the definition of remanufactured wheels. Therefore, the rationality and necessity of reconstruction are often evaluated from multiple perspectives.

After abstraction and determination of the need for a common audit system, it takes a lot of research and evaluation to decide whether to reuse the infrastructure capacity built by other teams or to build from scratch. There are several mature audit systems with track records within the group. Each audit system is clearly positioned to address vertical issues:

• System A: The group’s most popular workflow system. Excellent process layout ability, but does not support complex page layout, polymorphic audit results and embedded various interactive components, synchronization does not support human efficiency and quality optimization;

• System B: a closed content review platform, which only supports the review of posts connected to the ecosystem;

• System C: audit system of security center, positioning as its name, mainly for content security to catch black and white;

• System D: used for knowledge annotation, does not have the collaborative ability of audit flow;

It can be seen that each system can meet part of the demands of the business, but cannot expand the boundary and change its positioning through iterative upgrading, so reconstruction is inevitable.

How is design and evolution affordable

It is equally important to demonstrate the necessity of building a new system and to control the cost of system construction within an affordable range. Affordability, not only in terms of whether the investment of human and time resources is affordable for the team, but more importantly, whether the iteration cycle is affordable for the business. The way to force the business to compromise with the system construction as a reason, even if the purpose is achieved, but indirectly lead to business damage, it will lose the watermelon and pick sesame seeds. In the process of audit system implementation, we mainly reduce cost and improve efficiency through repeated optimization of system design and evolution strategy, and support business development on time, quality and quantity to the greatest extent, while avoiding system corruption and improving iteration speed.

The system design

In the early planning stage, as long as time permits, you can spend as much time on medium – and long-term system planning as possible to keep the architecture reasonable. After the architecture is determined, the optimal version iteration needs to run through a long period of time. Adhere to some principles to help audit the system architecture and still iterate in the right direction without major changes:

• Microcore and plug-in design: Keep the core component layer clean enough to support the core process and plug-in containers that build the foundation. Extension functions for plug-in implementation; Reference and follow mature pattern: analysis and use for reference the experience of the similar system, mature system to precipitate the methodology of mature, even BPMS implementations such as group largely industrial standard BPMS a typical successful case, the XAP is a summary to the industry in the content audit process and practice, in theory and the perfect sex have very big function; • Restraint in scalability and flexibility: Do not over-design for uncertain flexible extensions. For example, the process engine used by BPMS is flexible and powerful and supports visual orchestration, which is useless in the community audit flow with only linear and finite nodes, but greatly increases the complexity of the system kernel; • Focus on breaking through the defects of similar systems: a system configuration is not unified, strong reliance on timing circle selection can not ensure real-time process, etc., these known problems can be solved well if they are paid attention to in the early stage; • Capacity integration: The vertical audit system mentioned above has supported part of the audit business of the Idle Fish Community. By connecting it to one of the node types of the process, the new system focuses on the capacity building of the current shortcomings, greatly saving the input of capacity completion;

Community audit system

After three iterations of the community audit system, the current overall architecture has not changed or reconstructed, but the plug-ins of each module have been supplemented to support more business scenarios.

MVP and evolution strategies

MVP(the most simplified executable product) only needs to complete the flow of the main link, from data access to work order flow, to complete the simple order sending and manual audit functions, which can already meet the needs of simple labeling and initial business audit, and each module only achieves 100% of the necessary capabilities:

• Access side protocol data protocol specification, support message input and output, with good fault tolerance; • A basically complete process flow kernel: that is, the abstract microkernel mentioned above, which needs to be basically completed in the first phase and guaranteed not to change significantly in the later stage; • The order only needs to realize the pull order mode, and does not need to support regular distribution; • Implement the most simplified customized audit workbench according to business requirements;

Community review system MVP version

The evolution strategy is the same as the PRINCIPLE followed by MVP. It is based on the business that needs to be supported in each phase, and it is abstracted into the specific position of the planning diagram and iterated gradually to complete the jigsaw puzzle of the big picture. The MVP version of the audit system was developed and launched in two weeks, which quickly supported the audit of idle fish community circle. In the following iterations, the connection of the security center was completed, avoiding the one-month scheduling and longer waiting time for the business side to directly connect with the security center. The subsequent iteration cycle of two weeks was basically maintained for each version, which quickly supported the subsequent requirements.

Avoid repetition

In daily work, while avoiding the rebuilding of wheels for various reasons, it is also the obligation to avoid internal behavior of rebuilding wheels in the same field as much as possible. Apart from the behavior of building wheels for the sake of building wheels, many wheels are caused by objective factors and can be avoided as much as possible to some extent: • Reasonable architecture and implementation: It is believed that most systems are designed to solve a class of problems rather than a problem. Often because of various reasons can not reach the ideal state, need to spend enough experience in the early design, keep the kernel open and close, plug-in function of the single responsibility, follow a good design pattern, and regularly review optimization; • Break down the information chimney: Summarize and think at appropriate stages, spread the word through sharing or articles, and interact with the outside world. This prevents other teams from starting from scratch without knowing the wheel exists; • Avoid smokestack systems: do not have sufficient open capabilities, in addition to completing existing capabilities and supporting existing businesses, no longer explore possible business convergence, and gradually become smokestack systems. In many cases, it is not enough to keep the door open. It is also necessary to take the initiative to explore demands, lower the business access threshold in various ways, access more businesses, and achieve a virtuous cycle of business support and iteration.

Here are two examples. First, in terms of the support for the internal business of the community, only RPC and message access in standard message format are supported at the beginning, which has certain understanding and access costs for the business side. The plug-in data adaptation scheme is realized on the data connection, and the search data source connection in the core business field is realized to complete the plug-in precipitation, and the review page of pluggable components is built for common subject types. In the demand connection of each domain, only data selection is needed, and the complex data grid format is not needed. In addition, the user authentication service ADAPTS heterogeneous information in terms of presentation form and annotation ability, and integrates common data sources into reusable components. Different authentication services focus on different data.

conclusion

Repetition is boring, and avoiding repetition and being repeated is a necessary part of every developer’s productivity and growth. Abstract from various dimensions of business, function and process, and fully investigate and demonstrate the necessity of new system, do a good job in the early design of versatility, scalability and function balance, in order to meet business demands, resource investment and business rhythm can bear as the criteria to develop MVP version and iteration version. At the same time, improve the openness of the system, take the initiative to embrace business and give full play to the maximum value of technology.