科研管理OA统项目总结笔记

截止到昨天晚上十点多我们的项目主要功能的开发算法完成, 占整个项目的 80%, 后期需要确定科研管理系统教师数据的导入方式, 待老师测试通过后部署算是整个项目的结束. 在这次项目中我是担任整个团队的负责人, 并未过多的参与到编码中, 这次开发整体来说还是比较顺利的, 没有遇到特别难的技术点和业务逻辑. 我之前从未担任过项目项目负责人, 这次算是过了把瘾吧. 在我担任负责人的这段时间我并未觉得比在开发中轻松, 在开发中我主要关注的是自己的业务和技术点, 而站在项目负责人的角度则要对整个项目进行把控, 而不仅仅是业务和技术点. 目前项目进入收尾性 bug 修复, 开发的脚步放慢, 待和院里老师交接后继续进行开发, 之后的工作不会多了. 今天抽空把开发中遇到的问题以及感受总结一下.

先总结一下项目开发的大致流程,把握一些关键点在项目开发中尤其重要。

项目流程总结

step 1 准备

当开发团队拿到一个项目, 首先需要做需求分析, 而且这个不是一次两次能搞定的, 需要有耐心和经历过项目的人多次进行对接, 待需求捋的差不多了就要开始做前端的原型图了, 做完原型图还需要对着需求让用户看一遍, 待用户满意后, 两方要达成约定不会再变动需求. 后期可以对细节进行调整, 但整体不会有大变动了.

step 2 开始

待项目需求明确了, 用户那边无问题, 就可以组织人进行开发了. 待人找齐后按照每个人的技术栈划分前后端, 前端还需分前台和后台, 前台通常做手机客户端在小程序/公众号/H5 网页上进行开发, 后台通常是 PC 端的后台, 后端写业务接口. 分好组后需要在每个组指定一名负责人, 组内负责人负责组内开发活动组织安排.

分组进行好后, 然后就要根据各端所使用的技术了解/学习相应的技术栈了. 同时, 要开需求分析会议, 由项目主负责人向所有人讲解项目需求, 要达到每个人都熟悉并能说出需求, 通常至少要开两次, 之后组就就可以讨论相互讲解需求了.

step 3 任务排期

开发事宜进行前需要进行任务排期. 没个组的每个人需要对自己负责的任务进行划分排时间, 把大的任务分解成小的任务, 任务粒度为每个功能点/页面的某部分(小任务能在 1~2 时内可完成). 每个人划分排期后, 各端负责人首先要过一遍, 看排期是否合理(根据组员能力/项目整体时间安排/组员近期是否有重要的事).

排期要求:

  • 任务细粒度化
  • 任务责任到人、具体日期

排期时也要和大家说明排期后就不允许修改了, 之后就按这个这行了, 谁逾期谁负责.

step 4 设计数据库、定接口

数据库通常由后端设计, 前端通常也参与, 前端主要做的是审查工作和对不足之处提出建议. 数据库的设计也是个重头戏, 通常由后端技术比较厉害和业务经验比较丰富的人带着大家来设计.

待数据库设计好没有问题后, 就要定前后端交互的接口了, 这部分前后端都参与, 后端主要设计接口, 前端除了设计之外还要对接口进行审查, 这部分的决定者是前端, 前端说 ok 接口才 ok. 设计接口时, 返回数据格式, 时间格式最好前约定好, 否则容易造成调用接口时混乱(特殊的需求的接口例外).

step 5 部署环境及项目信息准备

这个在确认完人员后就可以进行这部分了. 项目的信息及介绍等等都要在项目开发文档中一一列出让, 让看的人了解项目的整体信息.

step 6 开发

