背景
现需要做一款基于我们已有单机版产品的 SaaS
产品。软件团队共 5
人,一个后端,一个前端,一个单机版的开发(负责单机版逻辑整合),一个产品,一个 UI
设计师,时间跨度一个月。
时间还是挺紧张的,项目赶工中也遇到了一系列的问题,简单做个总结。
项目流程
对于一般的中小型公司来说,可能整个项目的流程还是比较糟糕的,每个环节总是会有那么些小问题,这中间牵扯的问题比较多,就不展开说了。
正常的产品研发流程:
需求 -> 设计 -> 开发 -> 测试 -> 部署
以下简单列一下我在该项目中的各个节点遇到的问题
需求
- 需求了解不到位,没有和产品做好沟通。
设计
- 设计超前,之后可能并不需要,多了不必要的工作。
- 设计和需求有冲突时,并没有第一时间的去交流沟通,导致返工。
- 没有做好具体的文档留存。
- 设计评审等同于没有,都是自己一个人做的设计,没有进行沟通交流,导致有些模块的设计不够健全,后续修改的时候要考虑之前的数据兼容性(可避免)。
开发
- 前期的代码规范没有做好,稍微有些杂乱。
- 单元测试,做了,但是不全面,这个算是一个需要优化的点,再急也要把单元测试做好。尽量多考虑一些输入错误的情形,这里的时间不能省。
- 代码审查基本没有,都是靠自我意识(资源释放,死循环等),这个有条件还是做一下最好。
测试
- 没有和测试人员沟通好,告知需详细测试的关键点,导致发布后才发现问题。
- 性能测试没做好,不够全面。
部署
- 为了节省开支,选择了硬件较差的云服务器,导致最严重的宕机事故,硬件选择还是留有冗余的好。
总结
项目至此基本上是达到了预期的目标,但是期间小问题还是不少,主要在以下几点:
- 项目流程没有明确的规范。
- 各个环节的评审没有做好。
- 文档的记录较少。
- 数据设计是基石,上线后再想做改动会涉及到旧数据问题,一定要先把握好,小公司一般没有
dba
的,数据设计也是开发来做的,但是这个质量就不能担保,项目经理对这块也要上上心,做好质量把控。 - 前期的产品设计需要开发人员一起参与,有些实现起来麻烦(一般来说就是设计不合理),要直接提出来进行沟通,不要总想着通过自己的巧妙设计去实现。
- 项目整体架构设计,设计的时候遇到的问题,一定要先商讨出一个统一的实现方案,可以和项目组相关人员进行交流沟通,不要为了赶进度自己实现了,之后可能会推翻重来。
- 休息很重要,单位时间的效率要保证好,精力不足的时候要及时充电。
其实在真正做项目的时候,遇到的不一定都是技术问题,还有其他许多需要注意的点(例如:整体的规划,沟通等)都需要花费时间。流程规范了,个人所需要花费的时间必定会增长,这种矛盾点是避免不了的,道阻且长呀。
当然对于一个项目来说,怎么样才算做好了,这个很难去定义,紧急项目按时上线就是好吗?还是需要自行去平衡。