Chapter 15 :软件项目管理秘籍
--“要成为解决问题的人,而不是解决问题的机器”
1、面向目标的项目管理
SMART: 具体的(Specific)
可衡量的(Measurable)
可实现的(Attainable)
现实的(Realistic)
有时限的(Timely)
2、管理人性
(1)让团队承认感受到爱
(2)状态让世界运转,但要注意频度
(3)适当给人台阶
3、聘用实习生
4、价值衡量的意义:
(1)量化成功
(2)促进产品规划
(3)影响营销
(4)激发团队士气
5、没有完美的项目计划
开发主管采取如下措施来规避计划带来的风险:
(1)建设足够成熟的团队文化:
让团队从一开始就认识到,并非所有的计划中的项目目标都能实现,而且总是会有新的目标加入进来
(2)调整开发过程:
无论是瀑布模型、敏捷开发还是其他模型,要在开发过程中计划足够的检查点和暂停节点,以便开发组织的高层领导可以评审并重新考量计划,并对其作出必要的调整。
6、评估开发成熟度
几种软件开发的模型如下:
稍后补充。
7、软件的缺陷、成本和效率
- 用于支持的成本越高,新开发的投入就越少
- 软件开发人员越差,开发团队就越缺乏动力且效率低下
- 后期的缺陷会严重影响团队顺利完成项目的能力,导致进度延期
- 发布低质量的产品会导致客户满意度下井并降低产品的成功率,产品质量低,也会迅速导致收入减少
如何避免陷入后期发现、修复缺陷的泥潭
- 设计、规范和代码审查仍然是早期发现缺陷最有效的方法
- 使用迭代开发方法,让测试在整个开发周期中以波浪式推进,而不是到了后期才进行集中测试
- 为代码建立可测试性。可以通过在代码里加入大量的跟踪点、断言和编程钩子来创造测试条件
8、质量不是测试出来的
从历史情况来看,代码审查时提高代码质量和消除缺陷的唯一最好的方法
不能在设计和规范评审、代码审查、正式的内联化断言(运行时)测试、插桩代码以及坚稳测试上投机取巧。