Hello, everyone, I am Xiao Peng, from graduation to find an internship, in a flash of an eye more than three years have passed, since graduation feel time has passed particularly fast. My first job was in a small entrepreneurial company with my own products and plans. As it was oriented to b-side businesses, the development was tepid. After the outbreak of the epidemic, the company had difficulty in operation, so I had to resign and take another job. After working in the first company for two years, I moved to my present company, and I am satisfied with it.

In my three years of work, I have experienced the development process of different companies. Small companies pay attention to rapid development, manpower shortage does not say, up is to do, so the problem is also very obvious, demand is not clear, low test coverage, bugs, online non-standard and so on. Large and medium-sized companies pay attention to clear division of labor, each doing his own job, just focus on their own hand, but there are also bad places, is unable to master the overall business.

In this article, Xiao Peng will share the work process and matters needing attention of the developers of medium-sized self-research companies, and take an example of a requirement, to simulate the requirement review, function separation and so on, go through the whole process, I hope it can help and inspire you.

1. Requirements review

1.1 Collecting Requirements

The product manager collects customer and operational requirements, analyzes and sorts them out, and writes requirements documents.

For example, let’s assume that this demand is [V1.1.2 order module optimization: add comment function, you can get designated points after completing the comment, and different points can be configured according to different membership levels. Later points can be exchanged for goods and deducted amount when payment]

1.2 Sending required emails

After the product manager has finished writing the requirement document, he will send emails to relevant development teams and personnel according to the type of the requirement document (for example, regarding the order module requirements this time, the email will be notified to the developers of the transaction team). After receiving the email, the developers need to familiarize themselves with the document in advance and record the questions in the requirement document.

Notes:

1. Developers must take the time to read the requirements document several times, otherwise they will be confused during the requirements review phase.

1.3 Requirements review

The product manager convenes a review meeting to explain the details of the requirements document and answer any questions developers may have.

Notes:

1. It is necessary to coordinate the time and reserve the meeting room in advance (such as the nailed meeting room) to avoid the meeting being unable to be held due to the time conflict of personnel in different cities.

2. Developers remember to ask questions, after all, the product can not be considered particularly carefully, for unreasonable demand needs to be pointed out in time, timely stop losses.

2. Technical review

After the requirements review is completed, the developers will review the technical feasibility of the difficult and core requirements, analyze the possible problems, and analyze whether the function can be realized. (For example, the order module can be commented upon the completion of the order and receipt of the goods.) For small requirements, this process can be ignored.

3. Function splitting

3.1 Function Splitting

After the requirements review and technical review are done, the developers will split the functions according to the requirements document, record every detail in the document, record the functions to be developed, and summarize them in the online document.

For example, for the requirements assumed in this paper, we split the requirements from the perspective of back-end personnel and split the following functions:

1. Data table design

1.1 Overall design and Conception of data table (evaluation time: 4)

1.2 Integral Configuration Table (evaluation time: 0.5)

1.3 Comment Form (estimate time: 0.5)

1.4 Score Table (evaluation time: 0.5)

1.5 Point variation Table (taking into account the acquisition of bonus points and the use of points) (estimate time: 0.5)

2. Integration configuration

2.1 Configure different rewards points according to different membership levels (evaluation time: 8)

3. Comments

3.1 Complete the comment interface (estimated time: 16)

4. Bonus points

4.1 Scalability needs to be taken into account (there may be check-in and delivery points, receiving and delivery points, comment and delivery points, sharing and ranking points, etc., and the imagination of the product manager should be trusted) (Evaluation time: 8)

4.2 Bonus points function, try not to write too rigid (estimate: 16)

4.3 Score Acquisition Record (evaluation time: 8)

5. All terminals are coordinated

5.1 Interface Debugging (Time: 8)

5.2 Overall process joint adjustment (evaluation time: 8)

Notes:

Function split to the smallest granularity, otherwise it will affect the estimated schedule.

