读书《人月神话》

挑战

人月单位设定混淆了工作量和进度,这两个不是永远正相关,简单说不是堆更多人就能线性提升软件开发交付进度。
软件工程是最错综复杂的工程,复杂度还在不断增加。

  • 有些任务、工作必须串行,即某个任务的完成依赖于上一个或多个任务完成
  • 个人工作和团队工作方式差异
  • 实施新技术风险和时间不可控
  • 软件行业是知识密集型行业

人月神话无法达到,但可以通过改善管理方法无限接近神话。

方案

1. 外科手术式

  • 最好的成员和最差成员工作效率差异是10:1
  • 优秀的人做团队核心(首席程序员、架构师)
  • 其他人作为辅助(程序员、测试、交付、技术支持)

2. 沟通

  • 会议
  • 结果沟通反馈
  • 产品文档: 产品所有细节,包括,需求目标,进度,成本控制,人员安排等
  • 手把手带

3. 防微杜渐
软件工程复杂度被多个指标影响,不是个简单的相加堆砌,多个小的延迟和意外最终可能导致整个项目巨大延期

  • 里程碑
  • 跨团队协作,清晰团队责任,跨团队监控小组
  • 唯一不变的是变化
  • 提前集成测试,整体测试

4. 采用新技术

5. 快速发布

  • 快速原型
  • 快速收到反馈
  • 通过迭代完善产品

6. 人才

  • 软件行业是知识密集型行业

7. 没有银弹
银弹指的是彻底解决问题的招数或技能。软件工程管理上总是会遇到无法解决的困难,任何时候都不是一帆风顺的。

  • 计算机发展太快
  • 复杂性
    1)需求澄清
    2)组织管理
    3)计算机本身:操作系统,编译器,驱动,数据库,网络等等
  • 可变性
    需求变化:客户需求,运营需求,外部环境变化导致需求变化。拥抱变化。
  • 一致性
  • 不可见性
    软件思维产物,看不到摸不着,只能通过语言表达认知容易导致交流、认知困难

你可能感兴趣的:(读书《人月神话》)