在今年8月份,我加入了学校一位老师的项目开发团队。一只年轻的队伍,有同年级的同学,也有低年级的学弟学妹们,当然也有我们的研究生学长。
项目背景
这个项目是我们学校校企合作的项目。它的主要功能就是将原先线下管理的工程质检流程搬到线上管理,也就是业务流程的信息化。包括对质检流程的管理和检验标准的管理。主要由web端的管理员后台和安卓端的app组成。
并且这个系统原先就有,只是因为当时采用的技术对于现在来说已经很陈旧了,需要对其进行技术升级。
团队的总体情况
1. 编程水平
基本上大家的编程水平不算高。大多数人七八月刚学完SSM框架。
2. 有无开发web项目经验
这里也可以说是大部分人也没有这方面的经验。有一个女生已经在校外实习,暂时可以编入主力。但也因为是参加了实习,所以也需要考虑到时间投入。
我的任务
负责带领6个同学完成数据库设计+系统后端部分的开发。充当了后端团队负责人的角色。
我对我的角色认知
- 确保项目能如期交付
- 做好沟通协调工作
- 尽可能的给同学们模拟一个接近企业里面的开发模式(环境)
我的实际做了什么
1. 分解工作任务
首先,我需要将整个项目涉及到的活动进行分解,落实到每一个子活动的时间和人员。
总体时间:8月14-10月15,需要排除的时间为16天,其中开学3天,准备四六级考试5天,国庆中秋放假8天。总共可用天数46天(注意:这里的工期计算和企业里面的不一样,因为我们是学生团队,所以不考虑双休,企业里一般是除去双休再算的)。
大体上分为需求理解、开发(含单元测试)、集成测试、最终测试四个阶段。由于是在旧的系统上进行技术升级,所以系统的总体设计并入到了需求理解阶段当中。集成测试采用持续集成的方式。
2. 梳理客户需求,理清楚业务流程 8月13-8月21
在这一步当中,由于是一个旧的系统,因此相关的需求调研工作已经做过了,有了现成的需求文档。而我们只需要将需求文档里面的内容,重新进行梳理一遍。为此,我在processOn上面画了一张需求脑图,帮助自己过一遍需求,也同时帮助同学们更好的理清需求。
在我看来,理清楚需求很重要,所以就计划用一周的时间来让同学们理清楚需求。
3. 确定系统开发技术栈 8月14
在这之前的会议当中,已经确定了前后端分离开发。因此,这里主要讲的也是后端的技术栈。
JDK版本 1.8
项目构建工具: maven 3.x
版本控制以及开发协作平台:git、coding.net
接口设计:基于restful风格的接口设计,统一返回结果、统一异常处理
主要开发工具 idea
web层和服务层的springboot2.x
数据访问层的Mybatis Plus 3.X+druid 1.1.X+spring-boot-starter-data-redis 2.x
JSON序列化的fastjson 1.2.x
安全方面的shiro 1.x StringEscapeUtils Filter
Api文档:swagger、swagger-ui
日志:log4j
数据库 Mysql 8.x、redis 5.x
测试环境资源引入 阿里云ECS centos7.x(接口开发一周后)
短信:阿里云短信(测试阶段引入)
对象存储:阿里云对象存储 (测试阶段引入)
容器技术:docker
其他工具平台:Xshell、Xftp、postman、processOn、wps.cn sqlyog
4. 搭建项目骨架,在Coding.net平台上创建迭代任务 8月15
在这一步当中我主要是搭起一个idea的工程,并在coding.net上创建迭代和子任务。还有就是建立需求变更记录表和Bug记录表。
5. 后端开发启动前培训 8月24日晚
由于考虑到是大家第一次在一起协作开发,并且大多数同学没有相关经验。因此,我觉得有必要开个会,跟大家讲一些开发规范的东西。这其中包括接口设计、代码风格以及需求理解等内容。在最后,将任务分发下去。
在此之后
计划每周周日下午和前端的团队一起开一次会,了解总体的项目进度,讨论一些技术上存在的问题。
6. 开发一期 8月25-9月-12
在这一阶段,我们只要完成系统基础模块、检验标准管理等模块的开发,安排的开发人员有6人(后端)。开了两次会,分别是8月30日和9月8日。
在这一阶段当中,整体的开发进度和计划进度基本上没有多大的偏差,也就是说基本上按计划完成了任务。
7.开发二期 9月20-9月30
在这个阶段,我就发现了一个问题,那就是前后端分离开发后,在项目进度、沟通上面存在了一些问题。由于项目开发启动之前的会议上我们决定的是让后端开发对于接口的同学直接和前端开发对于页面的同学直接保持沟通。然后我这边的话就很少跟负责前端团队的同学保持好沟通,所以导致了一些问题。
为了弥补前后端沟通的问题,我们9月24号晚上组织了一次前后端一起协同开发。当面去沟通协调问题。从昨晚的效果来看,前后端结伴开发的效果还是不错的(开学后那段时间之所以不组织也是因为四六级考试、补考和防疫要求等原因)
目前的话是,之前开发好的接口都已经放在测试环境当中给前端的团队调用了,之所以写这篇博客,也是为了对参加本次项目所做工作的复盘,以便发现不足。
从目前的情况来看,很严重的一点就是我跟前端团队负责人的沟通太少了。在接下来的工作当中,我需要去弥补这个问题。
本篇文章也会随着项目进度持续更新,直至到交付。