Rule 20 Requirements Analysis


For business users, followed by hundreds of their suppliers, in front of thousands of consumer customers.How to Use software to manage complex supplier and consumer customers, how to do a little seasoning package fine to import and sale, transfer, keep the work flow of goods, these are commercial enterprises need information management system reasons.The significance of software development also lies.Understanding the needs of business users, the true face of such complexity, it is the key to the success of software development.

Manager: "We want to create a complete business management software systems, including commodity import and sale, transfer, storage management, is the headquarters - the chain store business model. By means of communication, automatically stores orders, suppliers, auto settlement,store sales by scanning bar codes, store managers can at any time for merchandise sales and inventory. In addition, we have to provide for government departments report on the commodities business. "

Analyst: "I have learned that the general structure of the framework of this project, which is very important, but in the development plan, we must collect some of the demand."

Managers find it strange: "I'm not just tell you my needs it?"

Analyst: "In fact, you just explained the concept and objectives of the project. These high-level business requirements are insufficient to provide the content and timing of development. I need to use the system and the actual business will be discussion of personnel before they can really understandrequired to achieve business objectives and user requirements, a clear understanding before we can see which is the existing components can be realized and what is need to develop, so that saves a lot of time. "

Manager: "Business people are in the investment. They are very busy, no time to discuss the details with you in detail. Can you explain your existing system?"

Analysts try to collect from the user needs to explain the rationality of: "If we guess the user's requirements, the results will not be satisfactory. We just software developers, not procurement experts, business experts or financial experts, weYou do not really understand the internal operations of this business need to do. I have tried, not really understand these problems start coding, the result no one is satisfied with the product. "

Manager insisted: "OK, OK, we do not have much time. Let me tell you our needs. Actually I'm busy. Please start the development and progress at any time you told me."

After hiding in the fog of demand risk

More than what we see is a client project manager and system analysis of the development team to discuss business needs.In project development, all project stakeholders are interested in on the needs analysis phase of preparation.Stakeholders referred to here include the customer's project leaders and users in the development of needs analysis and project managers.This part of the work be done bit, able to develop excellent software products, but also customer satisfaction.If handled properly, can lead to misunderstanding, frustration, obstacles and potential value of quality and business threats.So visible - and laid a software engineering requirements analysis and project management foundation.

Sweep away the fog of needs analysis

Dialogue like this often appear in the software development process.Customer demand for project managers in terms of analysts, such as "smoke and mirrors" as vague and that the developer was puzzled.Then we sweep aside the Haze, analyze the needs of specific elements:

* Business needs - reflect the organization or client system, the product high-level objectives and requirements, project definition and scope usually be stated in the document.

* User needs - to use the product described in the user task must be completed, which used to be an instance of a script or program description.

* Functional Requirements - defines the software developer must implement the functionality, allowing users to use the system to complete their tasks, to meet the business needs.

* Non-functional requirements - description of the system presented to the user's behavior and implementation of such operations, which includes the product must comply with the standards, norms and constraints, user interface and construction details of the restrictions.

* Needs analysis report - the functional requirements described in the full description of the software system should have the external behavior."Needs analysis" in the development, testing, quality assurance, project management and related functions play an important role in the project.

The previously mentioned products, customer project managers are usually set out a high-level concepts and the main business, work for the subsequent establishment of a guiding framework.Any other description should follow the "business needs" requirement, but "business needs" can not provide for the development of many of the details needed to develop instructions.

The next level of needs - needs of users, the users must be collected using the product.Therefore, these users constitute another software customers, they know what you want to use the product to complete the task and the characteristics of some non-functional requirements.For example: Program's ease of use, robustness and reliability, and these features will allow users to accept the good with the features of software products.

Managers sometimes try to talk instead of the actual user, but usually they are not accurate description of "user needs."User needs from the product of real users, real users must be allowed to participate in the process of gathering requirements.If you do not, the product is likely to be due to lack of adequate information and left a lot of hidden dangers.

In practice, the process of requirement analysis, these two kinds of customers may feel that there is no time to discuss with the needs analysis, and sometimes also want to analysts, customers do not demand that the discussion and preparation of the needs of users will be able to tell.Except when the demand is very simple; or can not do so.If your organization wishes to software success, you must take several days to eliminate the demand for ambiguities, and some allow developers confused aspects.

Excellent software products built on the basis of good demand, and demand excellence from customers and effective communication between developers and cooperation.Only two participants understand what they need, when what is required of successful cooperation in order to establish a good relationship.

Increasing pressure due to the project, all project stakeholders share a common goal, that is, we all want to develop a commercial value and can achieve both meet user requirements, but also satisfied that the developer of outstanding software products.

Customers view

Customers and developers need a good method of communication.20 rules proposed below, customers and developers can review the following and consensus.If you experience differences through negotiated mutual understanding of their obligations in order to reduce future friction (such as the party requires the other party is unwilling or unable to meet the requirements.)

