How do programmers make technical planning?

How do programmers make technical planning?

1 Introduction

With the continuous improvement of programmers' experience and qualifications, they are no longer satisfied with moving bricks in daily business, and must continue to work hard in the direction of technological innovation. For low-level technical students, perhaps the above optimization can do a good job, but for high-level students, the ability to think systematically is especially important, which requires technical planning. In an era when new front-end frameworks are constantly emerging, technical planning seems to be about the wheel of Dafa, no matter what is three or seven twenty-one, just try a new framework, such as RN, Flutter and other frameworks, the first batch of crabs can always eat Get a good bonus. If you want to pursue it again, just start anew and implement it yourself. For example, Weex is the Vue language version of RN, and it is also a mixed bag in the Ali system. However, in recent years, the new technology of the big front end has stabilized, and there are no longer so many dividends to eat. In addition, many companies also prohibit re-creating wheels. As business development, how do we make technical planning in the daily heavy business development?

2 What is technical planning

Planning means a more comprehensive and long-term development plan formulated by an individual or organization . It is the thinking and consideration of the overall, long-term, and fundamental issues in the future, and the design of a complete set of actions in the future. Planning is a development vision in a specific field that integrates multiple elements and views of multiple people . -Baidu Encyclopedia

From the definition of Baidu Baike, technical planning has several characteristics compared with daily technical optimization:

  • Integrity : Technical planning must be a systematic consideration of the existing system, and come up with a comprehensive and overall improvement plan, instead of staying at some specific optimization points
  • Long-term : The general cycle of technical planning is quarterly, semi-annual or even annual, which means that this matter is relatively long-term stable and needs to be continuously promoted
  • Directionality : Technical planning needs to put forward a relatively long-term goal for a certain direction, and design a comprehensive development plan and action plan

The significance of planning is to give a long-term goal and act as a beacon. Maybe it is not possible to find the right direction at the beginning to get the desired result, but by setting planning goals and milestones, we will continue to do accumulated things. , In the end, the desired result can be obtained.

3 How to do technical planning

Preliminary preparation

  • Business analysis Technology is not a castle in the air. It must serve business scenarios. This requires technical students to deepen their business understanding. There is a saying to deepen business understanding. The summary is: "From the perspective of the business side, under the premise of understanding business development goals and seeing the business development direction, make a balance between technology and business. " Therefore, the first thing to consider in technical planning is business value . Don t plan for the sake of technical self-confidence. Plan for the sake of planning. You must think about what this event will bring to the business.

  • Industry benchmarking When you want to solve a problem, you have to believe that you will not be the first to encounter it. Maybe the industry already has a good solution, so you need to make sufficient preparations in the technical planning , and fully research and see others. How to solve it, whether it is suitable for your scene, compare more benchmarks , and then start to do it. Technical students often have the urge to do it on their own, and they often feel that they have a sense of accomplishment by making wheels to solve them. In fact, if you can use mature solutions to solve the problem at the least cost, wouldn't this be more effective?

Set goals

Generally, when setting goals, follow the SMART (S=Specific, M=Measurable, A=Attainable, R=Relevant, T=Time-bound) principles. You can compare the target principles one by one to see if your goals are in line.

Of course, setting goals also need to consider some factors:

  • income : The goal must be to obtain business benefits, such as income, efficiency, and experience. Don't set a goal that can't clearly define the benefits.
  • technology : From a technical perspective, it is divided into three levels: existing expansion or in-depth exploration, exploration of new directions, and trend judgment. The more you go to the next level, you will test the technical judgment ability of technical students. This requires a lot of accumulation.
  • Team : Is the goal affordable by the existing team manpower? Can the team be able to support it in terms of technical capabilities? For example, building a mobile operating system may not be something that a small and medium-sized company can consider. Perhaps only large companies such as Huawei and Alibaba can implement it.

An example of a technical plan setting goals:

Reached within xxx time:

  • xxx system availability 99.99%
  • xxx system online failure <x
  • xxx system response time 90 lines <x seconds

