如何负责一个项目的技术开发部分

写在前面

最近负责了一个小项目(大概20人天的工作量)的技术开发,这里简单地写一下总结,希望能给自己也给大家一些启发。

适应人群

入门——初级√——中级——高级;本文适应初级及以上。

涉及的五个元素

虽说项目不大(20人天),不过“麻雀虽小,五脏俱全”,基本上包含了项目研发应该关注的点。根据我已有的经验,梳理出五个点,分别是:需求梳理,技术难点确认,模块划分,框架预搭建,进度与质量跟踪。

需求梳理

作为开发人员,最难的部分不是写代码,而是需求确认。如果组织的角色划分比较完整,会有专门的产品同事负责梳理需求,明确每一个需求点从而方便开发者理解并最终转化为代码。可是作为技术负责人,不能全部相信产品思维中的产物,尤其在产品人力不足的情况下。

如果想把自己负责的项目上线,技术开发负责人首先需要对项目的需求有一个全面的了解。比如:项目定位是什么,需求的持续周期大概有多久(有的系统创造出来可能只需运行半年就报废),需求尽可能多的细节。

技术难点确认

在确定了需求以后,需要根据具体需求确认可能的技术难点。比如有的需求对响应时间有要求(北京的遥控器控制上海的一台机器进行手术操作,时延需要保证在1000ms内),有的需求对可靠性有要求(群发十万条短信同时保证每一条都发送成功),有的需求需要一些其他的依赖功能(发送邮件,维护附件),等等。

技术的难点往往会成为项目按期交付的很大风险点,因为难点往往需要比较多的人力投入来攻坚,而人力投入的成本是无法准确估出来的。

技术方案确认

接下来技术方案的确认。基于需求以及技术难点,接下来就可以确认技术方案了。

作为后端开发中的标准,技术方案中一般包含:数据模型(model)、接口(API)、技术难点列表等。其中数据模型确认包含哪些数据表,以及每个数据表中的字段,以及可能的索引;接口部分需要确认API的路径、参数、响应以及每个模块的主要开发人员名单;技术难点列表部分列出技术难点以及可能的解决方案,最好能确认攻坚人员。

框架预搭建

在以往的开发实践中,发现如果开发时没有一个系统完整的框架,而是由每位开发者自行设计,那么最终得出的项目代码会显得松散,不易维护。

其实在确认技术方案后,项目的框架基本上能够确认下来,但是不能仅仅依靠技术方案来约束“性格迥异”的开发,应该花一些时间把项目的框架搭建起来,尽量只把具体的逻辑留给开发者。

进度与质量跟踪

项目一旦开始开发,需要持续跟进两个点:1)进度;2)质量。其中进度方面,向下需要跟每位开发者了解对应的开发进度,向上则需要向项目经理汇报每日的总结;质量方面,应尽可能review查看每位开发者的代码提交,需要保证所使用的技术、编码风格在团队的接受范围内,同时还可以学习一些优秀的代码并向团队推广。

小结

本文从实践中的一次项目开发的管理出发,简单总结了负责技术开发部分需要注意的五个点:开发前需要1)确认需求以及2)技术难点,接着3)确认技术方案并强烈建议能花一些时间4)搭建项目框架,到了实际的开发过程中,还需要时时关注5)进度以及质量。理论上做到了上面的几步,那么后期项目的提测、上线便不会大概率出现严重的阻塞问题。