Personal software process 3 Requirement Analysis

Source: Internet
Author: User

A private equity fund, hoping to develop software to achieve their own analytical thinking, is a small project, and we will hide their analytical thinking, this section describes how to update and display the key-line chart as an example to describe the requirement analysis, phase division, task division, Problem and bug handling,Source codeThe entire process of version management. I personally undertake all the work of this project, completed in my spare time in three months. This series describes the work of the previous two months.

First, we need to determine the project objectives. The simple expression is: view the K-line chart of the stock. This means that we need to update the stock market and dividend distribution information of the day every day, and be able to draw a line chart based on their habits.

The second step is to list the functions: the so-called requirements are determined by the project objectives. Since we want to analyze the stock trend, we need to save the stock market data on a daily basis, so we have to "update the daily line", and the permission-based interest-removal will affect the closing price and transaction volume, to make market changes more accurate, we need to import the right information of the two markets. These things may not be written by the user. The user can clearly explain his intention to do this project. You can understand it and use the simple text above to express it and the user can recognize it. This is the process of requirement analysis.

We also need to note that the project goals and function list should be viewed by the user. The user's language must be used and there should be no computer terminology. Our thinking is at the "what to do" level, rather than the "how to do" level, so there is no need to consider technical details in this process.

At the same time, the word "function" has many aliases: Use Cases, user stories, scenarios, user scenarios, and so on. They all claim to be different from each other. However, in my opinion, you can easily tell users that "we have completed three functions", but you cannot say this to users: "We have completed three user scenarios ", it sounds really amazing. As a project manager for many years, what I emphasize most in my team is not unreliable diligence, concentration, and other things, but "people talk, don't talk nonsense ". There is a way to make it clear to the majority of people with complicated things, which means you actually understand it.

For each function, pay attention to the Syntax: the object structure, which is roughly "what ". For example, "Update" is a verb, "Update", "Update", and "Update. The subject is known to everyone. Here we ignore the subject of "who. For example, to view the K-line chartProgramIt is easy for Members to write "generate a K-line chart". The difference here is the position problem. Users are viewing the chart and machines are generating it. The name of a function should reflect what the user wants to do, rather than what the machine or programmer wants to do.

Do not try to list all the business details in the requirement. My understanding is that the requirement focuses more on the user's goal, "what do they want", rather than "How to do it ", text work is not too much. Many large companies have hundreds of pages of text, and I doubt whether users and programmers have the energy to look at it. It is just the formalism of bidding. As for "How to do it", I will use the "Update Daily" function in the next section to describe how to clearly "How to do it" with a few words ".

The order and size of the function list are important. We will list the function list based on what we do first. How can we determine the order? The general principle is "users can see results as soon as possible", and the second principle is "high risk first ". For example, in normal sorting, we should first use analog data to implement the "display K-line chart" function, then update the daily line, and then process the re-authorization. However, we have never touched on VC. The daily routine update function involves many aspects such as the interface processing system, file operations, database operations, and multi-thread programming. It covers a wider range of knowledge, from the perspective of learning VC programming, it is more appropriate. Therefore, I will sort them by updating the daily line, viewing the K-line chart, and restoring the right. For the evaluation of the relative function size, we can see that the review should be the simplest, set to 2, and the daily update will take about 2 times, set to 4. It is also set to 4 to view the K-line chart. As for the Unit, some systems are called story points, scenic spots, or ideal jobs. We only need a rough workload evaluation. The function list is as follows:

1. Update the Daily Routine 4

2. View line chart 4

3. Review 2

 

Step 3: evaluate the risk factors:

1. To create a desktop system, fund members have different computer operating systems. This project is a massive computing project, so the best choice is to use VC for development. I have never used this. I need to learn and do it during the project process. This is also a very interesting thing. Many years ago, my alma mater, Wuhan University, and the course for computer programming started was Pascal. The teacher explained to everyone how basic was not Xiao and how bad it was to use C language, then Professor Li Weihua opened two courses for us, LISP and Prolog, for his main research field of artificial intelligence. After coming out of work, he mainly used Foxpro for application and then Turbo Pascal, even the assembler language is familiar with the situation (because it was boring to analyze the source of the Chinese DoSCode), And since the launch of the. NET platform, I 've been stuck in Asp.net and WPF.Programming LanguageThe first two digits in the ranking do not match: Java and C ++.

2. Time and personnel: because the company's technical staff are busy with another enterprise project, they will take over the project out of interest in the securities industry. I am able to spend about three to five hours a day and some time on Saturday and Sunday.

Simply put, it takes three months to complete a field that has never been used in a language that has never been used.AlgorithmComplex projects.

Of course, the final result must be of great joy, otherwise I won't show it out. This also shows the impact of interest and self-confidence on work efficiency. what you like to do will inevitably be fully invested. As for VC, the legendary Complex C ++ syntax and the time it takes for you to master MFC are just a few years. In my opinion, that is, the window paper. For something similar to MFC, I have always adhered to the principle, you don't have to learn how to make TV or make every circuit board in it. You just need to use TV. How complicated is it? As for the syntax, C # is the basis, and C ++ is not difficult to estimate.

The risk factors are listed for the development team and are meaningful to the project schedule. Of course, it is also the basis for bargaining with users in terms of price and time. For example, you cannot say that you have never used VC in the above risk factors. Otherwise, the user may doubt whether you are competent. The complexity of Automatically dividing the trend can be emphasized, which helps to find an excuse for delay in advance when it cannot be completed as scheduled. The risk factors are listed as follows:

1. VC has never been used

2. Insufficient personnel and time.

 

Step 4: Division

We divide the stages according to the order of the function list, the relative size of each function, and the risks. Each stage is four weeks, it is also the concept of iterative development and release of minor versions that need to be "thoroughly implemented. Simply put, the functions completed at this stage are usually what the user sees at the end. It is better to break down the 10 fingers. The reason is called "stage" rather than "iteration". This is also a consideration of communication with users. It is still the principle: speaking people.

In the first stage, we implement the first function. In the second stage, we implement the 2nd and 3 functions.

For projects with tight schedule, I usually take two weeks as a phase to schedule the time. Because this project is working in a spare time and VC learning has unpredictable factors, it is arranged according to the four-week schedule of each stage.

 

Finally, let's make a slight conclusion: After two hours of communication with the user, we know the goal of the user to start the project, list the functions, and use a simple text description to get the user's approval. Work for two hours to list risk factors and division stages. Next we will divide the development tasks and ask questions for the first feature in the first stage. This process will take about two hours. That is to say, for such small projects, the project manager will be able to make preparations within one business day, and every developer will be able to see their work tasks in the team fundation server the next day. Even for complex projects, this process does not take a long time. My limit is one week. In any case, it starts when the user decides to start the project, programmers of the development team should be able to start working within a week at most.

In the next section, we will introduce the overview of the first feature, user experience design, and task division.

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.