Why is product and technology always so painful to communicate? Sometimes what seems simple to you can become complicated in the world of programming.

Programming language, it is a language after all, but its users are computer software and hardware.

Product managers and programmers have different thinking systems, language systems, and language contexts for understanding requirements.

For example, this demand: a pack of Chinese 45 yuan, the production manager gives you 50 yuan, ask the programmer to buy a pack of cigarettes to bring back the 5 yuan change.

The product manager thought it was very simple, one sentence.




For programmers:




· Is 50 yuan fake money?

· If not fake money, where to buy cigarettes?

· If you go to Xi ‘an to buy cigarettes, the place selling cigarettes in Xi ‘an is closed? Do you go back and tell the product manager that the place is closed or do you keep looking until you find one that’s open?

· If a pack of Chinese here is 40 yuan, or a pack of Chinese is 50 yuan, do you buy it? No matter how much money? Or ask the product manager for approval before buying?

· How to tell if the cigarettes bought are not fake? Or buying a pack of Chinese regardless of whether it’s real or not?

· Should I mail it to the project manager after purchase? Or did you bring it back? Or have a colleague drop you off?

· What if the product manager thinks it’s too expensive to buy a pack of Chinese for 50 yuan? If you bought a pack of Chinese for 40 yuan, do you refund 5 yuan to the product manager or 10 yuan to him?

· What if the product manager insists on 45 yuan of Chinese currency?

· What if the product manager suddenly doesn’t want the cigarettes and asks you to return them?

· What if the cigarette seller does not return it?

· What if the product manager tells you to return it and buy another pack somewhere else?

· What if Lao Wang who sells cigarettes quits, but there is no other place to sell cigarettes?

· If you find another place to sell cigarettes, and a pack of Chinese is also 45 yuan. Bring it to the project manager. The project manager heard that you bought the cigarettes from Xi ‘an. What if he wants to smoke the cigarettes from Beijing?






You’ll find that the questions never end.

You might say programmers are too brain-dead. Wrong! Product manager said, China 45 yuan, give you 50 yuan, buy change 5 yuan. This sentence is established in a systematic context, human living habits, common sense of life. The subtext of the product manager is to find the nearest one that sells cigarettes and buy a pack of 45 Chinese cigarettes that are not fake cigarettes and give me five dollars.

A programming language is a language whose users are software and hardware. For the computer, it has no emotion, does not understand the human system language environment, living habits, common sense of life.

It just follows its language rules and compilation principles step by step, honestly, without showing anything.

If there is no disagreement, all is well.

If there’s a disagreement, it’s over.

Computers and programming languages lack any of the instincts that humans have evolved over millions of years to be on the fly, to act on camera and so on. It looks for the programmer to write the program, obediently listen to your program, where to hit which.

Artificial intelligence is just a programmer programming into a computer every possible problem that a human might face.

If something unexpected happens and the program works perfectly, if something unexpected doesn’t, it’s a BUG, it’s an error. These bugs and errors require the programmer to fill in all the subtext beyond what the product manager calls “requirements.”

If the programmer is on his way to buy cigarettes, the product manager calls and says, come back with $5 to buy a bottle of water. Then all the logic programmers have to do it again. If the product manager calls later to buy another loaf… That would kill the programmer.

From the requirements side, then from the programmer coding implementation side.

Or just demand: product manager to programmers 50 yuan, let buy a pack of 45 yuan of Chinese cigarettes, get back 5 yuan money.



Programmer a listen to, write dead inside the program, go west street from line 1, buy smoke again along the road 2 return.

But on the way, the product manager said you should bring back some snacks.

Programmer dumbfounded!!

Okay, we can only program it from line 2.

Just think, from the middle school began to learn English, middle school three years, high school three years, college four years, ten years down, how many people can face foreigners speak standard English?

The same is true of programming languages. Some programmers who didn’t study programming in college, or didn’t even study computer science at all, took a few days of training, knew how to program, and could write if/else/for, were forced to start commercial programming.

Writing a program must mean typing somewhere. I don’t care.

Such a program, fragile dare not touch, a change is to life ah.

The last aspect is: domestic software development, development process is not perfect. If you have a job to do, do it right. Final requirements are poorly understood, project cycles are longer than trains, and project costs remain high.

Sometimes when you think about it with your chin down, programming is an art.