当前位置:网站首页>Hungry for 4 years + Ali for 2 years: some conclusions and Thoughts on the road of research and development

Hungry for 4 years + Ali for 2 years: some conclusions and Thoughts on the road of research and development

2022-07-06 08:17:00 Non famous programmer

c442ab22cb4c74a6cfbdd17a0cabcbce.png

author | Shi Jianing

“ The most important thing is to choose , The most difficult thing is to stick to .”

I was in 2014 You're hungry when you're in , From the front end and PHP Always do back end architecture and team , from 2014 Year to 2017 I was responsible for the company's customer service 、 sales 、 Agent 、 payment 、 Settle accounts 、 Order these business research and team ;2018 From the business R & D team ,6 Individuals form a group and engage in machine learning , Try to combine the actual business scenarios to transform the business through technology ;2019 Back to the platform ( Zhongtai ) Research and development , In charge of trading 、 Finance 、 Marketing, R & D and team work of the three centers . Based on whether I'm hungry 4 And Alibaba 2 Years of R & D experience , From a technical 、 Business 、 Share some of my thoughts on management and Architecture .

Technical level


For development students , Technology is the foundation of the body , Although often interview building rocket entry screw , But there's no denying it , Technology is the cornerstone of your business . Whether it's basic hands-on ability or problem analysis ability , Including your thinking logic and even the ability to recognize things , Technical thinking will affect you all the time . The most obvious effect is when you are faced with the nails of countless problems , Is technology your favorite hammer .

