20 laws of demand analysis Xing Xuehui (reprinted from the IT Manager World) (Reprinted from Software Engineering Expert Network www.21cmm.com) For commercial users, they are hundreds of suppliers, and there are thousands of suppliers. Consumer customer. How to use the software management of intricate suppliers and consumer customers, how to do fine into a small piece of material, sales, adjustment, and stored goods, these are the reasons for commercial companies that require information management systems. The meaning of software development is here. It is the key to the success of the software development. Manager: "We must establish a complete commercial management software system, including the import, sales, adjustment, deposit management of goods, is the chain business model of the headquarters - stores. Automatic ordering, supplier automatic settlement, vendor passed through communication Sweep bar code to achieve sales, managers can check with store products sales and inventories at any time. In addition, we have to provide reports on commodity operations for the government department. "Analyst:" I have understood the general structural framework of this project, this is very important But before formulating a plan, we must collect some needs. "Manager thinking strange:" I am not just telling you how my needs? "Analyst:" In fact, you only explain the concept and goals of the entire project. High-level business demand is not enough to provide development content and time. I need to discuss the business people who have actually used the system, and then you can truly understand the functions and user requirements you need to meet the business goals. What can I find out? The existing components can be implemented, which can save a lot of time. "Manager:" The business person is in investing. They are very busy, there is no time to discuss various details in detail. Can you explain you? Existing system? "Analysts try to explain the rationality of collecting demand from the user:" If we just guess the requirements of the user, the results will not be satisfactory. We are just software developers, rather than procurement experts, operators or It is a financial expert. We don't really understand what you need to do in the internal operation of this company. I have tried it. I didn't really understand that these issues began to encode. The result is satisfactory to the product. "Manager insisted:" OK, We don't have so much time. Let me tell you our needs. In fact, I am very busy. Please start to develop immediately, and let me know about your progress. "The risk is hiding behind the fog in the demand. It is seen that a customer project manager and the analyst of the system development team discuss business needs. In project development, all project risk bearers are interested in the needs of the needs analysis. The risk assuments referred to herein include the customer's project leaders and users, development requirements analysts and project managers. This part of the work can be done, and it can develop a very good software product, and it will also satisfy customers. If the processing is not good, it will lead to misunderstandings, setbacks, obstacles, and threats of potential quality and business value. Therefore, visible - demand analysis has laid the basis for software engineering and project management. Dial-going demand analysis This conversation is often in the process of software development. The demand for the customer project manager is in the case of analysts, like "watching flowers in the fog" and makes developers feel confused. So, we open the fog and analyze the specific content of the needs: · Business needs - reflect the organization or customer's high-level target requirements for the system and product, usually in the project definition and scope document. · User Demand - Describes the task that the user must be completed using the product, which is explained in an instance or scheme script. · Functional requirements - Define the software features that developers must implement, allowing users to use the system to complete their tasks, thereby meeting business needs.
• Non-functional demand - describes the operations of the system to demonstrate to user behavior and execution, etc., which include products that must be complied with standards, specifications, and constraints, and specific details and constructs of operation interfaces. · Demand Analysis Report - The functional demand explained by the report fully describes the external behavior of the software system. "Demand Analysis Report" has played an important role in development, testing, quality assurance, project management, and related project functions. The previously mentioned customer project manager usually clarifies the high-level concept and main business content of the product, and has established a guided framework for after success. Other any explanation should follow the "Business Demand" provisions, but "business needs" does not explain many of the details required for developers to provide development. Next level demand - user needs, must be collected from users who use the product. Therefore, these users constitute another software customer, they know what tasks and some non-functional characteristics needs to be used. For example: the ease of use, robustness, and reliability, which will allow users to accept software products with this feature. The manager layer sometimes tries to talk to the actual user, but usually they cannot accurately describe "user needs". User needs from the real user of the product, the actual user must participate in the process of collecting demand. If you don't do it, the product is likely to leave a lot of hidden dangers due to lack of sufficient information. During the actual demand analysis, the above two customers may feel that there is no time to discuss with demand analysts, and sometimes the customer also wants analysts to discuss and write demand instructions to speak users' needs. Unless the demand encounters is extremely simple; otherwise it cannot be done. If your organization wants the software to succeed, you must spend a few days to eliminate the embarrassing place in the demand and some aspects that make developers feel confused. Excellent software products are based on excellent demand, and excellent demand is derived from effective exchanges and cooperation between customers and developers. Only the participants of both parties understand what they need, and the success of success is to establish a good cooperative relationship. Due to the fact that the project is increasing, all project risk bearers have a common goal, that is, everyone wants to develop an excellent software product that can achieve both commercial value and meet user requirements. The customer's needs concept of customer and developers need a good way. The following recommendations 20 rules, customers and developers can reach the following contents through review. If you encounter a difference, it will be reached by negotiation to achieve mutual understanding of your respective obligations, in order to reduce the future friction (such as one request and the other party is not willing or not satisfying the requirements). 1. Analysts to use the expression demand in accordance with customer language habits to focus on business needs and tasks, so terms should be used. Customers should teach analysts for analyzes related terms (eg, pricing, printing goods, etc.), and customers do not have to understand the terminology of the computer industry. 2. Analysts must understand the business and goals of our customers Only analyst better understand the customer's business, in order to better meet the needs. This will help developers to design outstanding software that truly meets customers and achieves expectations. To help develop and analyzers, customers can consider inviting them to observe their workflow. If you are switching a new system, development and analysts should use the current legacy system, which is conducive to how the current system works, and its process is available. S 3, analysts must write software requirements report analysts should be organized from all the information obtained from customers to distinguish business needs and specifications, functional requirements, quality objectives, solutions, and other information. Through these analysis, customers can get a "demand analysis report", which reaches an agreement between developers and customers to develop product content. The report should be prepared in a way that customers think is easy to read and understand. Customers should review this report to ensure that the contents of the report have accurately express their needs. A high quality "demand analysis report" helps developers to develop genuine products.
4, the explanation of the results of the demand work may adopt a plurality of charts as a supplementary description of the textual "demand analysis report", because the work chart can clearly describe certain aspects of system behavior, so each report The chart has a very high value; although they are not difficult to understand, customers may not be familiar with this, so customers can ask analysts to explain the role of each chart, the meaning of the symbol, and how to develop work, how to Check the chart has no error and inconsistency. 5. Developers must respect customers' opinions If users and developers cannot understand each other, the discussion about the demand will be obstacted. Common cooperation can make everyone "listen to it". Customers who participated in the demand development process have the right to request developers to respect them and cherish their time for success. Similarly, customers should also demonstrate their efforts to develop people's common goals for the project. 6. Developers should make recommendations and solutions to demand and product implementation. Usually, the customer's "demand" is already a practical implementation plan, and analysts should try their best to understand the real business needs from these solutions. It should be found that the existing system does not match the current business to ensure that the product will not be ineffective or inefficient; after thorough understanding things in the business sector, analysts can propose considerable improvement methods, experience and creation The analyst person can also propose some of the valuable system characteristics that some users have not found. 7. Describe the product usage characteristics Customers can require analysts to pay attention to software easier, because these ease of characteristics or quality properties make customers more accurate and efficiently. For example, customers sometimes require the product to "interface friendship" or "robust" or "high efficiency", but for developers, it is too subjective. The correct approach is that analysts understand which features have a negative impact on which characteristics is negatively influenced by inquiring and surveying the customer's "friendly, strong, efficient, and the specific characteristics included in the customer." To make a reasonable payment. 8, allowing reusing existing software components usually have certain flexibility, analysts may find that some software components are very similar to customer description, in this In the case, the analyst should provide some choice of modification requirements to reduce the development cost and time saving time of the new system, without having to strictly operate in accordance with the original needs. So, if you want to use some existing in your product The commercial common components, and they are not fully fitted with the features you need. At this time, the demand flexibility is extremely important. 9, requires a true and reliable assessment of the cost of change, people face better When it is also more expensive, different options will be made. At this time, it is necessary to evaluate the impact of demand changes, it is necessary. Therefore, customers have the right to develop personnel A true and credible assessment, including influence, cost, and loss. Developers cannot exaggerate assessment costs because they do not want to implement changes. 10. Everyone who meets customer functions and quality requirements, I hope that the project is successful, but this is not only required Customers must clearly tell developers about all the information they need to "do", but also ask developers to understand clearness and restrictions through communication, must clearly explain your hypothesis and potential expectations, otherwise developers development Out of the product is likely to be unable to satisfy. 11. Explain your business analyst to explain your business analyst to your business concept and terminology, but customers cannot count on experts in this field, but only let them understand you Problems and objectives; do not expect analysts to grasp the subtle potentials of customer business, they may not know "common sense" for customers to make a grantee. 12. Take time clearly, and improve the demand customers are very busy, but no matter How can customers need to take the time to participate in the Discussion on the Mental Peak Conference, accept interviews or other activities that have obtained demand.
Some analysts may first understand your point of view, and afterwards find you still need your explanation, please patiently treat some demand and demand refining process, because it is a natural phenomenon in people's communication, not to mention This is extremely important for the success of software products. 13. It is difficult to prepare a clear and accurate demand document in detail. Since the problem of processing details is not only annoying and time consuming, it is easy to leave ambiguous demand. However, during the development process, this kind of fuzziness and inaccuracy must be solved, and the customer is precisely the best candidate to solve these problems. Otherwise, there is only to rely on the developer to correctly guess. This is a method for temporarily adding the "to-pending" flag in the demand analysis. This flag can indicate which is where it is necessary to further discuss, analyze or increase information, and sometimes it is also a "to be determined" because it is difficult to resolve or not handle it. Customers should try to explain the contents of each demand so that analysts can accurately write them into the Software Demand Report. If the customer does not accurately expresses, it is usually required to use prototype technology. Through prototype development, customers can repeatedly modify them with developers, and constantly improve the demand definition. 14. Timely decision analysis will require customers to make some choices and decisions, including processing methods raised from multiple users or select compromise in quality characteristics conflicts and information accuracy. Customers who have the right to make decisions must actively treat this, do it as soon as possible, do decide, because developers usually only wait for customers to make decisions to act, and this wait will delay the progress of the project. 15. Respecting the feasibility of developers and cost assessment of all software features have their own cost. Certain product features of customers may not be in technology, or implement it to pay high cost, and some demand tries to achieve performance that is impossible to achieve in the operating environment, or attempts to get some fundarated data. . Developers will have a negative evaluation of this, and customers should respect their opinions. 16. The priority of division needs Most items do not have enough time or resource implementation of each detail. Decide which features are necessary, which is important, is the main part of demand development, which can only be responsible for setting up demand priority, because developers are impossible to decide the needs priority according to customer views; developers will be for you Determine the priority to provide information about the cost and risk of each requirement. Under time and restrictions, the desired characteristics can be done or have completed the views of developers. Although no one is willing to see that the needs of their hopes are not implemented in the project, after all, it is necessary to face reality, and business decisions sometimes have to narrow the project or extend the period of time according to the priority, or increase resource, or in quality. Find a compromise. 17. Review Demand Documents and prototype customer review demand documents, a chance to bring feedback to analysts. If the customer thinks that the "Demand Analysis Report" written is not accurate enough, it is necessary to tell the analyst as soon as possible and advise the improvement. A better way is to develop a prototype for the product. This customer can provide more valuable feedback to developers, making them better understand your needs; prototype is not an actual application product, but developers can translate them, expand their successful systems. 18. Demand changes To immediately contact constant demand changes, will bring serious adverse effects to the quality products completed within the scheduled plan. Change is inevitable, but in the development cycle, the more changes in the late stage, the greater the impact; change will not only lead to extremely high cost, but will be delayed, especially after the general structure has been completed, it needs to increase New feature. Therefore, once the customer finds that it is necessary to change the needs, please notify the analyst immediately. 19. Follow the process of processing demand changes in accordance with the development group to reduce the negative impact of changes to the minimum, all participants must follow the project change control process.