近期参与了一个联网管理平台的软件项目,该项目由2017年8月立项,迄今已经大半年了。从项目进展上,暴露出一些问题:

    1. 项目进度被一拖再拖,原定2018年春节前完成一期功能的上线并完成相关实验局的部署,但目前已经4月份一期功能还未完全完成。

    2. 项目质量问题很多。该项目分为前端和后端平台两套系统,这两套系统的协同工作出现很多问题,直至现在,一些基本的功能还老出问题。

    3. 项目管理流程混乱,一个问题出现经常找不到干系人,没有统一的协调和控制,解决问题的效率很低。

对该项目出现的问题做了一些反思,分别从项目管理和软件质量管理的角度做了一些分析。

从项目管理的角度,我觉得问题出在这些地方:

    1. 项目管理中相关干系人的识别上出现了问题,该项目涉及的开发团队和产品很多,但相关产品的责任人并不明确,所以出现问题了不知道找谁的问题经常出现。

    2. 项目经理对于项目进展的控制没有很好地执行PDCA的过程,在软件团队开发过程中,没有定期的监控、反馈和沟通,使得不同团队的协作一开始就非常生涩。

    3. 对项目风险识别不够深入,该项目中前段团队开发的是基于Android的APP,但使用的是第三方的开源SDK,而且涉及领域也是完全陌生的领域。根据经验,这种软件的开发应预留更多的时间,并预估更多的风险,并在初期应加大投入,但前端团队在前期基本没有投入,后期匆匆上马,导致软件质量问题很多。

    4. 项目计划时间不合理,违背了软件开发的基本规律,前期开发时间留的比较长,但前后端团队联调的时间很短,就更不提测试所预留的时间了。

    5. 前后端开发团队的开发方式存在问题,前后端开发团队在开发过程中没有开发模拟工具,而是前端等后端,后端等前端,都开发完毕再联调。这样即使一个团队先开发完成,也就干等着,其实完全可以先通过模拟工具进行测试。这样最后导致在有限的联调时间里完全无法完成基本功能的联调。

在软件质量方面,开发团队也存在一些问题,尤其是前端团队,从频频出现的软件故障可以推断软件的测试一定存在问题。其实这也是目前公司大多数软件开发团队都存在的问题:重开发,轻测试,没有专门的QA对软件做质量的监管和统计,团队对于质量管理的执行力普遍很弱。

回想以前工作时对于质量的控制大抵有下面几个方面的措施:

    1. 每个产品、项目有专门的QA和故障接口人(主要负责外部故障)。QA负责产品项目的软件代码质量检测和监督,定期提醒项目经理相关问题。

    2. 软件团队强化质量意识,在开发时使用静态检查工具、单元测试、集成测试、自动化测试等提升软件质量。由于质量与考核挂钩,因此团队中对于质量问题的执行力都非常强。

    3. 在产品线内设立质量总工的职位统一对各产品项目的质量进行管理,并定期出产品线的质量周报进行公示与通报。(当年带团队开发时,最怕的就是质量总工的电话,因为他打电话一般都没好事。)

虽然觉得以前工作中质量管理也不尽完善,但如果把这些措施实施在现有团队,强化团队的质量意识,我想产品质量也会有一个飞跃。

回到这个项目,根据目前项目的情况,首要问题是要需要把项目计划好好梳理一下了,将项目中出现的质量问题按紧急度和重要性的象限重新划分,确立明确的干系人,尽快解决问题,重新制定里程碑,以保证项目的顺利进行。

软件团队的质量管理执行力的提升是一个长期的过程,这个只能从公司的管理制度着手逐步改善了。