项目的整个过程所用时间在整个项目的计划周期中占比并不高,但这部分仍是比较重要的一块。在开发前,技术栈和风险点已经评估差不多,开发这部分是按照预定的计划往前走的,但仍然不能排除遇到紧急情况和特殊情况。在开发过程中,同步会议和项目测试要起头并进,通常两天左右给各端负责人进行一次项目同步会,通过会议及时发现问题解决问题、共同讨论解决问题。项目测试通常五天左右进行一次,项目测试前期组内进行自测,后期走整体流程,越到后期越测试的越细致,测试都要求在测试服务器上跑(如果项目大第一次可以本地测,但仍推荐在测试服务器上测),为什么坚持在测试服务器测?一是对部署环境有个较好的检验,二是让大家熟悉整个流程(例如:测试前的打包准备、测试人员安排等,不只是有最新代码就够了),三是可以发现比在本地运行更多的问题(早发现早解决)。 在开发中负责人不仅要把我整个项目的方向,还要项目的状态、各端的情况(例如:遇到什么问题、问题是否已经解决、有什么风险点、开发中的项目有没有隐含问题等),根据大家的任务完成情况对项目整体进度心理要有数(是否达到计划预期,之后的开发能完成预定计划吗)。 开发过程中细胞组的氛围对开发影响较大,活跃的组往往进度推进的更好。 开发过程中需求是会变的,问题/疑问解决方案也不一,规定谁确定的需求要在群里周知大家并署名谁确定方案以方便大家查看。

step 7 测试

测试整个开发过程总是比较难搞的, 每次测试都会手忙脚乱, 而且效率不高, 在测试速度和测试质量之间无法准确拿捏.

后来测试的多了就发现了一下技巧, 在测试之前需要做好以下准备:

  • 测试数据准备

    • 高质量的测试数据是进行测试的必要条件
    • 更好的测试数据是前端添加的数据
  • 人员及角色分配

    • 测试乱的一个主要原因是有部分人不知道自己做什么, 在测试中担任什么角色, 所有, 以一种清晰明了的方式让大家知道自己要做的事是很重要的, 这里推荐使用表格安排人员分工. 示例如下: image.png
    • 最佳实践: 测试的组不宜分多; 每个组要有小组长(由组长安排测试);
  • 测试流程安排

    • 测试的整体安排是什么?
    • 先测什么? 后侧什么? 还是前后台一起测试?
    • 测试流程注意什么等
  • 问题记录方式

    • 把问题记在白板上
    • 组内测试不方便来回走动时, 记录在在线文档是一种很好的方式, 同时大家都能看到, 也起到检查的作用
  • 代码更新及部署

    • 至少需要在开始测试前 30 分钟准备好测试环境(代码较新然后部署上线)

测试最佳实践:

  • 模块太多时要分组进行测试
  • 后端决定测试能否顺利, API 接口的鲁棒性对测试影响很大,这要求后端接口除了业务逻辑正确外,还要保证在错误数据、边界数据、null 等数据输入时依然能正常进行。
  • 前端尽量确保及时接口返回的某个字段为 null 或者某个字段不存在时也能正常显示,正常进行操作。
  • 测试时不要把数据库清的太空. 有次测试我们把数据库清理的太干净了!导致权限、菜单信息、用户信息出错,导致整个测试推迟了 30 分钟左右。

以上是对项目开发从初期准备到后期测试的总结。接下来是项目开发出现的问题的总结。

项目开发总结

提高编程素养从遵守编程规范开始

我这次在开发中担任负责人的角色,期间也参与了 coding,对前后端的代码都有一定的了解,有些人看上去整洁给人以赏心悦目的感觉,而有些则不忍直视,在项目初期都让大家看代码规范了,但是仍有些人的代码写的不符合规范。

团队合作

这次团队合作中,api 组出现了一些问题,沟通交流少,部分同学不听从负责人的,导致后端接口推进较慢,我本以为负责人可以解决,结果问题并没有那么简单,最后小桑学长给我们开会算是解决了。后端的一些人是有实力的,一部分心高气傲不想和同伴合作,最后写出的接口还存在问题。要是我我也不愿和这样的人合作。今天我的痛恨手册多了一条:讨厌不服从项目安排管理的行为.

最后,项目管理是个技术,多向优秀的人学习,多总结实践,及时反思缺点与不足,在之后的项目管理可以让我们做的更好。