Task decomposition

After the goal is set up, the goal needs to be dismantled to form an executable plan. There are several points to note in the process of task decomposition:

  • Panoramic view Task decomposition is not without rules. This is especially a test of the technological leader's overall view of technology. It is necessary to have a broad vision to see the panoramic view of the whole thing in order to be able to dismantle better at the macro level. Take the Web front-end technology system of Meituan Dianping's financial platform as an example (picture source: tech.meituan.com/2018/03/16/ ):

    I believe that having this technical panorama will be very helpful for task decomposition when doing technical planning. What you plan to do can be easily split layer by layer according to the hierarchical diagram, or split according to different framework systems. At the same time, you can also set the subdivision goal for a certain layer or a certain framework module to make the goal more accurate and easy measure.

  • Clearly executable The sub-tasks that are split need to be clearly executable . The sub-tasks or sub-goals must also follow the SMART principle. At the same time, the split is closer to the final landing result, easier to execute, and easier to measure in the future.

Implementation plan

After the task is decomposed, the execution plan is developed. This is the same as the business requirement. One thing must be broken down, the working hours are evaluated, the people are arranged, and the project is scheduled. There are several points to note in the execution plan:

  • Set milestones

    For a long-term technical planning project, after the task is dismantled, it may be divided into several sub-directions or sub-projects for parallel development. In addition, the cycle is long. If you have to wait until all are completed before verifying the results, it will often be Produce a very large deviation. The establishment of milestones is very important. On the one hand, it can encourage confidence in the team's phased victory results. On the other hand, it can quickly verify the small steps and fast walks to avoid major directional errors.

  • High-risk projects For high-risk projects, it is necessary to adopt a quick trial and error method, take small steps, and quickly produce results in stages. First do a demo for technical verification, then try on a small scale, and finally settle into an application.

  • Plan setting Technology can be set up first and then loosened. Project management can be divided into stages according to time. Monthly plans can be refined to weeks or days, and long-term plans can be refined to months. The granularity of task splitting and estimation should also be moderate. Everything that is split can be tested to verify the effect, but at the same time it should not be too large (1~3 days workload is best), which can increase the workload. The accuracy of the estimate, and future plan adjustments are also more flexible.

risk assessment

During the implementation process, risks need to be continuously evaluated. Risks are divided into two categories: technical risks and management risks. Technical risk: In the early stage, you need to evaluate the technical feasibility, combine the team skills and echelon situation, fully research the best practices in the industry, and find a suitable technical solution. You must remember not to be dazzled by "subversive" ideas . Management risk: Whether the team is adequately staffed and whether technical requirements cannot be sustained due to business peaks and valleys. This needs to test the technical leader's judgment on the future business, and at the same time fully communicate with the business team, and reserve some fixed proportions of manpower for technical needs to ensure The long-term nature of technical projects.

execute thouroughly

During the execution process, the project reached a milestone. It is necessary to stop and conduct a summary review to see if the current position is getting closer and closer to the target, and whether there is any improvement in the review process, and at the same time adjust the plan according to the current status. Develop improvement actions. Planning is to better adapt to tomorrow's changes .

4 Summary

Technical planning includes clear goals , task decomposition , execution plan , risk assessment , and implementation five links . Each link requires careful consideration by technical leaders. Technical planning is not only a superficial matter, but also a down-to-earth thing. Grasp the details to land. Finally, when everyone mentions technical planning, all kinds of tall, cool and explosive technologies are always floating in their minds, and they disdain those dirty work. But we need to think carefully and return to the origin of technology. Any technology serves the business. How to choose the right technology and reflect the business value is really worthy of your students' pursuit and exploration.

---Gorgeous dividing line--- The first advertisement: Meituan Dianping Shanghai team recruits senior/expert engineers at the front-end, interested students are welcome to submit their resumes to wangdan53[AT]meituan.com

For the second advertisement, interested students can follow the WeChat public account Daddaddy and Code Farmer , and share information about investment, financial management, IT, etc. from time to time: