Live XP: (1) Playing process and people's power

xiaoxiao2021-03-06  98

Live XP: (1) Playing process and people's power

Lin Xing (reprinted from www-900.ibm.com) October 27, 2003

XP as a kind of agile method, has many excellent practices, with these practices, can play a good effect in software organizations. The problem is that it is not easy to use these practices. The goal of this series is to surround the practice of XP, discussing the intensive substance hidden in practice, study how flexible application XP practice, thus achieving the purpose of improving the software process . Although software development has multiple links, we cannot only emphasize some links, and any problem will eventually affect the quality of the product. So we should consider the entire process in software development and pay attention to this factor. Quality inspectors work

In the previous factory workflow, the product needs to be checked by a quality inspector after production. At the quality inspectors, there are two baskets, a basket written, and a basket is unqualified. For qualified products, post the certificate, enter the sales, for unqualified products, prohibiting the factory. For a long time, we have been using a quality inspection in the final stage of the product, which is used to avoid quality defective products, but there is no way to improve the quality of the product, and there is no way to reduce the error rate. The basic idea of ​​this quality inspection method is that the product has a waste product, as long as the waste can be found, the quality of the product is not affected.

Then let's take a look at the process of software development. When the software has experienced demand, analysis, design, and encoding, the quality inspector also needs to verify whether the software meets quality requirements. A variety of testers jointly served as a quality inspector. And the quality inspectors are not simple. Black box test, white box test, integrated test, user test, parallel test. Unlike the factory, problems with problems do not easily throw it into unqualified product stacks. Another difference, software products will have quality problems. Since you can't give up the product, you have to return the product to the production line. Therefore, the demand personnel, analysts, designers, and codents have begun to adjust the software, and try to make the software to factory. This repeated process tends to last for a while. Fortunate software can be transferred to the factory (delivery), otherwise it may be fate from the project failed.

Obviously, we have found that this practice is not smart enough. Stacked the problem until finally settled to solve it, this approach is very high. The characteristics of software development have determined that the more post-changes, the higher the cost. So how should we adjust our approach to reduce costs, improve quality?

Lean principle

Software development always borrows management ideas from other disciplines. The earliest software engineering learns from the civil engineering, but later people find great differences in construction and software development. Therefore, the new software development method began to rise, including XP methodology. Similarly, the new software development method is still in theory to find a foothold, and this focus is in the modern management concept. A large question of civil engineering management is to ignore the role of people, and modern management philosophy refer to a new height, which is the same as emerging software development ideas. The most influence on software development ideas should be considered the concept of Lean Production, which is proposed by Toyota.

The United States after World War II, the car manufacturing company headed by Ford advocated the mass production (Mass Production), and Toyota Ying Second and others were in the United States after investigation, it was not suitable for Japan after investigating the US manufacturing ideas. It is proposed that the idea of ​​Lean Production, lean manufacturing has been a generation of hegemon-Toyota, Toyota's manufacturing method is called TPS (Toyota Production System). Toyota's Toyota Yingqi and Duya-class also conducted a series of exploration and experiments. According to Japan's national conditions, a series of improved production methods: timely production, comprehensive quality management, parallel project, gradually created unique Multi-variety, small batches, high quality, low consumption production methods. After more than 30 years of practice, these methods have formed a complete "Toyota production method" to help the automotive industry's later generations of Japan surpass the automotive power of the United States, and the output reached 13 million, accounting for more than 30% of the total world. Review this history and how similar software development history is. Large-scale manufacturing theory believes that a certain degree of waste is normal, allowed. In software development, waste, cost is also a major obstacle to preventing software development towards engineering. A agile method like XP has learned a lot of excellent ideas from lean manufacturing ideas, for example, continuous improvement of quality, design decisions should be handed over to the closest-proof person, and promote production according to customer needs. Although we have always emphasized software development and manufacturing industries, the software development industry that is in turn-related intersections is always constantly looking for the theory of rejuvenation from other industries. This approach is called Lean Programming. Lean-programming ideas include:

