Ignorance and fearlessness-conversations between Chinese programmers and Indian programmers

Source: Internet
Author: User

A project manager who has been working in ibm usa for two years and has been working in India for four years has had such a conversation with our Senior Software Development Manager.

The printing manager asked: "How many lines do you produce each month ?"Code? "

Our manager has spent a long time, modestly saying, "more than 10 thousand lines of code per capita, less than 20 thousand lines ".

After hearing this, the printing manager gave his eyes wide and round: "Oh! You have already exceeded the highest international standards. "

Our manager repeatedly asked, "What about you? "

The printing manager seriously replied: "Our company currently has 300 million lines per person per month. "

This is a real story. I want to give the same answer to other people (including me.

Why is there such a big gap with software giants?

First, we do not have the concept of productivity. This is the case for most people. Compiling 400-500 lines of code a day is not just a piece of cake. If there are 30 days in a month, isn't it easy to renew more than 10 thousand lines per month?

As everyone knows, there are two fatal mistakes in this great assumption: first, there is no time to consider demand analysis, outline design, detailed design, unit testing, integration testing, and system testing, the document time is not taken into consideration, or even the process may be unknown.

This is not a joke. Can we analyze our needs? Do we have a unit test? We have programming specifications, but do we comply with them?

Our code is very green and the style is amazing ――

Didn't we see "the development is complete and there is no document design experience?

Didn't we have the experience of "turning to a pilot project, and all the talents begin to write documents?

Didn't someone write in this document that "the software has no harm to humans and animals?

Of course, we are even more likely to think of the review time without considering quality control at all?

We are most familiar with writingProgram, System testing, maintenance, and others are redundant. This is a typical small company guerrilla warfare practice. If a person is engaged in a small software program, no process is required, no quality system is required, and nothing except code writing and testing is required, it's easy to think that you can't do it. It's easy. "management is awkward, and the process is troublesome." But everyone knows what the actual result is.

Second, if you can write 100-lines of code a day, it does not mean that you can write-lines of code every month on average. The principle is simple. A person's-meter speed is 12 seconds, it does not mean that his 3000-meter speed is 6 minutes. We are not robots. writing software requires consideration. Writing embedded software requires quality in particular.

India engineers are people and Chinese software engineers are also people. Where can we go with high code productivity and level? Just as everyone is a mortal, you suddenly say that you are faster than a bullet, three floors high.

This is really "ignorant", "Fearless "?

In fact, our productivity is very low. I don't think so. Many people don't trust our public figures-the monthly production code is only 120 lines? If we calculate all the manpower and time in all stages, we will not be surprised by this data. If you don't believe it, Let's calculate a product! Maybe our manager doesn't know how much manpower is invested in this product. Does Huawei have professional software development and management talents? At present, there are almost no programmers. Maybe we really have 20 thousand million lines of programming experts in a month, and many "bubble" experts who think they can write 20 thousand lines of code, but we don't have any really professional software talents!

At present, our company is selling very well. But is the project developed successfully? No, it may be more about the success of the market and the success of the Product Pre-research personnel. How can we calculate the success of having to spend so much maintenance cost in the lifecycle? If we build a plane, we may not dare to sit on our own. What are the criteria and elements for measuring project success? Many people do not know. Infosys, India's fastest-growing company, tells us that the success criteria for a project are "quality, cost, and progress? Quot;, an important condition for achieving this goal is "process, technology, and people ".

When we plan, we only have progress. We may consider the cost, but never consider the quality. Do we know what quality activities are for project development? We don't know. Do we know our quality objectives? We do not; do we know how to control our quality? We have never done this.

That's why we are not afraid. But if we know that "discount" costs 1 million at a time, will we still be "off" without fear? Let's look back at some industry standards: an Indian company has passed the CMPs 5, and the productivity of the joint development project is 400 lines per month. In the coding stage, Indian engineers can write 200 to 900 lines of code every day.

During 4 months of joint development ――

Our excellent engineers are similar to each other in coding speed, but others have taught us how to ensure the consistency of code specifications and programming style;

In terms of reading protocol standards, the speed of the recipient is 4-5 times that of ours;

In terms of design, the other party has obvious advantages;

In quality control, we have no way to compare with them;

In terms of prediction, the estimated workload of the other party is 36 person-months. We estimate that the workload is 22 person-months, and the actual workload is 35 person-months.

Through comparison, my conclusion is: we are rich because we have many bugs; we are fast because we do not have a quality system.

Some people think ――

The Configuration tool sourcesafe is used to know what configuration management is;

Draw a Cantt or PERT chart to know what is going on in the Project Plan;

Enter the form to manage;

A meal is communication.

If you do not know the quality as a whole or why, you can "understand", "speculate", and "know" others based on your past experience, it is strange to have such a huge gap in understanding.

At present, the company's training and implementation in the quality system are continuously strengthened, and India's experience is continuously promoted. In many aspects, such as process construction, prediction, quality control, and measurement systems, we have a preliminary understanding of how to do this. But we need to constantly publicize and let everyone know that they are ignorant. Only in this way can we change from "Ignorance" to "Knowledgeable ".

"I'm a little brave", and I don't want to hear such bold rhetoric in the future? Quot; our monthly code is 10 thousand "!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.