转自https://www.jianshu.com/p/727fcb5002af
前言:
入职现在这家创业公司已经差不多两年了,公司也从刚来时的200来人发展到现在的将近400人,在这一年多的时间里,我带领项目组完成了多个从0到1的产品项目。
关于软件项目管理也由一开始的磕碰摸索到现在的小有心得,作为一个技术人员,这也算是在技术之外的一种成长和收获。
今天特意把之前总结的一些项目管理经验重新整理写成文章,以便日后自己翻阅,当然,如果这些经验能给大家在项目管理上带来一些有价值的参考和借鉴,那就是锦上添花了。
一、为什么技术人员在创业公司更需要得懂软件项目管理?
在国内,大部分创业公司都是业务驱动型的,公司创业初期,研发人员配置并不多,软件项目管理也不规范,那么这时候作为公司的技术人员那就更应该懂得软件项目管理,这样在项目推进的过程中才能更好的和需求方(产品经理或者老板)沟通、更好的保证项目的可靠交付。
比如:在保证项目质量和固定的人力成本投入的前提下,如何做好项目范围和项目时间的平衡?在项目实施的过程中,如何保证过程的可控性?如何保证项目成员沟通的高效性?如何保证高质量的交付?等等这些问题,都需要项目管理人员制订高效规范的管理流程才能得到更好解决。
面对以上这些问题,接下来,我和大家分享一个我经历的真实案例。
二、软件项目是怎样练成的?
去年7月底,公司打算研发一款新产品,计划在9月初上线,接到项目时,上线时间已经定好了(像这种紧急项目我已经接过多个了~~),这时我只能根据上线时间倒推来安排人力投入和确定需求范围。
记得在8月1号需求评审后,我第一时间找到产品同学列出所有的功能list,然后评定每个功能的优先级,把影响主流程的功能单独列出来,其它功能点再根据优先级和资源情况来确定是否放在这个项目中来做。(确定项目范围)
确定好项目范围之后,我接着确定各端的项目参与人员。(确定项目人力投入)
然后,向项目组员确认工作量和相应的排期计划,最后理出一份项目的里程碑时间节点表。(确定项目里程碑时间节点)
当这些工作完成后, 我及时制定出项目的整体计划,并邮件同步给项目组员和boss。项目走到这里才算真正步入正轨。(制定项目整体计划)
但是,这还没有完,这只是项目管理迈出的第一步。在项目实施的过程中,我会组织很多的评审会议,比如:技术方案评审、接口文档评审、UI评审、测试用例评审、代码评审、功能评审。(质量及风控管理)
当然,除了上面这些会议之外,项目成员之间还会有很多沟通和确认,比如:开发同学和产品同学确认需求细节,前端同学和UI同学确认UI细节,前端同学和后端同学确认接口文档等等,这时我会要求项目组员之间任何的变更和口头约定都要更新到相应的文档上并且要及时同步到相关组员。(项目文档管理)
除此之外,为了保证项目的顺利推进,我每天都会花5-10分钟组织项目早会。项目组员同步各自的进度和遇到的问题。我也会提醒项目组员接下来的里程碑事件及时间节点。(信息同步及风控管理)
当项目进入测试阶段后,为了保证测试同学的工作效率,我会要求开发同学当天的bug当天解决。
最后,项目通过测试和业务方验收后,为了保证上线发布的有序进行,我将制定上线发布计划。
到这里整个项目就算基本完成了,之后就是线上数据跟踪以及项目复盘。
我记得我们当时是9月6号发布上线,历时一个多月,整个项目组20来人,在整个项目推进的过程中没有一个里程碑出现延期。当然,这也要感谢整个项目组的努力和付出。
三、做好一个软件项目需要做好哪些事项:
通过上面的案例,我们来总结一下,做好一个软件项目需要做好哪些事项:
1、确定项目范围。
2、确定项目人力投入。
3、确定项目周期。
4、做好项目过程管理。
5、做好项目质量管理。
6、做好项目风控管理。
7、保证项目成员高效沟通。
那么,我们如何做好这七个事项呢?接下来,我和大家分享一些我在项目管理实践中总结的管理工具。
四、软件项目管理的一些工具
1.确定项目范围:需求功能list表(别看这张表很简单,它其实很重要,它可以为你在后面项目推进的过程中减少很多不必要的扯皮。)
2.确定项目人员:项目参与人员表
3.确定项目时间:
3.1 项目组员排期计划表(项目组员进行任务分配后,每个人的排期计划,早会时进度同步的依据。)
3.2 项目整体计划表,我把整个项目分为六个阶段,每个阶段包含相应的子项事项,且多个阶段会出现并行。(通过这张表,项目管理人员可以明确知道整个软件项目管理都包含哪些事项,以及目前处在哪个阶段中。)
4.做好项目的过程管理:项目里程碑时间节点表(整个项目是否会延期,主要看这几个关键时间节点是否出现了延期。)
5.做好项目的质量管理。
项目的质理管理贯穿整个软件项目的过程,从需求评审、技术方案评审、接口文档评审、UI评审、测试用例评审、到测试同学测试及功能评审和业务方验收等,这一系列的工作共同组成了项目的质量管理。
6.做好项目的风控管理。
风险管理的预防措施:在制定计划时留出部分的弹性空间。
内部风险管理:每天项目早会时,项目成员同步工作进度和提出遇到的问题,及早发现潜在风险点,及时协调资源解决。
外部风险管理:这情况多属于在项目进行过程中,业务方提出需求变更,这时作为项目管理人员应该具体问题具体分析,如果项目不做这个变更就没法上或者上了也没有价值,那么我们应该同意变更,但是要重新评估工作量,且告知业务方有延期风险;若是一些细技末节且比较耗时的功能点变更,这时,我们应该明确拒绝变更,可以告知业务方放在下个版本中再作调整。
7.保证项目成员高效沟通。
保证项目成员能够高效沟通的关键就是变更能够追踪且能及时同步,这时就需要做好项目的文档管理和每日早会。一般文档管理包括:需求文档管理、排期计划文档管理、接口文档管理、UI文档管理、测试用例文档管理。
8.上线发布计划表:确保上线发布有序进行且给出发布失败时的回滚方案。
结语:
软件项目管理,每个团队都有自己的一些方式和方法,各自使用的一些工具也不尽相同,但是它的本质应该是一样的——在保证质量的前提下,在时间要求、人财物花费、项目范围三点上做平衡。