1, the analysts used to use the language of expression in line with customer

Needs discussion focused on business needs and tasks, so to use the term.Customers should be on terms (for example: mining price of commodities, procurement of printing terms) to teach analysts, and customers do not have to know how the computer industry terminology.

2, the analyst to understand the client's business and objectives

Only analysts to better understand the customer's business, to enable the product to better meet their needs.This will help developers to design a truly meet customer needs and meet the expectations of excellent software.To help developers and analysts, customers can consider inviting them to observe their work processes.If the switch to a new system, then developers and analysts about the current use of the old system will help them understand how the current system works, its processes as well as for improvement.s

3, the analysis report must write software requirements

Analysts should be obtained from the client to collate all the information to distinguish between business requirements and specifications, functional requirements, quality objectives, solutions and other information.Through this analysis, the customer can get a "needs analysis", this report enables developers and customers to develop products for the content of an agreement.Report should be read in a client that is easy to understand way to organize and prepare.Customers should review this report to ensure that the report accurately and completely express their needs.A high-quality "needs analysis" will help developers to develop a real need.

4, asked for an explanation of the results of demand

Analysts may use a variety of charts as the text of the "needs analysis" and added that, because the work can be very clear diagrams describe some aspects of system behavior, so the report has a very high value of the various charts; although theyis not difficult to understand, but customers may not be familiar with this, so customers can request an explanation of who the role of each chart, symbols and demand the meaning of the results of development work, and how to check for errors and inconsistencies and other charts.

5, the developer should respect the views of customers

If between users and developers can not understand each other, and that there will be a discussion on the needs of obstacles.We can work together, "Hear all."Needs of customers involved in the development process and respect their right to require developers to project success and value their time spent by the same token, customers should also be the developer for the common goal of success of the project's efforts to show respect.

6, developers and products demand to implement recommendations and solutions

Customers typically called "demand" is already a practical implementation of the program, the analyst should try to learn from these solutions in the real business needs, existing systems should also find out the inconsistency with the current operations to ensureproducts are not invalid or ineffective; business areas in a thorough understanding of things, the analysts will be able to make very good improvement methods, experienced and creative staff also proposed to increase the number of users do not find very usefulvalue system characteristics.

7, describes the product characteristics

Customers may request staff to achieve the functional requirements analysis, while also paid attention to the software's ease of use, ease of use features or quality as these attributes enable customers to more accurately and efficiently complete the task.For example: Customers sometimes require products to be "user friendly" or "strong" or "high efficiency", but the developer is concerned, there is no practical value is too subjective.The correct approach is to analyze personnel through inquiry and investigation to understand our customers want "friendly, robust, efficient and contain the specific characteristics, specific analysis of what characteristics to which features have a negative impact, in the performance cost and the proposed solutions to the expected benefitstrade-off between to ensure a reasonable choice to make.

8, allowing the reuse of existing software components

Usually demand some flexibility, the analyst may find that a software component has been described with the customer demand is very consistent in this case, the analyst needs to be modified to provide some options for developers to reduce the new systemdevelopment costs and save time, instead of strictly according to the original requirement specification development.So, if you want to use some of the products commonly used in the existing commercial components, and they are not entirely suitable for the features you need, when demand for a certain degree of flexibility becomes extremely important.

9, the cost of the change required to provide true and reliable assessment

Sometimes, people are faced with better, more expensive options, will make different choices.But this time, on demand to assess the impact of changes on business decisions to help, it is very necessary.Therefore, customers have the right to require developers to give a through analysis of authentic assessment, including impact, costs and gains and losses and so on.Developers can not implement the changes and do not want to exaggerate the cost assessment.

10, access and quality to meet customer requirements for system functionality

Everyone wants to project success, but not require customers to clearly inform the developers about the system of "what" all the necessary information, but also requires developers to understand clearly through the exchange of choice with limitations, be sure to specify yourassumptions and expectations of the potential, otherwise the developers to develop products is probably not to your satisfaction.

11, to explain your business analysts

Analysts to rely on customers to explain the business concept and terminology, but customers can not expect analysts to become experts in the field, but only so that they understand your issues and objectives; do not expect analysts to grasp the client's business potential between the fine,They may not know is that granted for the customer, "common sense."

12, taking the time to clear and improve the demand

Customer busy, but in any case customers need to take time out to participate, "Summit head" discussions, interviews or other access needs of the activity.Some analysts may be asked to understand your point, but after that also need your explanation, then please be patient to treat some of the needs and requirements of the refinement process of repeated work, because it is the people communicate in a very natural phenomenon, not to mentionThis is critical to the success of software products.

13, need accurate and detailed description of

Prepare a clear and accurate requirements documents is very difficult.As the handling of details is not only annoying and time consuming, so it is easy to leave vague requirements.However, during development, we must resolve the ambiguity and inaccuracy of the customer is precisely to address these issues the best person to make a decision, otherwise, it had to rely on developers to correctly guess.