I focus on several technical aspects :

  • Basic skill ( Language 、 Coding level , It's mainly hands-on ability )

  • Practical experience of large-scale distributed system (RPC、SOA、MySQL、Redis、MQ)

  • project ( DB Design 、API contract 、DDD abstract 、 Link design 、 Project risk control )

  • stability ( You can use & Asset loss )

1. stability

Stability is a matter of consciousness before ability . Remember in 2015 At the beginning of year , Zhang Xuefeng joined the post of hungry CTO after , One of the most common words heard from him is “ R & D should be in awe of the production environment ”.

2014 In the second half of , People from all walks of life began to enter the takeout market , Are you hungry? Start the plan of 100 cities for business expansion , From... In a short time 10+ The city covers 100+ City , The daily order volume also quickly changed from 10 Wan rose to 100 ten thousand . Business blowout at the same time , The technology is not ready enough . I have the impression that ,2014 In the second half of the year, the trading volume almost reached a new high at noon , But it's also accompanied by system downtime 、 Current limiting capacity expansion 、 Emergency tuning 、 Customer service line burst 、 Technical overtime and staying up late .

I have seen some customer service students suddenly collapse in Xinxiang's customer service center , The earphone falls down and leaves the station , Because we will receive a large number of calls from users every day , At that moment, in fact, you will feel clearly and intuitively : Every line of code you have in the editor , Every time you publish on the server , It will have a direct impact on many living people in the real world , You'll suddenly realize that your work is more important and meaningful than you thought before .

The so-called R & D should be in awe of the production environment , It's that you know your work will have a bad impact on others , You will feel ashamed and guilty for the bad results , This leads to awe . There is a basic principle for emergency response :“ With the least business impact , Priority recovery is the core purpose , Don't get entangled in means and causes .”

ae43b223728793e0a15611bd07965fd6.png

Don't take your regrets 、 Determined to 、 Thinking about stability 、 All kinds of wonderful idea And the executive power is reflected in the accident review meeting , The safe production of the system is the same as fire , It makes sense in advance .

2. Link design

Most industry research lacks a full link perspective , What you often see is your own responsibility , But you can't see a line or even a whole face , There's no chance to think about it , For some large projects and long link systems , This is fatal .

My advice is , For the system you're responsible for , Its key upstream and downstream 、 The links of core services must be familiar with , Including data 、 Interface ( call 、 function 、 Logic )、 Various exception handling and special design . The easiest way to do this is to drawing 、 drawing 、 drawing ! Say the important conclusion three times , Make sure you can draw a big picture of the system , And then you can zoom in and out according to the big picture . Zoom in to draw the link to the business scenario , Highlight business logic and interaction between upstream and downstream , What is the processing logic of narrowing down to a call , How does the data change .

Always draw pictures , Don't tangle with form and standard , It's important to form a framework for your own understanding of the system , One's own way of thinking , You can use it when you need it .

Daily whether it's talking about requirements or doing system design , Get used to drawing , It's half done . The rest of the rest is going to look at the picture and think about it 、 Find the problem .

3. Technical debt

Never lie to yourself that , Now dig a hole for this need , Come back and fill in after a while ( restructure or redo ).

Technical debt is the same as financial debt , It must exist , And will be like a rascal all the time , It's going to explode every once in a while . As time goes on and the business grows , You'll find the architecture more and more confusing , The domain boundaries of different systems are increasingly blurred , The mapping of systems and requirements to organizational relationships is becoming more and more complex , Increasingly inconsistent coding risk control within services , One by one, the wheels of repetition appear covertly .

 “ I'm too busy to sort out the problems ”、“ To solve those problems, both upstream and downstream should be corrected together , laborious , can't move sth. by pushing ”、“ It's not a problem yet , And it's being sorted out , Don't rush ”. It's a voice we hear all the time . Actually , Technical students are a little bit of code cleanliness , There are many problems not to be dealt with subjectively , But objectively, it's because of energy 、 Time 、ROI Other factors , It's often a matter of waiting for a problem to break out , We can deal with those problems with great care .

I used to deal with technical debt , It's about having a checklist , I will review all the systems on a regular basis , And combined with the accidents of their own team and other teams to complete mine clearance . The system itself is a product of equilibrium , Is time 、 function 、 risk 、 The result of the balance of several directions such as the possibility of the future . So the test of technology debt for R & D students , It's not about how you guarantee the technical debt of the system in your daily work 0, It's about assessing clearly, with limited resources and time , Which problems are urgent , Which questions can be put back .

It's hard to imagine that a team without technology can develop a robust 、 Good maintainability 、 A scalable system . contrary , This kind of business code stack , In the short term, it may be “ Faster ” Realized the business requirements , But in the long run , The increase of this kind of bad system will greatly hinder the development of business , Form a black hole application , Engineers are caught between business requirements and bad systems , Tired of coping , Burn out . This accommodation will lead to the corruption of the system , The technical debt goes up , Ugly code grows crazy , It consumes all your energy like a tumor , And finally your life .

4. Watch out for big projects

Not everyone has the ability to handle big projects , Not everyone can balance the delivery pressure 、 Online quality 、 Product logic and time window , It's a very challenging job , It needs a lot of soft abilities besides pure technical ability to assist , For example, the communication and cooperation ability of the organization 、 The ability to ask for power and responsibility 、 Ability to balance product business expectations 、 The ability to change in case of emergency . The bigger the project is for Owner The higher the requirements of , How can we do a big project? How can we leave a big hole .

The time taken from start-up to project approval of a large-scale project is often far beyond the actual development cycle of the project , The smooth progress of the project needs “ compromise ”, But the success of the project requires persistence . Many projects fail , It is in the process of doing that that the Chinese side constantly compromises , The final product is far away from what it was originally intended to look like .

Business level


Besides technology , R & D students also need to enhance their awareness and attention to the business level .

For research and development , Business is like a foreign language , You don't understand business as if you were in a foreign country , Out of tune with the surrounding environment , And easy to lose ! Compared with products 、 Business 、 Operation and other types of work , Technology prefers to deal with technology , Business in the eyes of most students is chaotic and lack of order , There is no clear realization path and stable consensus knowledge structure as technology . And technology is relatively easy to falsify , And business is always trying , Research and development hate “ uncertainty ”. But in a large organization, you want to do the technology well , You have to deal with business , After all, business is the core value of a company .

1. Technical planning based on business planning  

Many students are used to equate planning with planning . Ali is a business company that respects Technology , All the teams are talking about business 、 In the plan is the business plan 、 It's a business project in the weekly newspaper 、 It's business results in the report 、 When you are promoted, you should also highlight your “ Military exploits ”. Compared to the technology itself , People are more concerned about what technology has changed , That's why we talk about how the technical team plans in the business section , This is the starting point of the company's operation ( Purpose ), Only when it is extended can we have specific technical planning and organizational design as solutions .

Deeply understand the business and design strategy , Dismantling campaigns and projects , Ensure the implementation and implementation of the project through organization and various mechanisms , Finally get the business results , This is the standard way for a big company to execute its strategy . When R & D students do technical planning and team planning , Be sure to consider your environment , What will the company focus on this year , What's the goal of your big department , What is the status quo of the corresponding products and business , What are the business benefits of pure technical iteration . in addition , What force majeure does the team have at present , Or resistance to planning .

When many students do planning, they will habitually follow this idea :① Summarize the status quo ( Pain points )  ② Corresponding solutions and Strategies    ③ Looking forward to the future . occasionally ② and ③ In reverse order . Most of the time, we find that the final Department planning has nothing to do with the planning you make , I don't know how to force in which direction , Or just go ahead with your plan .

For most students , I suggest that planning be realistic . Before doing technical planning , Talk to the R & D team around you , Find your product 、 Let's talk about the operation , Know what their goals are , Know what the company's priorities are , And then combine your current pain points , Find a balance between the present and the future 、 Find the part that's profitable now and in the future .

The planning needs to include some hard and fast content , For example, what problems should be solved by this goal , How to make sure it's solved , Is it a good solution , Good results, who will approve, etc . Planning must be focused , No point, that's not planning , That's the schedule . Many students are not involved in planning , They have their own “ idea ”, For example, the company's business or strategy changes too fast 、 Too many organizational adjustments , In the second half of the year, it's not sure which team to work on or even what to do , So planning is not serious . There is no denying the existence of frequent changes , And the impact of this change in organizational structure on Planning , But if you keep thinking like this , You can never get value from change , Because you've been out of it .

2. R & D should understand business better than products

Lei Jun said :“ Never try to use tactical diligence , To cover up your strategic laziness .” For R & D students , You have to understand business better than your business classmates , In order to find a balance between technology and business . For most students , It's often just familiar with the system you're responsible for , But for students who want more space and more growth , I can draw a clear conclusion : It's not enough to be familiar with your own system .

First , Different people have different definitions of familiarity . Be responsible for you 、 You contribute code 、 The system in which you design and deliver requirements , Familiarity alone is not enough . You don't just have to know its past and present life , Think about the way it's grown , Entangled in its future development , At the same time, we should be clear about its risks and hidden dangers , Its life and death .

Based on the core system you know best , From it to do business scene extension , To get to know your upstream and downstream , And can be combined with business scenarios to mine . From a business point of view 、 Link from product 、 From the perspective of technology optimization and hidden dangers , Let your own design dimension and perspective continue to rise , In this way, the scope of your assurance or control will become larger and larger , There will be more opportunities in the future .

Management level


Team is a macro and micro coexistence of things , On the macro level, we say organization 、 Talk about strategy 、 Planning 、 We need to line up , On the micro level, we focus on communication 、 grow up 、 mood . The reason why most students are frustrated at the micro level , It's because you can't grasp the macro rhythm . The company is a profit making organization , The technology center is a cost Department , The reason why the technology center has a certain organization , Then it must be :“ The company expects the organization to solve a certain kind of problem , And to a certain extent .”

So here you have to understand a key word ,“ Results and KPI” It doesn't depend on how you define it , It's about the expectations of the organization and managers who delegate your goals to you , Yours GAP Often it's not necessarily the difference in results , It's a gap of expectations .

1. Embrace change

In fact, most of the time you don't need to hug , Change will suddenly embrace you , Tightening your neck makes you feel difficult to breathe for a moment . Internet companies are changing fast , A lot depends on its business attributes , Compared to traditional companies , Internet companies can be faster 、 More clearly feel the degree of fit with the market , And adjust the strategy in time .

Combined with the experience of these years , To join Alibaba in the last two years , I have two core insights :

First, be sensitive to business development and environmental changes . If you can initiate change before it comes , So it's best to turn passivity into initiative . Even if you can't , We should also clearly feel and think about the driving force behind the change , To find the key power point , Let yourself adapt to change .

The second is the adjustment of work content brought about by changes 、 Adjustment of the reporting line 、 Team changes, etc , No matter good or bad , It's all relative in a period of time , It's not the absolute . When it's impossible for everything to go well , Adjust your mind , Let yourself jump out of your emotions , Paying more attention to the things themselves would be a better choice .

2. Adding people doesn't solve the problem

Even if you say “ You can't ”, But the action will be honest , Still want as much as possible HC, Hope to put more “ The core ” It's within your scope of responsibility to build a system of . Actually , From a management point of view , You can see if you have “ Effectively add people ”, Some technology Leader Don't care about new people Landing , It is equivalent to focusing on quantity rather than quality , The end result must be a mess .

From the perspective of absolute theory , It must be helpful to add people , You have more resources , There is plenty of room for turnover and operation . But from experience , In most cases , There is no final change in value ( The results of the project 、 Business success or failure ). Because of the development of the system 、 The promotion of the project is not just a pile of resources ,1000 Man day system, which is 1000 I made it in a day . In the real world , We are often not lost in the amount of resources used , It's about the direction and efficiency of resources .

3. Consciously manage upward  

This problem stems from two points of experience in the past : One is that I have experienced countless organizational relationship adjustments , I found that both myself and my classmates in my team , Compared with what they do and with or without people 、 How many people do you take with you , More focused on their own reporting lines . Who do you report to , Who am I Leader, I can't get along with him , Can he improve me 、 There is growth . The second is that many students will be interested in Leader There is confusion in our relationship .

Based on these two points , I've added upward management as a separate topic , Say first conclusion : want ! want ! want ! It has to be ! must do !

Even Mr. Ma said that one of the three elements of employee turnover is to work with Leader I can't get along with it , How can you just ignore it . If you are still in a submissive or even flattering attitude towards upward management to deal with your relationship , I can only say it's too young . I didn't systematically learn upward Management , I haven't read the book systematically , So I just want to talk about my understanding .

Individuals want rewards and benefits in an organization , The basic method is to promote the growth and improvement of the organization , And improve yourself synchronously , So you can share your share of the income from it . This requires that your output is a positive spillover to the organization , But this direction and standard is not clear to all or can accurately grasp .

Students with poor performance are often depressed and even complain that they often work overtime , Even the Department was the last to leave , I have to deal with work on weekends . Let's not talk about the background , If you hit the one above , Let me give you a piece of advice first : Except for factories that pay by piece , No physical effort anywhere else is directly related to the outcome . Just like when you go to school, there must be a few other children , Or it's hard work and good study , Or it's like playing with you every day , But the results always crush you . From school to society , This phenomenon has not disappeared , Don't be superstitious about overtime and physical effort , Most people just can't think about it , What you are willing to give physically , Far more than you and I can imagine .

And Leader Getting along and communicating , In essence, it's about achieving agreed goals and mutually recognized outcomes . It's a very critical original intention , I sometimes joke and talk to my classmates on the team , Said you should have a good look at my Leader What do you want , So you can do it , So I can report . Direction 、 rhythm 、 The focus of the results is crucial to the work and achievement , At the same time, you should get more information from him so that you can make decisions and learn , Keep getting nutrients out of them .

In some environments , Physical effort is necessary , But the only physical effort can only move you , Your team doesn't want to work overtime with you every day 11 At or before midnight 2 spot , No interest in the early morning 1 I'll hold a conference call at 30:30 to discuss the plan . So be sure to do well “ Expectation Management ”,Leader Expectations for you 、 Expectations for the project 、 What you expect from him to give you space and support , We must focus clearly , And the same goal . 

At the architecture level


There is another point that I think is very important , At the architecture level , Including business architecture 、 Technology selection and implementation of details , Be aware of it .

1. The most important thing is to define

Einstein said :“ It's more important to ask questions than to solve them !” Defining a problem is a mental exercise , Solving problems is individual effort . People are used to seeing a problem and rushing to hammer it , In terms of probability , It's very likely that you'll fall into a problem-solving black hole , It's that you're constantly solving problems , But in the end, you're not getting better .

When you are faced with a difficulty or a situation , First of all, it's more important to define , What the hell is this going to solve 、 What's the benefit of solving it 、 How to be sure to solve . The second is the definition structure , The key point of this problem is composed of , What's your solution , How to weigh the gains and losses , And how the effect of the final solution runs through and spreads through , From point to face .

A team can work without stopping , But it's not necessarily going to do well . Most of them are used to listing the problems they face , But there is no overall analysis and carding of these problems , In fact, the hardest part is “ To find problems ” On . 

2. The nature of the problem is not so profound

Sometimes we do a project , There may be a product requirement , After reading it, we think it's not easy to do or can't do it , Because the system doesn't support , The cost of retrofitting is too high , And there are a lot of uncertain technical risks . I believe that very few people in this situation will have no brain request to add people 、 Processing time to solve this problem . Most of the time we'll see if there's a shortcut or something else , Let the product effect achieve , Even if the technology is dirty 、 Go around some .

In fact, at this time, we should dig more horizontally or ask more questions , There may be different answers . This requirement is to solve the user's problems , The current solution is not a business ( product 、 technology ) Unique , What costs and new problems will this solution bring , Will other projects currently under way be related to this issue , Is there any other team that is working on a similar problem or has ever solved it .

3. Achieve the goal

In the middle of the job, you can order one API contract 、 From medium to online, a requirement 、 Big enough to complete a promotion , There are ways to succeed in everything . Find the short board 、 Set a plan 、 Resist setbacks 、 Train repeatedly 、 Tune... Based on feedback , You can solve any problem .《 The debt crisis 》 The author of —— Bridge Water Fund CEO Dario summed up a five step approach to success , It is interesting to :

212205910ef5b637903d86b9e4ea5f2d.png

The famous great mathematician Polya had a famous book 《 How to solve problems 》, There is a four step solution , Maybe from the perspective of R & D, I feel more :

25566c0cd1897ddde56a13835344c7bd.png

4. Continuous learning is fundamental

The times are constantly developing and changing , It's a magnificent time , In this environment , No matter how much is accumulated at present , It's possible to drop to the bottom in a short period of time as the development changes . The company can grow , It must be very suitable for the environment in a certain period of time , But over time , If it doesn't change with it , Then it will only be abandoned by the times . It's what makes you successful , It's going to make you fail in the end , Like Kodak 、 Nokia is not immune to , The individual cannot escape such a rule .

In this case , Continuous learning and the ability to change themselves is the biggest R & D students 、 It's also the strongest advantage . The rapid change of technology itself requires you to keep learning , The same habits radiate to all fields , Will slowly learn from each other , Optimize yourself , So if we say what R & D students need most , I think continuous learning ability is the key .

Just like hungry? Founder Wang Yuan had a sentence in an interview before , It made me unforgettable : The most important thing is to choose , The most difficult thing is to stick to .

Click on the official account card below. , Pay attention to me

Official account dialog box , Reply key  “1024”

Get a free practical tutorial on making money from sidelines

原网站

版权声明
本文为[Non famous programmer]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202131832503434.html