To sum up, he is not a parallel P8, I am a parallel CEO?

Editor’s note: This article is from WeChat public account “InfoQ” (ID: infoqchina) , author Tang Xiaozhi.

The new building moved into a startup company. The boss greeted the fruit basket and went upstairs to visit. He said that he had just received the investor’s money and was preparing to expand the team. At that time, he was full of ambition and hoped to shine. At that time, I thought that companies that could get investment in this environment should have promising products.

I didn’t expect to see it in the elevator a few days later, but I found that the boss had no previous style and was full of sadness all day long. He asked after the elevator saw me: “I remember that you are doing technical media, there is a question I would like to ask.”

The crux of his troubles is that:

After our company got the investment, the staffing is in place in time, and the speed of business expansion is still very fast. It didn’t take long for our technical team to tell me that the current business development momentum is better, the existing technical structure can’t keep up, and some technical cattle people have to recruit the team to be responsible for the overall architecture planning and upgrading.

I didn’t engage in technology. I used to hear about Alibaba’s P8 and P9 in various forums. The technology is so powerful. I think this level of programmers should be able to satisfy us. The demand. So I used a million-year-old offer to smash an Ali P8 to our team to do CTO, but now the problem is not solved, but more complicated. The technical team people think that his name is not true. He thinks that we are looking for him to be mixed, not happy, and two chaos.

I asked him, do you think he is not good?

He only writes Java, we use Go;

He will only engage in the backend, and the front end basically does not understand;

His algorithm is not good, we have to do recommendation;

He will only write the Web, we will do the App;

He only knows how to use open source tools, we have to make our own wheels;

“That is equal to him, which is not what you mean?” I asked him.

Yes, I didn’t think Ali P8 was so watery.

“But can you recruit the CTO that can refactor the system architecture and repay the technical debt?”

This… Is there a difference?

“The difference is big. You want to make the front-end and back-end all the time, but also to be proficient in various programming languages, but also to be able to engage in mobile development. What you want is a full stack, not a CTO. CTO is doing these things, you want to let a person who screwes the screw on the big factory line to block every hole, it is impossible.”

Could with my money?

“It’s not a white flower. BAT has a set of streamlined online and offline development management mechanisms. Generally, it can rise to P8. The possibility of encountering parallel imports is relatively small. Your problem is demand. It doesn’t match the direction of recruitment. You want to recruit this is a full-stack engineer. The technical experts of other big factories are assembly lines. The difference is big. You listen to me and analyze and analyze with you.”

1, Dachang programmer: Screwer working on the assembly line

Software engineering has been an industry that has been in existence for more than 50 years. Software development has been a very mature and mature industry under the wave of the Internet. In the first-line Internet companies, such as Silicon Valley’s Google, Facebook, Amazon, such as China’s Alibaba, Baidu, Tencent, etc., its software development is already a streamlined operation.

As for the Alibaba mentioned in the previous article, as one of the most representative Internet companies in China, Alibaba’s software development has formed a scale effect, which is directly reflected in the software development model is a complete Pipelined work.

Processing and standardization are the biggest features of Dachang software development. A complete requirements development process is as follows: 1. Pre-review, review; 2. Summary design and review; 3. Test case writing and review; 4. Development; 5. Test and bug fix; 6. Release; Summary / Summary of the project process. In the process, each developer has his or her own duties, screwing the screws they are responsible for.

A lot of newcomers, after joining the technical team, usually have a senior employee as a senior to help them integrate into the work and master the technology. In general, the tasks of newcomers at the beginning are written from simple programs, such as migrating part of the system code (migrating from the upstream system to the downstream system) and doing some simple small requirements (Such as modifying bugs, adding a field, etc.).

These requirements seem simple, but they are not. Because even if it involves a line of changes, you need to carry out a large number of tests to cover, many people think that these should be tested, but in fact, the test can only be carried out for the black box test, and the test program for the code must be better than the development So the tests on these details are all done by the development self-test. Therefore, often changing a line of code, development may take half a day to test in a variety of ways.

Not only the test, the Ali technical team started a big organizational restructuring around 2016, which is to hand over the daily operation and maintenance work to R&D. The original PE (Production Engineer) either transferred to the tool platform to develop, or as an operation and maintenance expert to do product planning and design, and some can not adapt to just leave. This is the most important process for Ali Yunwei from tooling to automation.

Scale, process, automation, these keywords are put together, you may think of the production workshop at first glance, but in Alibaba, this is an effective solution of its technical team for many years. Software development model.