Temporarily add in the needs analysis "pending" sign is a solution.The flag can be specified by what is need for further discussion, analysis, or increase the information of the place, sometimes because of a special needs may be difficult to solve or deal with it and no one wants to mark the "pending."Customer needs to be as far as possible the contents of each are explained clearly so that analysts can accurately write them, "Software Requirements Report" to go.If the customer is not an accurate expression of a moment, usually requires the use of prototyping, through prototype development, customers can modify the same again with the developers to continuously improve the requirements definition.

14, to make timely decisions

Of staff will ask customers to make some choices and decisions that include users from multiple treatments or proposed properties in terms of quality and accuracy of information conflict, choose a compromise and so on.Customers have the right to make a decision to actively treat it all as soon as possible to do processing, decision making, as customers such as developers usually only make a decision to act, and this wait will delay the progress of the project.

15, respecting the needs of developers to assess the feasibility and cost

All the software functions has its costs.Some customers want product features may be technically feasible, or to implement it to pay a high price for trying to achieve some of the requirements can not be achieved in the operating environment, performance, or trying to get some basic data are not.Developers will make a negative assessment of this, customers should respect their views.

16, by the priority needs

Most projects do not have enough time or resources to achieve the functionality of every detail.Decide which features are necessary and what is important is that the main part of requirements development, which needs only by the customer is responsible for setting priorities, because the developer's point of view can not be determined in accordance with customer demand priority; developers will provide youprovide information to determine the priority needs of the cost and risks of each message.

Time and resource constraints, whether completed or on completion of the required number of properties should respect the views of developers.Although no one wants to see the needs of their wish to achieve in the project was not, but after all, is to face the reality, based on business decisions sometimes have to reduce the scope of the project priorities or extension of time, or increase the resources, or in the quality ofto find a compromise.

17, Review requirements documents and prototypes

Customer Review requirements documents, is to give analysts an opportunity to bring feedback.If the customer that the preparation of the "needs analysis" is not accurate enough, it is necessary to inform the analyst as soon as possible and to provide recommendations for improvement.

Better approach is to develop a prototype for the product.So that customers can provide valuable feedback to developers, enabling them to better understand your needs; prototype is not a practical product, but developers can convert it to expand successfully to complete the system.

18, need to change to immediately contact

Constantly changing needs, will be completed within the scheduled program to bring quality products serious adverse effects.Change is inevitable, but in the development cycle to change more in the advanced stage, the greater the impact; change will not only lead to a very high cost of rework, and the schedule will be delayed, especially in the general structure has been completed then the need to increaseWhen new features.Therefore, once the customer demand that need to change, please notify the analyst.

19, in accordance with the development team needs to change the course of treatment

To change the negative impact of the reduction to a minimum, all participants must follow the project change control process.This requires not give up all the proposed changes, the changes required for each analysis, considering, and finally make the right decisions, to determine what changes should be the introduction of the project.

20, respecting the needs of developers using the analysis process

Software development than the collection of the most challenging needs and determine its validity, analysts approach has its own rationale.Perhaps the customer that the process of gathering requirements is not cost-effective, but please believe that the time spent on the needs of development is very valuable; If you understand and support analysts to collect, prepare requirements document and ensure the quality of the technology used, thenThe whole process will be much more smoothly.

"Demand sure" what it means

In the "needs analysis" on the signature confirmation, usually considered a sign of our customers agree to conduct needs analysis, However, in practice, customers tend to "signature" as that makes no sense."They want me in demand following the last line of the document signed, so I signed it, otherwise, do not these developers start coding."

This attitude will lead to trouble, such as customers want to change the requirements or product dissatisfaction would say: "Yes, I was in the needs analysis report signed, but I did not have time to read all the contents, II believe you is that you not let me sign. "

The same problem also occurs in only the "signature confirmation" as the task of the analyst who needs to change once there, he pointed to "needs analysis", said: "You have to sign in demand, so thethat we developed, if you want anything else, you should tell us earlier. "

Both attitudes are wrong.Early in the project because it is impossible to understand all the requirements, and no doubt there will be a demand for change, in the "needs analysis" needs to sign the confirmation of the termination process of the correct way, so we have to understand what it means to sign.

On the "needs analysis" is the signature of the agreement to establish a baseline of needs, so we signed it should be understood: "I agree with the statement requirements document software requirements of our understanding of the project, further changes in the baselinethe change process through the project to be defined. I know we re-negotiation may make changes to the cost, resources, tasks and project phases such matters. "demand of the two sides reached a consensus would easily put the future of friction, the friction fromprojects to improve and demand error or a new market and business requirements.

Needs dial confirmed the fog dispersed, show the true face of demand, the demand for the initial development work on the two sides are clearly drawn the period, and contributes to a continuing good relationship between customers and developers, the success of the project has laid a solidbasis.




[Next]