软件项目管理的金三角:时间、成本、范围

在今年年初的时候,华为发出了一份任正非的公开信,该信的主旨说明华为要以构建可信的软件为目标,合理应用软件工程的理论,并从开发者、架构师不同身份的角度出发给出了具体的操作建议,讨论了重构、技术选型、技术人员的价值评估等重要问题。

信中有这样一句话:

我们各级管理者和全体员工都不得以进度、功能、特性等为理由来降低可信的要求,确保可信的要求在过程中不变形。

这句话讲的就是软件项目里的金三角:时间(多久可以完成)、成本(花多少钱)、范围(需要实现多少功能),这三个要素决定了最终交付的软件的质量。

image.png

想要软件的成本低,又想要质量好,那就得等;想要便宜又想快速上线,那就得接受质量不好的现实;想要质量好又想要快速上线,那就得花钱;想要价钱便宜、质量好,又要快速上线,是没有这种好事的。

image.png

这一节课,宝玉老是就将这个话题展开来进行了详细的讲解,主要内容如下图所示:

image.png

重点摘抄

  1. 软件工程的目标就是构建和维护高质量的软件。
  2. 项目管理其实就是项目中一系列问题的平衡和妥协,而“金三角”理论则为我们提供了理论指导,了解这三个因素分别对项目其他方面产生的影响,可以帮助你做决策时进行取舍。
  3. 瀑布模型种范围是固定的,时间和成本是可变;敏捷开发中成本和时间是固定的,范围是可变的。
    image.png

  4. 如何平衡好软件质量和时间、成本、范围的关系?从时间、成本和范围这三个要素中找出来固定的一条或两条要素,再去调整另一条要素。

  5. 极限编程(eXtreme Programming,XP),是目前敏捷开发主流的工程实践方法,极限编程中的“极限”,意思是如果某个实践好,就将其做到极致。

阅读感想

  1. 如果希望软件做得又快、有低成本,得到的软件应该是质量差、功能可能不全的软件; 如果希望软件免费,又得快速交付,那么得到的软件应该是质量没有保障,功能大概率不全的软件;快速、便宜、质量好的软件是不存在的
  2. 之前的工作中,好像没有一个项目可以达到质量和时间、成本之间良好的平衡,最后的结果都是为了保障质量和时间,然后增加人力成本(加班),如果加班也搞不定就对时间做出妥协(延期),范围这个指标倒是比较容易调整的一个指标。
  3. 软件项目管理本质上就是在成本、范围、时间三个要素中做出合适的妥协的过程,质量是软件项目的目标,不能妥协;
  4. 管理金三角有助于在软件管理中进行良好有效的沟通,将精力花在事情上,而不是花在PK上,PK不是目标
  5. “软件项目的管理金三角”对于个人成长,也有同样的指导意义,假设我们的目标是取得个人的成功(名或利),影响这个目标的要素有时间、成本、范围,个人管理的过程也是在这三个要素中做妥协和平衡,例如,我现在积极参加这些知识付费的课程,就是希望用成本来提高自己的学习效率,这样可以在时间和范围上获得一些机会;我如果现在去健身,也会花钱请私教,同样是用成本来提高自己的健身效率,做出这样的选择的原因是我自己感觉相对于这些课程的价格来说,我的时间更加宝贵;但是有些时候,如果价格超出了我的承受能力,那我就不得不做出选择——自己花时间去搞定事情;有时候,成本我也不在乎,但是我的时间还是有限的,那我就只能做减法(少做一些事情)

广告时间

这门课程的价值都在于将软件工程的理论和现实生活中之间的鸿沟抹平了,宝玉老师的讲解和案例十分生动,对于我来说是学了就可以用的一门课,值得学习。
image.png

软件项目管理的金三角:时间、成本、范围
滚动到顶部