随着团队规模的变大,成员之间合作的模式逐渐由单打独斗变成协作开发。 这时候会遇到很多意想不到的问题,项目管理的重要性也就显现出来了。 项目管理修炼之道 是一本讲技术类项目管理方法和实践的书。 从业者可以从这本书获得了有益的指导。 我在 Kindle 上面翻了好几遍,感觉受益匪浅,就把读书笔记拿出来供大家参考。
内容
核心内容是项目管理的生命周期和每个阶段的交付物:
- 项目章程
- 日程规划
- 开发(控制节奏)
- 结束项目,项目回顾
其他内容:
- 如何和投资者沟通
- 管理会议
- 控制项目节奏
关键字
- 项目定义:一个独特的任务或是系统化的流程,其目的是创建新的产品或服务, 产品和服务交付完成标志着项目的结束。项目都有风险,并且受制于有限的资源。
- 关键(章程)
- 驱动因素:功能集合、发布时间、缺陷等级,只能有一个
- 约束:环境、流程、人力资源、预算等,决定了规模
- 浮动因素
- 规划:带有项目发布条件的项目计划
- 日程安排:对工作项目的有序描述
- 发布条件:S.M.A.R.T.,需要一起协商
- 仪表盘
- 定性或者定量的方式,将结果公布出来
- 保持项目节奏的方法
- 快速开发
- 持续集成
- 自动冒烟测试
- 功能拆分和日程排期
- 按功能实现,而非架构
- 优先实现高价值功能
- 通过用户故事、角色和场景来定义需求
- 分离需求和 GUI
- 质量控制
- 复查:Code Review,结对编程
- 重构
- 快速开发
- 项目成员的角色构成
- 项目经理
- 架构师
- 开发人员
- 测试人员
- 业务分析师
- 运维
我的问题和部分解答
Q:项目经理的职责是什么?
监控项目进度,牢记里程碑验收条件。保障项目按需求交付。
Q:如何成为优秀的项目经理?
项目经理需要下面这些技能:
倾听
谈判技巧
协作和表达技能
目标导向
真诚,尊重
信息不足下进行决策能力
解决问题的技巧
发现问题能力
理解产品的生命周期
认识自己技术的不足
能够安排日程
能够估算任务,并指导其他人完成任务估算
指导如何管理风险,评估项目状态
Q:用何种生命周期组织项目?
互联网项目看中发布时间和功能集合,适合用迭代式的生命周期。
Q:如何安排项目日程?
细化日程,让成员自省讨论,基于可交付物 的日程规划。 注意,这里的日程和具体的时间安排没有关系,而是处理任务之间的依赖关系。
Q:如何估算日程中每个任务
书中给了一个方法:使用日期范围,但问题是,在小团队工作时候, 可能整个项目周期也就 1 个月,如果按日期范围估计,就比较难评估了。
还有一个方法是使用「1、2、3、5、8、13、21、34、55、89」这样的方式来拆解估算任务。
每个任务可以拆解成小石子(不超过 2 天的任务)。
还有一个 tip 是使用波浪式规划,即不在一开始时候规划全部。在进行的过程中调整日程。 以 2 周或者 4 周的长度规划,太长了就更容易出错,对预测能力要求太高。
项目经理目标是按驱动因素完成既定需求,而不是给一个漂亮的甘特图。
关于估算日程的三条忠告:
- 绝对不要提供确定的项目结束日期
- 任务越小,估算起来越容易
- 寻求估算的准确性,而不是精确性
Q:前期延迟了,后期能追赶么?
不能,强行安排的话,是一个日程安排游戏。但是从 Deadline 意识来说,需要对成员达成 Deadline 意识。
Q:如何创建优秀团队?
招对的人,激励个人,形成团队凝聚力。 团队发展分成 5 个时期:组建、激荡、规范、表现、终止。
Q:如何估算日程安排里面的时间?
参见上面所说「1、2、3、5、8、13」和小石子。
Q:如何对项目的模块进行拆分?
书中没有过多提及,我从自己经验得出的答案是:
- 原则:拆解成耦合度低,可以并发进行的子任务,互不依赖
- 每个拆分出来的子任务,是可以被描述,并且其产出是可量化的
- 如果子任务之间,有相互依赖点,需要在早期就约定好接口和交付时间点
- 如果一个模块 A 很大(比如超过 4 周开发时间), 那应该团队作战以这个模块为开发目标,将模块 A 拆成多个子任务,然后并发进行。 而不是模块 A、模块 B 并发进行。
Q:如何保持项目节奏,避免发生延期?
参见上面的「关键词」中「项目节奏」部分。
Q:如何管理工程(多个项目),并且在里面进行协调?
多个项目,但是使用一个发布计划(类比前端、后台、移动端)。 并一起制定好各个项目的计划。如果基于敏捷开发,问题可以被简化, 因为每条线都是随时可以发布的状态。如果不行,那就组织里程碑的发布计划。
需要管理各个子项目的项目经理,并且创建统一的日程表。
Q:团队里面有执行迟缓,不听从决策的人员,怎么办?
这个问题其实是管理问题,而不是项目管理问题。 书中并没有合适答案,我自身感想是这几方面:
- 弄清楚为什么不听从决策,需要明确项目的发布目标
- 从精神、物质上面进行激励
- 直白的进行沟通,向对方请求帮助
- 从自身寻找问题,提高自身沟通能力和专业技能能力
原文链接: 《项目管理修炼之道》笔记 | Log4D
3a1ff193cee606bd1e2ea554a16353ee
欢迎关注我的微信公众号:窥豹