Textual Details Demand (on)
content:
1. Details Demand and business modeling periods are different.
2, iteration
3, specialty of demand iteration
4, the cost of iteration
5, relationships with other stages
From this article, we have begun to enter the details of the details. During the business modeling period, it is different that the software profile is different. The details of the details will fully explore the needs of the people and be used as other activities. Details Demand Demand and Different Practices during the business modeling period, iteration, and small version release is very important.
1. Details Demand and business modeling periods are different.
The previous chapter talks about the knowledge of many business modeling, you can see that the whole process is basically string together, strictly follow the software lifecycle model, which belongs to the waterfall model. There is a problem here. We have used a lot of space when discussing the waterfall model. Here we use this model again, this is a bit ... A big reason for this is that business modeling has its characteristics. In some small projects, business modeling is generally not large in the software life cycle, mostly for understanding business environments, where BPA's composition will be more, and the part of BPR is usually very small. So if there are some mistakes, you can make up in the demand phase. If it is a project such as ERP, the business modeling and BPR will have a very important location. At this time, it is generally necessary to develop a strategy according to the specific situation, it is difficult to say what cycle model is used. And business modeling is generally needed, and it will also arrange early in the project. So as long as there is a review, it is not particularly important to use the lifecycle model of business modeling. However, this is for those specific projects. For marketized products, there should be additional processes, but this is not within our discussion, and there will be a chance to discuss with you later.
Then, demand, the life cycle of demand is definitely not in accordance with the waterfall model. For programmers, the most hateful thing is the demand change. So, everyone came up with a way to solidify. After analyzing the demand, they fix it, write into documents, let customers sign. In the future, there will be a problem with the demand or change, I will take out this paper, "Look, the requirements at the time have no this." The evil fruit of this approach is obvious. However, some companies will refute, "No, I have always been regarded as God, this kind of thing will not do, I will let the programmer add this feature." Unfortunately, this kind of conjunction , Hurt programmers is worse. I still remember a word when I listening to the management course: "The employee is the most important, the customer is." This is very reasonable. If your employee is dissatisfied, how can the employee directly serve the customer? ? Therefore, no matter which kind of practice, you can only temporarily solve the problem, and the harm caused by the future is even greater.
The harm of demand changes is very large, but the constant demand has never existed. If in the past, the needs of the enterprise can remain unchanged within a relatively long period of time. Then, in the current trend of this globalization, a business that will not change will only be dead.
Once the dinosaur of the mainland, why is the dinosaur that weaken, and the weak mammals can survive. The biggest reason is to face the changing natural environment, and the dinosaurs have no way to change their own, while mammals can. The current society is also the same. If your customers serve the customer's household, then you can think of it. Therefore, it is obvious that demand and changes are almost synonymous.
2, iteration
On the one hand, it is required, and the one hand is required to change. How can I reach a balance point in this contradictory environment.
In the past software development process, most of them require predictions in the future. For example, demand must be forward-looking, design must be delayed. However, this approach is often difficult to achieve. How can you do millions of changes in reality? Can you do anything wrong? If you say that you can estimate the disaster from September 11 when you are doing a plan, then I have nothing to say. A medium-sized project often requires dozens of teams to work for more than half a year. At this time, the plan will also add this most uncertain factor. In this way, the correct estimate is that it is more difficult than the day. There are a lot of claims that claim to consider a detailed plan, and there is no consideration when scheduled. What is the difference between this plan?
I earliered itered this word from a friend. He said to me: "The object in the nature has never existed in line form. The spiral object is in line with the law, such as DNA." He sounded this very much. But it is very suitable for placing in the process of demand. The demand process of the straight line is dry, isolated, easy to break. The propelled (iterative, incremental) demand process can form a relatively stable shape from the side of the cut surface.
In fact, this truth is very simple. When I or a rookie of a writer, in order not to compile, there is a lot of error, so I use a way to stabilize the way, write a small program in addition to a bug. The iteration is also the case, it is to divide the process that it takes in the previous year can be seen into multiple small processes, and a certain improvement can be seen every other hour. Reflecting on demand, demand for more than one breath tends to divide into multiple stages, and completes some features at each stage. What is the benefit of this?
1 / People are more difficult to estimate longer future, but can be substantially estimated in a short period of time. This is like I said that I can't say two years, I am, if it is two weeks, I have more grasping.
2 / Split a big goal into multiple small goals, so people can constantly see a target, which is better than the long-lasting achievement.
3 / Customers always say, I want to see software to make more needs. This is in line with human nature and should be met.
4 / Continuous improvement is advantageous to improve the level of cooperation between developers and customers.
5 / Iterative process can be eliminated to eliminate bottlenecks of security personnel such as developers and developers such as the original security personnel.
3, specialty of demand iteration
Iterative demand development does not mean that demand development is divided into individual iterative cycles. In theory, it should be the first demand analysis (and architectural design), and then carry out the development of each stage. However, in the actual situation, it is too difficult to keep the demand. According to its own experience, a project, which can often be completed at the beginning, can account for 80% of all demand development tasks (estimated numbers). However, there will be 20% of the demand (new or modified) that has emerged in subsequent software development. However, this 20% demand is extremely unstable, which may be distributed in the middle of the project, or may be distributed late in the project, and may even appear in the project in the deployment phase, which depends on the team's ability. The risk of such a project is actually very high, and some demands that have emerged later than night may cost a large amount of resources. If this requirement has an impact on the software architecture, then the consequence is more disastrous.
In XP, an iterative cycle will include a multi-sheet material card, a material card represents a function of the system (FunctionALITY), these material cards are managed by project leaders and customers, field experts in accordance with certain rules Together, we will decide to achieve this iteration from the demand concentration. One iteration has been planned, prepared material card, analysis, coding implementation, test, construction, etc., presented in front of the user to run software. Users can clearly see the interface of the software, the user's use manual, and the output of the software. Everything is a list, no need for any narrative statements to describe the software because users will feel they feel. Next, the feedback of the user is collected, analyzed, processed, and the necessary change is arranged to be implemented in a subsequent iterative cycle. Separate iterations may be linear, but from the whole, multiple iterative cycles form a line-like production method:
Iterative example iteration 1 iterative 2 iteration 3 iteration 4 Preparation iteration 2 | Build iteration 1 Preparation iteration 3 | Build iteration 2 | Delivered iteration 1 Preparation iteration 4 | Build iteration 3 | Delivery iteration 2 Preparation iteration 5 | Build iteration 4 | Delivered iteration 3
Therefore, the particularity of demand iteration is that the emergence of demand is not iterative, but the analysis and implementation of demand is iterative.
4, the cost of iteration
Just as any algorithm in the computer, the balance of space and time must be found. Although iterative methods have their own advantages, it also needs to pay the price.
Since it is necessary to adjust the software, the architecture of the software needs to be relatively stable, which can be changed. This may be more difficult in the past, and the current software architecture is quite mature and can be competent. For example, J2EE is a very excellent architecture. In addition to architectures, the framework (Framework) is also very important, the framework is sufficient "soft", although there is no ready-made framework, there are many information about this, such as design patterns, analysis mode. These are all talked about some experience. It can be referred to and adopted.
Multiple release versions require development teams to have the ability to control the version. Multiple development versions are not to control until the same flood beast is terrible, and the developer's time is wasted on all versions. About version control, there are a lot of software to do this. For a smaller team, simple directory control may be sufficient.
Although the iteration diagram drawn above, although it is good, it is not so simple. If your skill is insufficient, you can't make a dental dog. The original arrangement is not strictly enforced, and the result is more confusing. At this time, you will ask the team's project manager to have enough planning capabilities, as well as teamwork.
Demand changes, not all requirements are accepted. For a few items left, a simple demand change may be the last straw on the camel. This requires the team to have the ability to change management.
5, relationships with other stages
Before entering the details, we must first determine the architecture of the system. Domestic programmers rarely think about this problem, but they will do this. For example, you are using Microsoft DNA, or J2EE. This is a kind of architectural decision. But we didn't pay attention to the design of the architecture. Considering the architecture of the architecture will make the architecture of a major loss. Think about it, a company wants to change the original architecture, it takes a lot of costs.
Since the theme of our article is demand, the problems in architectures are not within the scope of the discussion. However, remember, first decide the architecture, and then enter the detail requirements phase. Of course, this is not to say that the original architecture cannot be changed during the details. The reason is very simple, why you have done! Since detail requirements are iterative, every iteration is like a small waterfall model, which is subject to demand, analysis, design, coding, acceptance test, delivery and other stages. In this way, the details are actually close to other stages in the software development process, which may not be significantly bound. In the next chapter, we can actually find that exploring demand activities and other activities are in synchronous.