项目管理三角
- 资源:人力成本
- 时间:在什么时间完成
- 需求:要完成什么样的需求
- 在传统的系统是正三角,需求是确定的,资源和时间是不确定的;
- 在互联网,是倒三角,资源和时间是确定的,但是需求可能是不同的;
项目管理生命周期
启动、计划、执行、交付
启动阶段
有以下几个点:
- 为什么要启动这个项目?
- 能产生什么价值?
- 目标是什么?
- 利益相关人?
SMART原则(制定有效的项目目标)
- S (Specific) 明确性 目标必须是具体的,要对标特定的工作指标,不能笼统
- M (Measurable) 可度量性 能在多大程序上测量最终目标的完成情况
- A (Attainable) 可完成性 在规定的时间内,最终目标十分合理,能否实现
- R (Relevant) 相关性 指实现此目标与其他目标的关联情况
- T (Time-Bound or Time-Based) 时限性 代表有时限,注重完成绩效指标的特定期限
计划阶段
- 范围:确定项目的边界
- 定义:将较大的可交付成果分解为较小的可交付成果,以便于管理
- 方案:项目方案及评审
- 任务:确定哪些任务对最终交付的成果来说是必要的,并指出任务间的关联性
- 进度/人力/成本表:分工&排期
- 风险:预测可能存在的风险,评估它们对项目的影响并制定应对方案或计划
执行阶段
- 监督:进度追踪
- 控制:风险控制
- 信息互通:沟通合作
执行阶段如何控制项目风险?
- 先紧后松,将确定的东西优先放在前面来执行
- 每日站会,跟进进度表汇报进度,有延期和风险及时发现并评估调整
- 核心路径排期要review,前期计划做得好,后期风险才会相对少
- 风险在项目阶段做好预测,必要时预留buffer(人力、时间)
交付阶段
- 交付结果
- 项目回顾
如何做好项目回顾?
- 意识上要重视:行百里者半九十,项目收尾回顾非常重要,总结归纳,吸取教训,沉淀为经验
- 分析计划进度表和实施进度表,分析出现风险的地方,有没有更好的方式规避?目标是否足够清晰、任务拆解是否到位、排期是否有问题、沟通协作是否有问题
- 做得好的地方有哪些:有什么收益,解决了什么问题,开辟了什么通路
- 重来一次会怎么计划&执行?
- 如果在已有的基础上,如何深入,如何做的更加通用?多往前去深入思考
其他
如何面对倒排的情况
倒排就是确定了需求完成的时间
- 砍需求:这个功能不着急,下一期做
- 资源调整:人不够,加人(得加钱),封闭开发,安排一下加班(希望有加班工资)
- 方案简化:舍弃一部分完美的思路,做一些妥协
不过有时候光加人是没用的,有时候还有其他部门或者外部的依赖,这时候就需要把问题抛出来,让领导去协商
在质量与进度之间的取舍
如果质量出了问题,会花费更多的时间去修复,得不偿失。
变更发布的三板斧
- 可监控
- 可灰度
- 可回滚
面向失败编程
多考虑一些边界情况,黄金法则-墨菲定律
越不想发生什么,越容易发生什么 越想没有bug,往往越有bug
如何理解:“如果一个项目不能去量化,就需要重新去审视这个项目”
- 大部分的时候,是可以被一串串数字去展示的
- 如果展示不出来,可以看看支撑了多少业务
- 去思考一下,是不好量化,还是不能量化?可以去和同类的产品去做比较
- 同类产品搞一个表格,把自己有的功能,竞品没有的功能,就标个红
- 可能会导致更多去追求一些短期价值,陷入了短期最优解的陷阱。因此定O的时候,大的目标可以激进一点,小的目标可拆分更细
- 反逼负责人leader,制定更合理的一些指标。不断去思考,什么样的目标才是更有价值的
业务开发效率,有没有比较科学的衡量方式
- 例如:单位需求吞吐率,但是每个人的工时都是不一样的,如何找到一个基础的计量单位(故事点,敏捷开发的概念)
- 用户反馈率
- 提测之后的bug数
- 自己和自己去比
- 并发度:同时多少个开发同时进行开发