[Editor Press] In the decades of programming, Tom Demarco is a name that should be remembered. In 2003, the "Famous Hall" of "Programmer" magazine, we have already introduced Mr. Demarco's experience and achievements. Recently, the "programmer" reporter interviewed the "Taishan North House" developed by email. In an interview, Mr. Demarco revealed some in-depth understanding and ideas for software development.
Pay attention to programmers' own culture - Interview Tom Demarco
Reporter / Bear Festival
Pay attention to the "person" "programmer" in the software (hereinafter referred to as "Cheng"): Mr. Demarco, Hello. Recently, your two books - "Last Term" and "People" have caused a small response between Chinese developers. How do you think of these two books? Tom Demarco (hereinafter referred to as TDM): Hey, you know my book ... These two books represent the main idea of my last time. I hope all readers - including programmers, managers, customers, and all people related to software development - resigning the "people" in software development. I hope to see a return of humanism, just like the Renaissance. I believe that Chinese readers are very smart, they must notice that I deliberately use the easily atmosphere used in the book, and there is the same exaggeration like salesman. You know, for programmers' work environments, the bosses have decisive power. However, the bosses read only this tone relaxed and casual book. I am also alive. "Cheng": No matter whether you like your book and agree with your point of view, readers are indeed concerned about your thoughts and intend to learn from you. TDM: It is unemabs that I think I am worth learning. You see, a sixty-year-old old man, he and Dijkstra have a total of things, he participated in the 1968 Nato meeting, he developed various procedures for decades, he walked to the objective thing from structure ... My experience should be Help for young people. This is also the reason why I wrote books and train. A little luck is a necessary factor "Cheng": I remember your optimistic attitude. If there is no height of God, if there is not so good luck, Mr. Tukkins in the "deadline" is probably being hanged in Morovia's meat hook. But as a common software developer, how can we expect so many good luck? TDM: No matter what to say, we must admit that in any risky work, a little luck is a necessary factor. Software development is certainly no exception. "Cheng": But if there is no such good luck, don't our project become a death trip? TDM: Excellent manager can get good luck to himself. For example, when Mr. Tukkins saw Belinda, he learned: she will become a big wealth in the project team. At that time, even Belinda didn't dare to affirm his ability. Also, in the "Tianzi Shen Bing", many people are Mr. Totuskins, I just know, he just knows when to help. Moreover, he has a unique personality charm, let those people who meet for the first time are happy to be with him, willing to help him solve difficulties. Therefore, you said that Mr. Tukins is because of luck, but I am a large extent because of his ability - know which people should choose, know how to make these people work hard, this is a manager. The most important ability, right? Proprietary "Cheng": You said in the book, manage the "find the right person, and keep these people", now you said that Mr. Topkins is because those difficult ability . Do you think that as long as you find a suitable person, can all work can smoothly? Or do we need to do some other work to ensure this? If so, what should we do? TDM: "Who Select" and "How to Use them", this is the most important thing. Then, the second important is to manage personal charm. All other things (processes, tools ...) can only play a certain boundary effect, but it is impossible to play a critical role.
"Cheng": However, these two most important capabilities are very mysterious, isn't it? How do we learn to learn? TDM: I know you will mention this problem. That's right, they are very mysterious, some people are a good manager, and some people will never have this ability. Have you ever said that "They are the ability to excellent managers"? Ah, this is my expression is not accurate enough. This is actually a Darwinism: Only managers with these capabilities may lead to the project again and again, and are evaluated as "excellent managers." You are right, to a large extent, these capabilities are unable to learn. However, I realized that their importance is still very helpful to us. First of all, some managers can clearly recognize their lack of management talents; then they can find a real outstanding manager to help you. Know yourself ignorance, always better than ignorance, not self-knowledge. "Cheng": We have always thought that he is a science and technology worker, but you use this almost mysterious way to explain our work ... TDM: You are right, we are science and technology workers, we believe in science. What is science? That is to know some of the solutions, I know that other things are impossible to solve, and I know that some things can be solved, but I can't find a solution. Since you believe in science, you should not think about finding a "scientific" explanation for all questions. Moreover, software is a science of practice. We don't need to use more than three hundred years of time to prove that Feemati theorem. We just make a variety of different ways to accept cruel survival competition. Therefore, tutorism is the least indispensable in software science. CMM, an outdated thing "Cheng": I want to know your attitude towards CMM. What companies do you think CMM will help? What are the side effects? TDM: Help? CMM? For today's software companies, CMM has hundreds of harm without anything. "Cheng": I remember that you have said that in a long time, CMM helps to increase productivity, just hindering in the short term. TDM: You remember, I am talking about "process improvement", not CMM. Do you know that CMM has more than 20 years of history, and its success experience is obtained before 1985. CMM tries to impose a fixed model to a sun-changing industry, which encourages you to follow the software development methods used by IBM in the 1970s. Fossil, dare not face changes, this is the most taboo of the software industry. So I want to say that the CMM has no help for the vast majority of software development. Of course, a certain process is necessary. However, in this era, the process must also hug changes, otherwise it is not a good process. You must remember that the characteristics of CMM2 are "repeatable". I think this is a paradox: every project is completely different, our development environment is updated every year, how to seek a "repeatable" Process? You see, all of the great software companies, which family doing is "repeatable"? "Cheng": There are so many people, so many companies are keen on CMM. TDM: They simply be uncomfortable - they can't adapt to changes, they can't find their position in this new environment, so they have to find something to find something. William Clifford has said that people often believe in something according to their own desire, but the desire is strongly becoming reliable. However, for companies that do only outsourced projects (such as Many India Software Co., Ltd.), CMM is a nice ability to measure standards. Only enterprises that do not need innovation is required for this business that does not require a brain, and CMM is meaningful.
If I let me evaluate, I will think that CMM is a shame of software companies: the higher the level, the more creativeness of the company. Let employees steal a little lazy, "Cheng": I noticed that you have recently saved Slack, this book name is very interesting, can you please briefly introduce this book? TDM: In fact, this book is called "Secret of the Agile Organization". In my opinion, let the company have agility to adapt to the new century, the new economy, need to do four things: 1) a little lazy for employees; 2) Help employee relieve stress; 3) Pay attention to employee culture Investment; 4) Assess risk and control risk. "Cheng": Can it be lazy to help increase productivity? Is this not a violation of intuition? TDM: Yeah, you should make employees working for seven days a week, which is the most efficient - if their job is moving bricks. You must first figure it out, let your employees contribute to you, and then decide how to arrange their work. For software developers, we need them to contribute to creativity. It is their idea. It is their intelligence, so we must let them relax, there is time to think about it, so they can play their talents. Software nature "Cheng": Fred Brooks said that the key problems in the software lead to "no silver bullets". But is it the same? Is there a key issue in each software? For example, operating systems and ERP systems. TDM: Brooks said that the key issue of software is "find out what to do", and "how to do" is a secondary problem - all technologies, tools and processes are solved by this secondary issue. I totally agree with him. On the issue of "how to do", we have made great progress; however, on the issue of "what", do decades do not seem too much improvement. I think this is due to the essence of the software. "Cheng": So, what is the essence of software? TDM: Our world is blurry, continuous, inaccurate, but software is accurate, discrete, formalized, which is destined to have software that cannot fully describe the real world. Therefore, we need to know which part of the description is ignored, which is the essential problem of software. Obviously, this is a machine that cannot be completed, the essence of software means the existence of developers. "Cheng": What do you think is the best metaphor for the software industry? Is it engineering? Is it art? Or is there a process? TDM: Both, but it is not accurate. There are engineering components in the software, there is a composition of process, and there are artistic components, so it is so complicated. In the past few decades, we have made a lot of exploration on the road of "Software Engineering", and have achieved extremely considerable results (I am honored that I have also made some contributions). However, it seems that the decline in marginal utility is playing, and more explorations that can be used for software engineering are getting less and less. So, I think it should be considered another problem that I have considered before. For example, how to create a good working environment, how to cultivate a mattery developer ...... I have considered these problems in the past, so if you put your efforts on this, you can get greater results. There is a hero "Cheng" in the eyes: Recently, Bill Gates came to China, causing the sensation of the entire China IT industry. How do you view Mr. Gates and his Microsoft Empire? TDM: Oh, I am Gates and Microsoft's worshipers.