Personal software process 2 Basic Project Development Process

Source: Internet
Author: User

The first step is the collection of requirements. How can this problem be solved?

First, communicate with the user to find out the project goal. This is usually a few words about the user's language, but you must understand it and write it down. Then we need to do the second thing, that is, what functions the software needs to provide to achieve the project goal. Of course, this is related to the user's job process, business rules, and specific positions. The product here is a list of functions. The third is the description of the function list, which is usually a paragraph that uses the user's language.
Generally, there is no need to record very detailed business rules, which are usually clear during communication. Our question is: what should we do? Do not involve too many details.

After these three tasks are completed, the demand will come to an end. Our team should have at least one person who fully understands the objectives of the project, what features we need to implement, and what these functions are mainly. For business details, you can communicate with each other to form text, simple, or negligible. However, in this process, the personnel responsible for requirement analysis must be able to persuade themselves.

 

Since then, Division of stages requires some experience. Function list, corresponding working time. Well, there is an ideal concept of working days-I personally don't think it is a good choice to multiply the time I calculated by 2. Some people think that this is a stage of comparison, that is, to find the simplest function, and look at its size at 1, and assign values for each other function in proportion --- well, it is actually very troublesome. Although those scholars despise estimating time when giving lectures to us, time is, after all, the most direct concept.
The function of estimating time is to consider completing the process in stages.
For time-consuming projects, try to have a two-week period. For a little longer, consider a four-week period.

What is the basis for dividing stages? Four principles: 1. The fastest way to use; 2. Evenly distributed to each stage; 3. Various risk factors are taken into account; 4. Each function must be completely completed at each stage, do not make a semi-finished product
We need to record the goals of each stage in one to three sentences.

 

Then we start the first phase. This is usually to communicate with users about one to two days after one business day. Don't pick up the shelf and do much preparation. Here, I do not recommend the so-called group evaluation function size, users decide what to do first and what to do later. This kind of flower is a waste of time, and the second is a lack of feasibility.

 

Then, the project owner can consider designing user experience for various features in the first stage and dividing development tasks. Some experience is required here: 1. What should I consider for a function? There is a big difference between cainiao and veteran. 2. The development sequence of these tasks should be as natural as possible. 3. What problems may be encountered in these tasks should be listed as well. These problems may be business issues and document tasks need to be arranged; they may be technical issues that need to be resolved and written in the form of documents, so that others on the team can spend the same time solving these problems. 4. What are the things to be tested? Do not overwrite everything.

After,ProgramStaff will start the first stage of development.
Here, for every programmer, the first problem is database design, class design, and interface design. Which tables are involved in each function, and databases are created and designed at this stage. In principle, the class design is what each programmer wants to do for his own tasks. However, if multiple programmers are involved, the project manager must explain in advance in the task, and it is best to create a blank class first. For common ORM problems, there is no need to use an ORM framework. From my personal experience, I just need to use the database as a repository and put it in and out. It may not be a good idea to rely on an ORM framework for performance and development time.

Every day, the Project Manager determines whether it is necessary to ask: is the progress slow? What is the problem? Are there any mistakes? You do not need daily standing meetings. In this process, we encourage programmers to look at other programmers in the project.CodeNewbie, in fact, forms a close-to-uniform style of the team in the Process of imitation.

As for code specifications, you don't have to pay too much attention to it. As long as it's not that terrible form, you just need to imitate the style of the code generated by the development environment as much as possible. If the project manager has time or patience, he may occasionally modify the programmer's code.

 

The programmer completes a task, notifies the project manager, and receives the next task. The Project Manager tests important functions at the right time, records the corresponding problems as bugs, and specifies the personnel to fix them. When all tasks of a function are completed and no problems are found in the test, the next task is started until all functions are developed at this stage. At this time, you can invite customers to see the results. Generally, they will operate on their own, record their ideas and intentions, and consider them in the next stage.

This loop ends until the project ends.

In a summary, the process is as follows: Project objectives (documents in a few words)-> function list-> division stages (including documents such as functions and stage objectives of each stage) -> User experience design for the first feature-> development tasks and problems of the first feature are assigned to people-> common tasks in the project (Database, interface system, public class design, description), arrange Personnel) -> the programmer completes the task one by one-> the first function completes-> the key function tests-> starts the next function...

Business details documents must be written before they can be arranged as project tasks.

As a project manager, you can reflect on the status of your programming: when you are in a bad mood, will you be unable to do things all day long? After two hours of concentrated work, will it feel dizzy and require three hours of rest? When the problem persists for several days, are you bored? Can you hold it on for the moment?
In fact, this is true for every programmer.
In the morning, you can go out and run for 10 minutes. The aerobic exercise will make everyone feel a little strange. When the progress of programmers is obviously stagnant, be patient and wait. You can ask him what problems he has encountered and check whether he can make appropriate suggestions. This is a normal phenomenon.
If you work for one or two hours, you can rest for a while and chat. Do not be too nervous when the progress is not obvious.

What should I do when there is a problem with the progress?
Well, this process will generally not crash, because the features that users need most have been completed before, but if you are too serious about customers, there is basically no way: put unhurried functions at the end. Some functions try to persuade users not to do so. Some functions are implemented in a simpler way and require the strong hands to take on more work or the project manager to participate in the battle? I think we have all experienced this. My opinion is still: Basically there is not much way-a decrease in time, leading to a decline in program quality, there is a critical point. If the company is working beyond its capacity at the promised time, the software process cannot really solve this problem.

The final result is: overtime, provided that the project manager takes on more responsibilities. The reality of working overtime is to increase the sense of urgency, which forces programmers to focus more on their work time from outside. The so-called overtime cannot solve the problem. Overtime itself means that the project fails and is not suitable for Chinese people.

 

Of course, we need a relatively simple project management tool. I use team fundation server, the stages, functions, tasks, problems, bugs, tests, andSource codeManagement, which is basically a simple solution. Even for personal projects, I also use TFs. I recommend that you install it in basic mode, that is, you do not need to worry about reports or other things. In this case, backup is simple, backing up a database is fine-complicated Backup processes are a waste of manpower and can suppress the desire for backup. This is not safe.

Next, I will repeat the above process with the example of the stock analysis project of the private equity fund.

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.