Eliminate waste. Anything that cannot add users recognized for the ultimate product is wasteful. Useless requirements are wasteful, useless design is wasteful, beyond the functional range, and the code that cannot be used immediately is also wasteful, and the workpiece is meaningless between different development groups. It is also a waste. Strengthen learning and encourage improvements. Software development is a process that constantly discovers problems and constantly solve the problem. The strengthening of learning ability can make improvements in software development work. Delay decision. Software Development If working in an undetermined environment, changes will cause harm to software development itself. Delayed decisions, when the environment has gradually clear, there is enough reason to make decisions. For software design, how to build a system that can support changes is a key issue. Delivery as soon as possible. Since the popularity of the Internet, the speed has become a critical factor in the business, which has directly affected the maturity of the rapid software development. The faster the software phase delivery is, the easier the software is, the more clean it, the more cleaning the user, the higher the quality of the software. Who makes decisions. Who makes decisions? Is a high-end senior manager, or an encoder who is close to the code. Decision depends on accurate information, but the authority of these information is often the coding personnel of actual work, incorporating the advice, decisions, and practices of the coding personnel into decision-making are the key to success decisions. Lean Programming represents a kind of thought, and many of the Agile methods have set out this kind of thinking from their respective theoretical basis. In our discussion, the focus of discussion is on XP. The most valuable in XP method is his thoughts. We study, learn XP, can not be able to understand his practice activities, but also pay attention to the value of XP, and think carefully, behind the practice activities, what kind of thought is hidden. As we are in reading the design model book, the book gives a variety of object-oriented design methods, but there is still a main line in the book, which is the principle of object-oriented programming. process

For a few more time, the bookstore is very popular in most books and 6σ. 6σ is the development of comprehensive quality management theory. One of the most important ideas, and software development is that every step of the process will affect the final quality of the product, to improve quality, reduce costs, improve customer satisfaction, the most critical is to carry out the process Studies and analysis have found a large step of impovering the product and develop improvement measures.

A company specializing in takeaway, often being complained to the delivery of the customer is too slow. So they strengthen the power of delivery, including using better tools, hire more delivery personnel. But the cost is increased, and the customer's complaint is still constantly. Where is the problem? After quantifying the entire process, they found that the delivery time has a small amount of time, and more time is spent in the process of making takes. Therefore, the original investment of the delivery process is investment, it is considered a white fee.

Doing anything, you need to experience a process. The ordering phone from the takeaway is started, and a process has already started. Record the customer's address, address characteristics, dish name, order, distribute the foreign delivery person, transfer the address information to the foreign delivery person, send goods, find the destination, deliver the takeaway and pay the payment, and the subsequent process is ignored. An appearing life activity, which contains a complex process. The same is true for software development. From the customer's contemplation, the customer has always begun to use the software, and the process is very complicated, full of various unpredictable factors.

The process of sending a takeaway, each step will have an impact on the final quality (customer satisfaction). For customers, from calling to receive takeaway time, take-out is delicious, these are all composition ingredients. After receiving the phone, the customer's accent may be heavier, the recorder has heard the address, resulting in all the fake processes, unless the customer is impatient, calling to recover the address. After the order is given to the kitchen, it is possible to blow the list to the ground, and the customer's request is ignored. The recorder wrote the customer's address description information, the delivery personnel may not understand, this time he needs to call back, this will take the delivery time. Delivery personnel may not be familiar with the customer, find a lot of time. It's hard to send it to the customer, and the customer has waited impatient, worse, because the time is too long, the takeaway has been cold. Customers decided to replace a takeaway store next time. Although the probability of each contrary is not very large, after each link combines, the probability of an error is great. After analyzing such a process, our feelings often, actually can be sent, it is not easy! Isn't the software development process not this? Every link may have problems, and demand does not necessarily represent customers' needs. It is not possible to represent demand. Instead, add some unstable factors for encoding. Since the progress is tight, the encoding work is also more huge tiger. In this process, we can develop customers who are satisfied with the software, then only one explanation, the software developers who have been in contact with customers are more rotten than us. Ok, how do we improve this situation? Yes, improve the process. Since the recorder may have a mismatch between the client, we will ask the recorder to repeat it after listening to the customer's request. Since the menu may be lost, we specifically designed a location in the kitchen, arrange these menus in advanced order, and ensure that men will not be lost. Since the deliveryman may not understand the word recorder, let the deliveryman and recorders spend some time communication, or the shipper can get used to the word of the recorder, or the recorder wrote the deliveryman to understand word. Since the deliveryman may not have to know the road, then the delivery staff is drawn, there is special to send A, there is a special to send the B area, and each person is familiar with the scope, and the degree of familiarity will naturally increase. Ok, there is such a thought, we are also ready to improve the software process. However, not now, the remainder of this article will be carried out around this.

People in the process

In addition to the importance of the process, we still need to consider people's factors, the process is to rely on people to promote, no one, there is no meaning. This is the case for software development, and every link in the development process requires people's participation. There is never a way to focus on the role of people in XP. Therefore, in the full process of XP, human factors are always in the first place. The practice of XP is also carefully designed according to people's advantages and weaknesses. We do some simple discussions here:

