Transfer from: http://www.chinaui.com/text/t1.asp? Id = 652 - Discussion on several problems of software prototypes
Keywords: prototype, respect customer, prototype evaluation, visualization, change cost, development team blueprint
1 is too large! I finally signed the contract -> A few pieces of "demand book" provided by "official" customer -> Immediately put the development now -> "wood is already boat", the rice is finally porridge -> Users refuse to accept? -> Difficult to modify, repeatedly modify, developers are tired, and users have tasteless, abandoned, and become a chicken rib. -> Since then, the receipts are far from time, and software companies will no longer be communicated with users -> complain each other, and it is born. Alternatively, a project is demolished, thereby collecting a part of the money, and many developments are invalid. Such a case is really much! The main reasons, it is said that it is not a key customer, or if the project is not properly managed, it is better to say that it is not helping the customer to solve its problem, and the real demand for customers is not enough. In fact, prototype methods are solved such problems to ensure the best ways for project success. I am writing this article, I also try to find information, I don't know if it is this, or I have missed it. It seems that the prototype does not have a clear standard, and the understanding and practices of different software companies are not surprising. However, from the perspective of the software process, the prototype law still has a general optimization practice. This paper tries to think and discuss the prototype method from the author's practical experience. In addition, this paper is divergent, and the prototype related content is also discussed while researching prototype. Some of the nature of the prototype is a throwing brick, and this article also aims to throw the jade, but it is not intentionally in the same way.
2 What is a prototype?
2.1 Prototype Defining Prototype The main function and interface of the system is "software prototype" by rapid development of the system, in a visual manner, and seek user opinions in time, which clearly determines user needs. At the same time, the prototype can also be used to solicit internal opinions, one of the interfaces of analysis and design, can be conveniently communicated. 2.2 Prototype The main value of prototypes is the main value of visualization, strengthen communication, reducing risk, saving post-change costs, and improving project success rate. In general, the quality of demand can be improved after using the prototype method; although there is more time, it can significantly reduce the time of post-change; the cost of the human cost of prototype is not large, but it can save later costs; for larger Software, prototype systems can become blueprints for development teams; in addition, prototypes can improve customer satisfaction by adequate and communicating with customers. 2.3 Basic requirements for prototypes include: * Reflective main functions; * Provide basic interface style; * Show a relatively blurred portion to facilitate confirmation or further clear, prevent problems. * The prototype is preferably operable, and interconnects can be established at least between the major functional modules. 2.4 Treatment method The method of processing of prototypes has two different types, namely, abandoned and evolution (different software engineering books weigh different, and similar). You can abandon prototypes and start design and development on the basis of the clear demand; you can continue to develop on the basis of prototype. General small projects do not use abandoned prototypes, otherwise cost and cost seem to be high. 2.5 Expression Tool Prototype The expression tool can have a lot, and if it is a evolutionary prototype, of course, the software itself is preferred. Otherwise, various quick display tools, such as HTML, PowerPoint, and more, as long as it can be fully imaged. According to the author's experience, in the prototype system, some different practices can be used, for example, where the main purpose of the current module or interface can be written more, which role operation can solve what problems. Do you can make the user or development team members have a very clear concept; for example, for decision analysis, you can directly draw some analytical results, and give some text descriptions, this can avoid entering a large amount of initial data. ,and many more. 3 The fundamental purpose of the status software in the software process is to implement the needs of users, provide users' daily use, solve incorporated problems in user work, improve their work efficiency, improve quality, strengthen management control, and ultimately directly or indirectly improve Its benefits. Therefore, software development is inherently demand and realization, and software prototype is very important for demand determination. The prototype method includes two basic processes, namely prototype production and prototyping evaluation.
If we look at the software process from the perspective of the demand, we may wish to divide the software process: 3.1 Requirements collection and analysis of collection needs to get demand instructions, understand what software needs to do, what is the problem of solving users. At this time, the software company proposes in written documentation, such as demand quotations, etc. 3.2 Provide prototypes and evaluate the development plan to develop prototype development according to user needs and uncertain high-risk parts, and conduct prototype evaluation internally, please reflect the true idea of users. 3.3 Realizing the current software development process of demand often uses iterative methods to develop, gradually refer to the risk and cost. For the number of iterations, each iterative milestone, the goal to achieve, and the result of the submitted results must have a validated plan. Project management is an art, iterative planning and milestone definitions are a challenge, an art, but project management is not discussed herein. 3.4 Demand Change demand changes are normal, and it is also inevitable, and should allow users and development teams to change their needs. The key to change processing is to track and control, how to make the generated impact should be controlled, which is the content management content, nor is it discussed herein. The positioning of the prototype in the software process is shown below: Figure 1 Software prototype
In fact, we can see the prototype more generally. Any user or internal demo can be seen as a prototype. For example, if your product is a generic or industry solution, although you don't have a product, you can make a prototype, add a beautiful white paper, you can make pre-sales in the market. For abandoned and evolutionary prototypes, it is not absolute. Some content will be abandoned in the evolution prototype, and the prototype is abandoned, although it is no longer used after completing the historical mission, many ideas and partial design can still be inherited.
4 general process of prototype method
Based on prototype methods, the status of the entire demand process, we need to discuss the prototype law and demand processing. The general process of using the prototype method is shown below:
Figure 2: Process of the prototyping method
The process of the prototype is clearly described in the above figure, it is worth mentioning that the prototype is not only used to evaluate the user or end user, but also can organize a review in the company, look at us, most programmers Interests to technology is much higher than the interest of demand, so it is not much more than market personnel or project managers. The company's internal personnel can include many, system analysts / programmers themselves, project managers, department managers, user representatives, field experts, testers, etc., different roles are often proposed to the system in their different positions. Come. It is also worth noting that the introduction of interface design. We believe that the interface style is basically an optimal approach, as the software's pre-interface determination can avoid unnecessary cost of uniform adjustments to the interface during post-development, good interface It can make customers add a good sense of the system. Of course, I hope that users should not just appreciate the interface and ignore their thinking about system function. To know, if you just let users see a beautiful interface, then the entire prototype is almost white. 5 Discussion on related issues of using prototype methods
5.1 Why use prototype law? The prototype is of great significance for a project. As the saying goes: Interlaced is like a hierarchy, it is actually that the software company is hard to ensure that its software is just that the user needs. It is difficult for users to completely submit their true requirements, and the beginning of the stage is often only the expectations of the system. And more vague ideas. The prototype system provides users with a target, looking at prototype systems, users often further present their true ideas. Obviously, the software company clarifies the best way to provide users with the user and evaluated by the user. Perhaps, skipping prototypes can save time and pre-cost, but you should notice that if you skip prototype, the cost of later changes will increase significantly. 5.2 Why does the prototype outside of the demand manual? 1) Eight is true, text has ambiguity, different people understand the same; I saw such a system too late. This is the lesson left by the previous countless software development; 3) Easy to discover problems, timely correction; 4) Easy to further expand, and obtain the details of the user; 5) other functions of prototype: Easy company, such as manager, market department, etc. Submissions on the software make in the developers to reach a unified understanding of the entire product, and so on. For internal persons, the same, a set of image prototypes is also far from a bunch of professional terms; that is, prototype is also very important to software companies. These evaluations have improved the quality of the project in invisible. 5.3 What is the risk of prototype? Any method is advantageous, and we can explore the risks that the prototype method may exist. The following is a risk concern about general software companies: you need to pay the previous progress and human cost; due to the low efficiency of the programmer, it is contained in the prototype, which is negatively modified by customers; because the design is not conducive to further On the basis of continuing development; due to premature display of prototypes to customers, customers may increase their expectations, and make more removal requirements, and so on. It is worth mentioning that one of the main values of the prototype method is to reveal the risk and uncertainties in the software as soon as possible, especially the risk of user demand consistency.
5.4 What is the relationship between prototype methods and other methods or processes? The life cycle method does not include prototypes, or not clearly provides the concept and definition of prototypes. The prototype can be considered a part of the demand analysis. In addition, it should be said that the prototype method is a useful supplement and improvement of life cycle law. The RUP is the optimized unified software process, but the RUP does not seem to mention the prototype, and the core process of RUP is refinered in iteration. My personal opinion is that the prototype is very similar to the process and results of the first iteration. In fact, if the prototypes are as the first round of delivery, then many of the prototypes, such as spending pre-cost, etc., these concerns will become no longer existed. The XP method is very respected by the prototype because the XP method emphasizes the importance of demand, and even requires customers to participate in the development process. But the prototype method and XP are also different. XP is batch delivery, first make a few functional versions, and then add other function points to the top after completion, and the prototype method generally requires a coarse version of the main function point. The XP method is benevolent, and the wise is witty.
5.5 How do I avoid the project team when the project team is prototype? In project management, the distribution of human resources is matched with project progress. In fact, while users come into contact with prototyping, project planning, architecture design, technical training, and technical difficulties. If you understand the prototype from a broad sense, architectors can even design a so-called frame prototype used by the user development team, including the main design components, templates, and examples. The ideal result is that when the prototype is completed, the demand analysis, architecture design, and interface style design tends to complete. From this point, the prototype method can be used as an important means of rapid software development. 5.6 If the project is not stagnant on the prototype? You should use experienced developers to avoid delays because of programmers are not familiar with business; do not occupy time in interface design; if users have put forward a lot of opinions on prototype, some of which are more clear opinions can be developed Realization; and customer communication should be concise, not similar to not; in addition, the prototype method takes time occupied in the project program, not just a part of demand research and analysis.
5.7 How to avoid users to see the prototype and have no margin? First, we should fully respect the customer, think about the quality of service in other industries. Have you ever heard of this, project management is also the management of customer satisfaction; software is a kind of care for customers, and so on. Indeed, the idea of the customer may be different from the idea that you have formed, and suddenly disrupted your ideas, maybe the project manager does not mind, but this is indeed a particularly annoying thing. If you are checked, or you can go in the prototype. Sometimes, that is, it makes the prototype perfect, and the user will also put out some opinions, which is also the temperament of people. But no matter what, you can't think that users don't understand software, let them use it, and more than half of this idea will pay for the cost. Second, a frank consultation should be carried out, and most users are actually reasonable. If you promise to meet any requirements while signing a contract, and you can't stand the requirements of the user, then you are inexpensive. In general, a relatively reasonable approach can be submitted by increasing cost, extending progress, or implementing a stages of demand to maintain the continuation of work. For some software, especially the information management system, the customer's implementation time is not mainly, and the customer needs not timely, but it is useful. In fact, customers have many types, indeed, individual customers will refer to the same type of products, extreme users don't really understand computer technology, and propose their opinions on technology routes, technical means, etc., and so on. But why we can think about it. If it is all submitted by the software, this part of the user will still make the same opinion. Exposure to expose and solve the differences earlier, it is advantageous for both parties. If the software company knows that there may be contradictions, it is still doing it first, then wait until the user puts forward against it, then puts forward the charges, if you like it, you have nothing to say. In summary, the prototype should be made in accordance with the basic understanding of software requirements, so that inconsistency can be prevented. In particular, it should be made to unclear places, thus try to expose problems, trigger the user's association, can't avoid problems, cover the problem (so as not to make too many ideas), many problems have been covered, but it will eventually happen.
5.8 How to avoid the maintenanceability reduction when continued development on the prototype? The question is such that the production prototype often wants to quickly provide the prototype, often not to make meticulous design for software structures or databases. Therefore, on this basis continues design and development, it is necessary to adjust before development. At the same time, it is necessary to determine before designing the prototype, or the prototype is to be abandoned, or to evolve to inherit. For prototypes to evolve, its design cannot be too rough, apparently, this directly affects future development costs. 6 small knot
The prototype method is a method of visualization, which has become a common means of rapid software development. Once the software company or department has been rewarded by the prototype, it will be used. The prototype is not absolutely necessary, but it is very meaningful.