4. Assign tasks and schedule

4.1 Estimate and schedule

After the requirements review, technical review and function splitting process, it comes to the more important estimation, which is to estimate each small function of the split, and add up to calculate the required duration. For example, in section 2.1 Function Splitting, the unit of estimation after each function is hour.

After the construction period is calculated, for example, the demand schedule is 78 hours. According to the 8 hours per day, 78/8=9.75, that is, 10 working days. Based on manpower, for example, if we invest two back-end development manpower, then 10/2=5, that is to say, the back-end development needs 5 working days to complete the development of this requirement.

Also need to estimate the front end personnel, such as the investment of a front end manpower, the front end of the little sister estimated 7 working days, then the final estimate of the schedule is 7 working days.

Inform your supervisor and product manager of the scheduled time limit. After the product manager confirms that there is no problem, the task can be assigned and developed. If the product says that the schedule is too long, you can either compress the working time by yourself or tell the reason to the product so that the other party agrees with your schedule.

Notes:

1. If time permits, try to estimate as much time as possible to avoid changes in requirements during the development process, which may require overtime to complete within the specified schedule.

2. When you need to consider the front and back end estimates, if you are the back end, then you need to understand the front end estimates, and ultimately you need to schedule according to the longest estimate.

4.2 Assigning Tasks

The split and estimated tasks can be allocated by the team leader or the developers themselves, according to the types of functions and the actual situation of developers, to ensure that everyone’s working hours are more equal, and competent personnel can undertake the development of core functions. Finally, the task is entered into a system such as Zen Tao or JIRA.

Notes:

1. It needs to be allocated according to the types of functions, such as bonus points and bonus records can be allocated to the same person for development.

2. Everyone’s assigned work hours should be added together, and the difference should not be too much, otherwise it may exceed the scheduled schedule.

Development of 5.

In fact, there is not too much need to describe the development stage, according to our above estimate, to ensure that today needs to finish the function is completed.

Notes:

1. More thinking, more abstract, to develop, to be a professional programmer, write less unmaintainable code, less shit mountain.

2. Timely communicate with the product if there is any problem in the development stage.

6. Test

Great, finally the development is finished, after the end of the development, and according to the test cases tested several times, you can send test email, test list to the test sister.

The tester will test whether the relevant functions of this requirement are completed and whether there are bugs in the test environment. If there are bugs, they will be registered in the system and assigned to relevant people.

Notes:

1. Be sure to select the right person and cc to the relevant person when sending the email.

2. Before testing, you must test yourself several times, at least the process should be passed.

3. Handle and solve bugs assigned by tests in a timely manner.

7. Publish online

After the test is completed, and relevant bugs registered have been solved smoothly, the product will be decided when to launch according to the time point of the business.

Developers only need to order takeout, merge their own developed branches into the master branch, initiate online approval, and the system automatically builds projects to complete online.

Notes:

Pay attention to branch management.

2. Check whether other associated systems go online and pay attention to the order in which they go online.

3. Check whether the SQL is successfully executed or an error is reported.

8. Checking

If there are too many problems in the development process or a major bug event occurs after the launch, it is necessary to hold a review and summary meeting, mainly to describe, analyze, summarize and summarize the problem, so as to draw lessons from it, so as to avoid such problems next time.

9.code review

Organized by developers conference, in order to find the deficiency of the code in the system, aiming at a certain demand, make the demand of development personnel to explain your code, other developers in problem records, after the interpretation of the other developers for questions and discussion, discussing what unreasonable place, write, good place. For unreasonable code, need to replace themselves, in the next version of the online fix.

Notes:

1. Actively participate and ask questions to improve the system.

2. Focus on the issue, not the person.

10. Summary

The above content summarizes the development stage of each link of the process, function split and estimate the link is more important, development and launch stage there are a lot of places to write, there is an opportunity to continue to share. I hope this article is helpful to friends, thanks for reading!