Planning games: We often hang a sentence in the mouth is planning to catch up. Planning is often a heart disease in many software organizations. Everyone knows the importance of the plan, but the plan is the most difficult. There is no plan, the software process is not followed; there is a plan, the software process is often deviated from the plan. It is more difficult to change in more and more frequent changes. The attitude towards the tangible plan is that the attitude of XP is to make a pile of unrealistic plans that are expensive at the beginning, it is better to spend a small amount of energy to make a simple plan, and then constantly Conduct adjustment. This is as if we ride a bicycle, set a 500-meter goal, then we put the car fixed, select the starting point, and pre-set a good angle and standard route, then ride the car, strictly follow the original route. Can the car go to the end? The possibility is not big, there may be obstacles on the set standard route, this is what you didn't think of; because you can't adjust the direction to keep balance, the car may fall.

The car should ride like this. Look at the far goals, estimate distances and time, get a rough speed, then we will go to the road. In the process of advancement, we continue to visually visually visually visually visually detect the target, see time, and adjust the speed and direction. The goal is getting closer, our adjustment is increasingly proficient, and finally, we have successfully arrived the target point.

The traditional planning method is as unrealistic as the first kind of cycling method, and it is difficult to think a lot of things happened after a few months. It is only the correct attitude based on the constant adjustment of changes. Note that it does not cost the time is planned, it is not equal to not paying attention to the plan. The plan is still the core of software development. You must have a current iterative plan, current week plan, or even current plans. Only to ensure the stringest of each small program, it can guarantee the success of the entire project plan.

XP's attitude towards the plan is: You don't need to do how precision do, but you have to do plan. It is planned to hurry up. This sentence is correct, we don't need to evade changes, spend great efforts to waste, and there is no meaning. But this is not to say not to make a plan. Everything is required, we need a simple plan, and then continuously correct and improve the plan during software development. Learning Change: XP is best suited for those who are prone to changes in demand. In reality, we have found that this situation is too much. It may have a change in the target market of software, requiring software synchronization; possible customers have no sufficient understanding of demand, resulting in changes in demand; may have changed in the organization or business process, requiring software changes. Various possibilities indicate that development software is known as a luxury in a constant environment. In such a cruel environment, we have to go to learn the change.

Variations include two aspects: how the software process adapts to changes, and how software design is adapted. The traditional software process often requires the next software phase after determining the upstream software phase. However, the need to change require the software process to switch between multiple software stages. Due to the cruelty of changes, XP recommends that developers must establish changes. You have to change your mentality, accept changes, change is reasonable, there is no existence that does not exist.

Here you insert a question outside. It is highly recommended to use object-oriented technology in XP projects. Although object-oriented does not have any requirements for software management or software management. However, an object-oriented team (note is the use of object-oriented technology, rather than using object-oriented languages, saying because there is a large number of developers using object-oriented programming language-oriented code), its management process It will also change. User participation, iterative development, reuse, and use the frame. These are naturally occurring changes after using object-oriented technology. Using object-oriented technology, it is possible to make a more tight connection with the XP method. In addition to the two simple ideas discussed above, other parts of this article discussions in the XP process and two factors in people.

Positioning of this article

This article is not an article introducing XP basic knowledge. This information has been much more information. If you want to fully understand XP, the XP series of XP series series of people's post and telecommunications is a very good start. The position of this book is to discuss how to apply XP in actual software development, how to follow XP's idea, but it is compromised according to the actual situation. Although this article does not introduce any XP basic knowledge, it is still suitable for XP's initiator to read. People who have just contacted XP often have a variety of confusion, but from foreign translations, they are not necessarily suitable for domestic environment, so read This article is able to understand the idea of ​​XP from the perspective of practice.

Like other methodology, XP is not universal. A software organization can benefit from XP, not depending on XP, but depends on this software organization itself. As we emphasized at the beginning, learn XP, the key is to learn ideas. Software organizations should be based on their own situation, learn, live in XP, not human clouds. XP is not making a pile of cards. Remember, remember.

The article has no comprehensive introduction to all the practices of XP. Because the author is not an absolute advocator of XP, we examine XP with an objective attitude, the content we introduce, is the experience after using XP's practice or absorbed the idea of ​​XP practices; we have not introduced some It is because the environment cannot be practiced or is not agreed (but it is not agreeable). In fact, many of this article is not patented in XP, and other agile methods also mention these advantages, such as adaptive software methods. Therefore, more accurate description is how this article learns the advanced software development concept from XP.

转载请注明原文地址:https://www.9cbs.com/read-98666.html

New Post(0)