Alibaba is a business-driven company. The project has priority in business and its importance to the team is self-evident. In Alibaba, this is a matter that requires multi-person development and teamwork. For large Internet companies with a large number of R&D personnel, the front end should look for the front end, and the back end should look for the back end. After the scale, the requirements are not all talents, but professionals.

The bigger the Internet company, the more the programmers do the more mechanical, the screwing work of adding, deleting, and checking on the software development pipeline, but these people passed the “interview nuclear bomb” before entering the job. “The general screening came in.” The higher the level of technical experts, the less likely it is that parallel imports will occur. Similarly, he will not be able to become a full-stack development for a small company. Whatever results will be a little bit, that is, nothing is fine.

After the product scale goes up, the complexity of each module is very large. The whole stack may not be suitable. After the scale goes up, some projects must be split and maintained by special personnel. The existence of the whole stack is of little significance. Big companies pay attention to special posts, you just have to do your own thing, even if you leave, it is relatively easy to find someone to replace you.

“So you want to dig an Ali P8 to do the full stack your company needs is unrealistic, you just can’t solve the problem of burying the line.”

The technical adjustment of the small company?

2, full stack development for small companies

“People mention the ‘full stack development engineer’, everyone’s impression is: this person is a great god! There will be a lot of technology, the front-end and the back-end are all proficient, and it’s not good to master seven or eight languages.Think out and say hello, all the hot technical terms are known, and they will all be a little bit, and everyone can talk and laugh.

Yes, right, we want someone like this!

“But, the whole stack engineer is more like a myth. Everyone’s energy is limited. You need people to be proficient in the front and back. You can write code and do test and operation. You can write the website. Write an app, can’t you go to heaven?”

Millions of annual salary has dug a P8 programmer, is it

The above is a not exhaustive technology stack that a full stack engineer should master. You can check how far away you are from the full stack, and then think about whether the whole stack engineer is a dream or a reality. . This is still the same as the replacement cycle of smartphones, which is like the replacement cycle of smartphones. The skill table shown above will add new components every layer every year, and new layers will be added every few years. Full stack, are you all over?

The whole stack engineer, to a certain extent, is more like Murong Fu in Jin Yong’s novels. When he first appeared on the game, he would be awkward. Later, with the development of the plot (business), it was forced to fall straight and was laughed at by the martial arts fellows.

In fact, startups generally prefer to recruit a full stack, which is related to the needs of startups, because companies in the early stages of an entrepreneur may need to work alone for a few people. In addition, it is possible that the boss is a technical origin and understands the huge communication costs that need to be paid for the connection between departments, so there is less communication unit.

For individuals and companies, the definition of the whole stack is different. The initial company must hope that the breadth and depth of the full stack technology can meet the company’s business requirements, and essentially just want to do it all. But for the individual, most ordinary people have limited time and energy. It is difficult to be professional in breadth and depth. If it is just to meet the needs of the company, the result is that the company has money after the project is developed. The whole stack is almost out of the way.

For startups, in order to suppress costs, the full stack needs to be fully understandable. After all, a good programmer is not cheap. It can be a good idea for a person to do two or even three people for cost control. However, explicit cost control, hidden costs?

“You didn’t think about it. When your project is at a critical moment, such as going online, or getting a bug on the line, this minute is a tens of millions of water, and your technical team lacks someone. There is a problem. You are rushing to find your full-stack CTO, but he said: Wait a moment, I checked this on Stack Overflow.What is the fault. Are you crashing?

呃…

” At the meeting, Stack Overflow is still good. If he is a full stack for Baidu programming, you will only cry.”

Further, a more complex project, if a full stack is gone, the project will be greatly affected, and it is difficult to recruit another full stack that exactly matches the project. We have seen too many startup companies because the key personnel of the technical team directly lead to the failure of the project, the more you want to save money, the more you can save money.

Listen to what you said, how do you feel that the whole stack is so unsightly?

“Never and no. You are the bosses, always think that they are writing code, there is no difference between the front-end and the back-end. Java and Go are no different. This is the biggest misunderstanding in itself. The full-stack engineer must have its existence. The meaning, but if you want the full stack engineer to do everything, 996 is not so embarrassing for you. The full stack engineer may be a future development trend, but now those resumes are written on the whole stack Programmer, the big probability is what you think is parallel.”

So summed up, he is not a parallel P8, I am a parallel CEO?

“Buddha, can’t say.”