A:“离系统上线只有3个月时间了,还有这么多功能没有做,怎么办?”

B:“可以从隔壁团队抽调一个工程师来帮忙吗?领导对这个项目很重视。”

A:“好,应该可以抽调两个来,他们都是经验丰富的程序员,争取在1个月内完成。”

最后他们成功地把项目拖延了4个月,比没有添加人手的预计还要晚。

向进度落后的项目中增加人手只会使进度更加落后。

——《人月神话》里面提到的Brooks法则

软件项目的特征

软件项目的估算和进度安排一直是个难题,无论多么努力都很难保证精确,总需要在过程中不断调整,要么重新安排进度,要么削减任务,但追加人手要慎之又慎。首要原因还是软件项目团队需要高强度的沟通和协助,不是单纯的工作组。

沟通接口增加。每增加一个人,就会增加n个接口。如果项目中有n个工作人员,则有(n2-n)/2个项目交流的接口,团队组织的目的是减少所需的交流和合作的数量,清理交流障碍。

培训时间和额外的测试。不培训是灾难性的。无论多么能干员工,都需要接受一位或者多位项目中原有员工的培训,还需要重新划分任务,安排系统测试,更别提刚刚上手的员工所带来的必不可少的混乱(沟通摩擦、代码上的bug)和原有员工填补混乱的时间。

项目估算的原则

小心使用人月,人数和时间是两个独立要素,不能互相替代,你不能把“2个人花2个月”变成“4个人花1个月”。人数和时间可以互换仅仅适用于如下情况:如果某个任务可以分解给参与人员,并且他们之间不需要相互交流——在软件项目中这几乎不可能。

对项目经理而言,仍然存在很强的诱惑去添加更多人手,如果非要这样做,请在早期做,而不是等到进度落后才添加。

文章转自我的公众号,欢迎关注:

Brooks法则:“向进度落后的项目中增加人手只会使进度更加落后”相关推荐

  1. SpringBoot项目中增加favicon.ico图标

    项目中增加favicon.ico图标 前情摘要:用了两年的项目,ico一直用的是默认的图标,最近领导要求换个带有公司logo的ico,项目中正式用的是设计小姐姐发给我的,以下文章中使用的是我自己下载的 ...

  2. 在项目中增加自定义icon图标

    以MUI框架为例,内容来自于MUI官网. mui如何增加自定义icon图标 mui框架遵循极简原则,在icon图标集上也是如此,mui仅集成了原生系统中最常用的图标:其次,mui中的图标并不是图片,而 ...

  3. ajax加载进度百分比,在ajax中显示加载百分比的进度条,php

    您好我正在使用ajax加载数据库内容.我想显示加载或图像的总百分比.在ajax中显示加载百分比的进度条,php 这是我的脚本 function name1(str) { if (str.length= ...

  4. vue导出excel加一个进度条_vue项目中如何把数据导出成excel文件

    Loading... 关于vue中如何把数据导出成excel文件 ### 1. 安装依赖 ``` yarn add file-saver yarn add xlsx yarn add script-l ...

  5. 在项目中增加task定时任务

    1.新建task类 package net.qdedu.task;import lombok.extern.slf4j.Slf4j; import net.qdedu.activity.service ...

  6. Dubbo 在maven项目中的应用

    首先我们来看一下dubbo的架构: 所以通过此图,我们看到就是服务的提供者将服务注册到注册中心,服务的消费者从注册中心获取服务,monitor监控服务的调用. 关于dubbo的使用,我们举个简单的例子 ...

  7. 在项目中使用 calendar_date_select

    插件说明: http://code.google.com/p/calendardateselect/ 安装: gem install calendar_date_select 项目中增加以下代码: ( ...

  8. 前端React项目中实现萤石云ezuikit摄像头的播放与控制

    最近要在react项目中使用萤石云提供的ezuikit库来接入萤石云摄像头,实现远程播放.控制移动.放大缩小等功能,首先百度搜类似的需求,搜不到,只能自己采坑,登萤石云官网,看对应文档. 一.登录萤石 ...

  9. JavaWeb项目中添加live2d模型

    前言:之前个人博客中配置的live2d模型的API失效了,所以重新折腾了一下,在自己服务器配置了 live2d 的 API,在此记录一下 JavaWeb项目中添加live2d模型 之前在个人博客中使用 ...

最新文章

  1. 嫦娥“挖土”归来有多难?看看中国首颗返回式卫星的故事
  2. [安全防护]StackGuard和StackShield
  3. 支持向量机python代码_用TensorFlow实现多类支持向量机的示例代码
  4. etc的常见算法_运用机器学习算法研究城市形态与户外温度之间的相关性
  5. AOP+自定义注解 实现service统一的异常信息处理
  6. 2021中国新锐品牌发展研究:食品饮料行业报告
  7. 三级哪个不用学c语言,考全国计算机等级考试三级如何学C语言
  8. leetcode力扣49. 字母异位词分组
  9. 《MFC游戏开发》笔记九 游戏中的碰撞判定初步怪物运动简单AI
  10. Lintcode 51.上一个排列[Medium]
  11. android 音乐均衡器,App+1 | 不懂均衡器调校也能量身定制,无需折腾的 Android 音效提升工具...
  12. 哇嘎显示等待无服务器,vagaa搜索不到资源怎么回事?vagaa哇嘎搜索没反应的解决方法...
  13. android edittext过滤空格,关于android:在EditText中拦截空格键的问题
  14. WPF流程图制作系列相关基础一
  15. uni-app的基本使用
  16. 发那科2021参数_三菱发那科常用参数对照表
  17. 机器学习(周志华)学习笔记(一)
  18. Java类包的定义(package)
  19. mysql安装完为什么打不开_mysql安装打不开怎么办
  20. Cocoa: keyEquivalent(NSXXFunctionKey) modifierFlags

热门文章

  1. 事件委托是怎么回事?
  2. [树形dp] Jzoj P5906 传送门
  3. 郭晶晶成功瘦身中环逛街 产后专心相夫教子
  4. endnote打开后闪退_为什么微信打不开闪退怎么回事?微信打不开怎么修复?
  5. 初尝“教学引导师”的历程
  6. 「镁客早报」三星折叠屏手机中国区发布会临时取消;特斯拉在地库中突然自燃...
  7. (上)小程序从0快速入门到实战项目打造个性简历,让你轻松脱颖而出吸引面试官眼球(附源码)
  8. 基于Java或SSM的管理系统设计与实现大全
  9. 想跳槽?先看什么是好工作
  10. python实现atm取款机_python ATM机 案例代码