In August this year, I joined a teacher’s project development team. A young team, including students of the same grade, younger students, and of course, our senior graduate students.
Project background
This project is a school-enterprise cooperation project of our school. Its main function is to transfer the project quality inspection process from offline management to online management, that is, the informatization of business process. Including the management of quality inspection process and inspection standards. It mainly consists of web administrator background and Android app. And the system was there because the technology was old and needed to be upgraded.
The overall picture of the team
1. Programming skills
Basically, you’re not very good at programming. Most of you just finished the SSM framework in July and August.
2. Have experience in developing Web projects
Most of you don’t have that experience either. There is a girl who has been practicing outside the school, temporarily can be incorporated into the main force. However, as an intern, time investment should also be taken into consideration.
My task
Responsible for leading 6 students to complete database design and system back-end development. Act as the back-end team lead.
I know my role
- Ensure that projects are delivered on time
- Do a good job in communication and coordination
- Try to simulate a development model (environment) close to the enterprise for the students.
What did I actually do
1. Break down tasks
First of all, I need to decompose the activities involved in the whole project into the time and personnel of each sub-activity.
Overall time: August 14 to October 15, need to exclude time for 16 days, including 3 days to start school, 5 days to prepare for cet-4 and CET-6 exams, National Day Mid-Autumn Festival holiday 8 days. The total number of available days is 46 days (note: the construction period here is different from that in the enterprise, because we are a student team, so we do not consider the double rest, and the enterprise usually calculates the double rest).
It is generally divided into four stages: requirement understanding, development (including unit test), integration test and final test. The overall design of the system was incorporated into the requirements understanding phase as the technology was upgraded on top of the old system. Integration testing adopts the continuous integration approach.
2. Sort out customer needs and clarify business processes from August 13 to 21
In this step, since it is an old system, the relevant requirements research work has already been done and the requirements documentation is available. All we need to do is comb through the contents of the requirements document. To this end, I drew a brain map of requirements in processOn to help myself go through the requirements, but also to help the students to better clarify the requirements. In my opinion, it is very important to be clear about needs, so I plan to spend a week to let students be clear about needs.
3. Determine the system development technology stack on August 14
In the previous meeting, the separation of the front and back end development was decided. Therefore, this is also about the back-end technology stack.
- JDK version 1.8;
- Project build tools: Maven 3.x;
- Version control and development collaboration platform: Git, Coding.net;
- Interface design: Based on restful interface design, unified return results, unified exception handling;
- Main development tool IDEA;
- Springboot2.x for web layer and service layer;
- X+druid 1.1.X+spring-boot-starter-data-redis 2.x;
- JSON serialization fastjson 1.2.x;
- Shiro 1.x StringEscapeUtils Filter for security;
- Api documentation: swagger, swagger-UI;
- Log: log4j;
- Mysql 8.x, redis 5.x;
- Test environment resources into Ali Cloud ECS Centos7.x (one week after interface development);
- SMS: Aliyun SMS (introduced in the test phase);
- Object storage: Aliyun Object storage (introduced in the test phase);
- Container technology: Docker;
- Other tool platforms: Xshell, Xftp, Postman, processOn, wps.cn SQLYog, etc.
4. Built the skeleton of the project and created the iterative task on the Coding.net platform August 15
In this step, I mainly built an idea project and created iterations and subtasks on Coding.net. Another is to establish requirements change records and Bug records.
5. Training before the start of back-end development on the evening of August 24th
Considering that it is the first time for everyone to cooperate in development, and most students do not have relevant experience. Therefore, I felt it was necessary to hold a meeting to discuss some development specifications. This includes interface design, code style, and requirements understanding. At the end, hand out tasks.
After this
I plan to hold a meeting with the front end team every Sunday afternoon to understand the overall project progress and discuss some technical problems.
6. Phase I development From August 25th to September 12th
At this stage, we only need to complete the development of the system basic module, inspection standard management and other modules, and we will arrange 6 developers (back-end). Two meetings were held, on 30 August and 8 September.
During this stage, the overall development progress and the plan progress basically did not have much deviation, that is to say, basically completed the task as planned.
7. Development Phase ii from September 20 to 30
At this stage, I found a problem, that is, after the development of the front and back end was separated, there were some problems in the project progress and communication. In the meeting before the project development started, we decided to let the backend development directly communicate with the interface students and the front-end development directly communicate with the page students. Then I seldom kept good communication with the students in charge of the front end team, which led to some problems.
In order to make up for the communication problems of the front and back ends, we organized a collaborative development of the front and back ends on the evening of September 24th. Communicate and coordinate problems in person. Judging from the results last night, the development of the front and back end is not bad (the reason for not organizing the period after the beginning of the semester is also due to the requirements of cet-4 and CET-6, make-up exams and epidemic prevention).
At present, the interfaces developed before have been put in the test environment for the front-end team to call, the reason for writing this blog is to review the work done in this project, in order to find deficiencies.
From the current situation, it is very serious that I did not communicate enough with my immediate team leader. In the following work, I need to remedy this problem.
This article will be updated as the project progresses through delivery.