Discussion in software development management
Wu Yu
Taiyan Network Studio
Most software developers know the power of algorithms, but countless failed projects show us the difficulties that one textbook after another cannot solve. The continuous development of software management methods is striving to avoid project failures. In fact, they are spared no effort to crack these dilemmas. Today, we will repeat these questions from the perspective of the discussion. Maybe you will feel that the sky is so bright!
I. Who's the bug?: "Zhipibo Bo Yi", how much effort is not enough?
For a while, I kept communicating with several teams and defining which side is responsible for interface bugs. For some reason, no team is willing to take the initiative to find out the cause of the problem. Instead, they all say they are okay. As a result, the problem was kicked as a ball. All the teams believed that someone could not help it. At least the person in charge would come forward and ask someone to define it, so they were not in a hurry.
The story of "smart pig Bo Yi" also says that if only one person is active, but the benefit is shared by everyone, other people will be waiting to enjoy the benefits. The solution offered by Dr. Bo is to modify game rules to make people who are able to enjoy the game pay some price. For example, part of the performance of a team proved to be problematic is distributed to the team that actually solves the problem, then everyone will not feel that they are okay and enjoy it.
Ii. Excessive mobility of capable people: information asymmetry, "bad currency expelling good currency "?
In actual work, we found that some so-called "old employees" in some companies are mediocre people, and even those with strong abilities will leave quickly. In other words, it is difficult to stay human. This is the same as the proportion of copper in ancient China's copper coins should not be too high. If it is too high, it will lead to the theft of casting and profit.
Another analogy is the second-hand car market ". If you want to buy a second-hand car, but you do not know how much the used car is worth, you will feel that the lower the price, the better; but a good second-hand car price cannot be too low, as a result, the second-hand car market really only has a bad second-hand car deal.
The lack of an effective isolation mechanism is the key to this problem, and the solution also starts from here. If the buyer knows exactly the information about the used car, then he will know how much he should pay, and there will be no strange circle of lower prices, the better. Similarly, if the company knows the differences between strong people and mediocre people, and can give a reasonable positioning, then everything can be solved!
3. No one dares to point out the mistake: "the prisoner's dilemma for multiple people". Isn't it enough?
Sometimes almost everyone knows where the problem is, but no one stands up. Blame these people for being spammers? Wrong, because at this time people were very rational: I said, I pointed out that it is very likely to be retaliated against, "shooting out the head!
"The prisoner's dilemma of multiple people" means that the individual's rationality is sometimes opposite to the group's rationality. In a high-pressure environment, everyone dared not speak, so everyone could only watch another unavoidable tragedy.
One way to solve this problem is to establish good communication channels. In particular, a team that has never had a democratic atmosphere has a long process, from not speaking, to being able to say but not talking, to being confused, to being able to say and speaking.
4. Programming for (demand) changes: "Dynamic Information game"
In software development, users often encounter endless demands, and the other party still feels that you are not enough to cooperate with each other and do not regard them as God! But the truth is, you are tired and dying for this money!
This is just like playing "Quiz". If you want to win, you have to know what the other party is. This is what I mean by "Change-Oriented Programming. If I know in advance what changes may happen to the user and make appropriate deployment in advance, the problem will be much easier. The premise of cracking this dilemma is to fully understand the ins and outs of the demand. You can only calmly deal with the problem if you predict what "cards" The user may give in advance!
5. Conservative collaborators: "path dependency in evolution"
There are several partners in an aerospace project, but the operating system used by one of them is still Windows 98! Other partners complained about this because Windows 98 should have been replaced, regardless of speed or stability. But this party said that its program has been used for more than 10 years and does not want to change it! So, in order to ensure that Windows 98 may fail, other partners have to do more work than the standard!
I have seen programmers who insist on not using ide. The reason is that they are used to it. I think this person regards technology as a belief, just like Hui's brothers and sisters who don't eat pork, it's not a good question!
Why do we not want to use more suitable things? Why do we always make the same mistake? This is a problem we often encounter at work. To put it bluntly, you are used to it. To break this dependency mentality, you must change its path! You know, Microsoft will upgrade the operating system by not supporting XP in the future!
6. What you do is not what I want: "information transmission requires cost"
After busy for a long time, the most painful thing is that people say: you are not doing it at all, not what I want! I think the key reason for this is communication. In some cases, communication costs are so high that it is difficult to communicate!
For example, if you go to the boss, the boss says, "I don't have time." For example, if you go to the user, the user says, you should come and see it first. For example, when you go to the partner, the partner said, "We have no errors because of the number of users in our products. The problem must be caused by you!
How are you doing? In fact, this is not difficult, but it is difficult to start. You must know that trust is simple, and trust is because you understand it! Therefore, we must establish a channel for information transmission, so that the communication cost will be greatly reduced! This is a one-time investment. It costs a little, but it will not be rewarded!
In textbooks, the best practice is to explain how to be the most beneficial to rational individuals, in software management, the difficulty of cracking is the "worst" Team caused by the "best" individual, and the "most favorable" Team caused by the "high cost. It is more convenient and practical to use the above methods than simply performing performance appraisal, at least in many cases.