08 | 怎样平衡软件质量与时间成本范围的关系?
该思维导图由 AI 生成,仅供参考
什么是软件项目管理金三角?
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了如何在软件项目管理中平衡软件质量与时间、成本、范围的关系。作者首先介绍了软件项目管理金三角的概念,强调了质量作为核心因素的重要性。通过实际案例和理论知识,阐述了如何应用金三角理论进行决策,并灵活运用金三角理论进行权衡取舍。文章还探讨了瀑布模型和敏捷开发在平衡时间、成本、范围关系上的不同特点,以及迭代模型的应用问题。通过深入浅出的阐述,为软件项目管理人员提供了一定的指导意义。文章还提供了多个案例,如淘宝网站的快速上线、极限编程的应用以及MVP模式的诞生,展示了如何在实际项目中平衡好软件质量与时间成本范围的关系。通过这些案例,读者可以更好地理解如何根据“金三角”的三条边,找出固定的一条或两条边,然后去调整剩下的边,达到平衡。整体而言,本文为读者提供了实用的软件项目管理知识,并鼓励读者在留言区分享讨论,以促进更好的实践和应用。
《软件工程之美》,新⼈⾸单¥59
全部留言(38)
- 最新
- 精选
- javaadu1. 如果希望软件做得又快、有低成本,得到的软件应该是质量差、功能可能不全的软件 2. 如果希望软件免费,又得快速交付,那么得到的软件应该是质量没有保障,功能大概率不全的软件 3. 快速、便宜、质量好的软件是不存在的 4. 之前的工作中,好像没有一个项目可以达到质量和时间、成本之间良好的平衡,最后的结果都是为了保障质量和时间,然后增加人力成本(加班),如果加班也搞不定就对时间做出妥协(延期),范围这个指标倒是比较容易调整的一个指标。 5. 读完这篇文章的收获:(1)软件项目管理本质上就是在成本、范围、时间三个要素中做出合适的妥协的过程,质量是软件项目的目标,不能妥协;(2)管理金三角有助于在软件管理中进行良好有效的沟通,将精力花在事情上,而不是花在PK上,PK不是目标;(3)对于个人成长,也有同样的指导意义,我们的目标是取得个人的成功(名或利),影响这个目标的要素有时间、成本、范围,个人管理的过程也是在这三个要素中做妥协和平衡,例如,我现在积极参加这些知识付费的课程,就是希望用成本来提高自己的学习效率,这样可以在时间和范围上获得一些机会;我如果现在去健身,也会花钱请私教,同样是用成本来提高自己的健身效率,做出这样的选择的原因是我自己感觉相对于这些课程的价格来说,我的时间更加宝贵;但是有些时候,如果价格超出了我的承受能力,那我就不得不做出选择——自己花时间去搞定事情;有时候,成本我也不在乎,但是我的时间还是有限的,那我就只能做减法(少做一些事情)
作者回复: 赞,你这个感悟很深刻,不只是项目中,都已经应用到日常生活中了👍
2019-03-16256 - koradji对金三角有了进一步的认识和理解,以前只认为它是个三角形而已,还不会用,谢谢老师
作者回复: 是呀,这个真的非常实用的,软件项目中很多现象都可以从它身上找到解释,很多问题都可以通过它找到合适的方案。
2019-03-1214 - alva_xu老师,其实,我想表达的是,传统的大企业(不是指BAT这类大企业),比如我们企业,IT项目牵涉到三个部门,一个是业务需求部门,一个是IT部门,一个是财务预算审批部门,采取的形式一般都是采用外包方式,而且往往是固定合同,也就是合同价格是确定的,需求范围也是确定的,这样的话,金三角的两条边就定下来了,剩下来的就是时间和质量的关系问题了。 按照金三角的理论,我们就可以知道前面所述的场景下项目组该重点抓什么了:作为甲方项目经理,重点抓的就是质量和时间了。如何通过提高效率,使单位时间的产出比原来的多(相当于增加了时间),来提高项目的交付质量,是我们甲方IT项目经理最关心的事。所以这时候,我们的方法是建立统一软件框架、提供公共服务组件、制定代码和测试规范、培训乙方团队、搭建CICD平台和自动化测试平台、sonarqube自动代码检测平台等,使原来几周一次测试变成一周几次测试,使原来低质量的代码快速变成高质量的代码... 反正是采用各种方法,提高工作效率,用于抵消业务部门不时提出的变更导致的项目进度的风险。当然在开发模式上,也会衡量敏捷的开发模式(特别是scrum的管理模式)和传统瀑布及衍生模式哪种模式更高效。 当然,理解了金三角,对于前期申请项目预算也是有帮助的,比如,可以和预算部门谈判,如果要砍预算,在时间一定的情况下,就只能减少项目范围,这是我们业务需求部门所不能接受的。这样,就可以使IT项目经理名正言顺地把预算部门和IT部门的矛盾转嫁到预算部门和业务需求部门去。 当然,最合理的做法应该是向BAT公司看齐,IT部门转变为利润中心,自己管预算、自己有开发团队,那么金三角的三条边就都可以进行调优了。
作者回复: 谢谢补充👍 非常有价值的分享!
2019-03-1312 - helloworld我认为文中关于三要素的说法是错的。专栏里,提到这个三角的时候又总是同时提到质量,时间成本范围又同时影响着质量,对质量的要求又影响了时间成本范围,那么质量应该是要素之一。 有些文章说三要素是时间成本质量,这也是错的,范围没有了。 PMP提到了,三要素是成本质量范围,时间属成本。 花费了成本,换了别的东西,成本沉没了,再也回不来了。时间也是,花了时间和其它成本,换了别的东西,时间沉没了,再也回不来了。
作者回复: 时间可以算作成本,但是三要素不代表就必须要将成本和时间合并。 对于一个软件项目来说,时间和成本都是很重要的纬度,有无限的钱和最牛的人,不代表就可以用很短的时间做出来产品。 对于项目各种因素的约束,本身就存在各种不同的解读,我不认为一定就只有一种正确答案,你选择自己认为正确的就好。
2019-06-2810 - 小先生从这篇文章,我至少学会了不要怼产品。而是要从成本,时间,范围,三原则中寻找妥协。
作者回复: 💯 对,重点不是怼,而是协商
2019-03-1510 - 草裡菌金三角的确很有说服性,理论级的支撑。 1 用户体验很差的软件。性能低,学习成本高,缺陷多。 2 开发成本很高。但是投入产出比会有一个边界,无限的砸钱也不可能等比提高效率与质量。 3 开发周期长。开发周期长,比较容易出现需求变动,错失良机等问题。 4 不存在。 5 没什么能稳定使用的功能,会牺牲用户体验(比如加广告),性能低,安全容易出纰漏。 6 需求面很窄,小而美的那类软件,个人情怀很到位,开发时间很长。 7 也不存在。
作者回复: 💯 我也认同4,7不存在
2019-03-127 - AICC备注:理论上快,好,便宜是不存在的,但实际能否存在呢,可以只能加进一个新的维度“少” 所以围绕多,快,好,省(对应少,慢,差,贵)来确定1-7会是什么样的软件 1.快 + 便宜 = 质量很差并且多数伴随功能少 2.快 + 好 = 费用成本高多半是早期软件,功能少只实现核心功能但体验不错 3.好 + 便宜 = 开发周期长,但开发时间长费用成本不见得少,所以多半也伴随功能少 4. 快 + 便宜 + 好 = 如备注所说,这会是一个体验不错但功能少的软件,比如微信早期版本只能语音 5.免费 + 快 = 这样的软件也很多,质量基本没谱了可能还有安全风险 6.免费 + 好 = 这样的软件也很多,比如某零杀毒软件,当年就是以免费出道,但成本就很高开发周期一般也比较长 7.免费 + 好 + 快 = 单点功能的软件,比如微信里像抽奖助手的小程序,一个功能好用简单,还有像一些优秀的开源软件插件啥的 但通常免费多数是赚的流量费,广告插入到处是
作者回复: 7的话可能还是有点争议,整体总结的非常好👍
2019-03-126 - alva_xu留言中讲的买工具,提供培训,提供公共组件服务,以及搭建CICD平台和自动化测试平台,也可以理解为增加成本。但对于我们企业来说,这笔成本就不算在具体的某个开发项目里了,所以我把它归结为提高效率,实际上也可以理解为TTM (Time To Marketing)指标。
作者回复: 谢谢补充🤝
2019-03-134 - 少盐金三角,时间、成本、范围,在这三个因素的约束下,取得最好的结果 我想学到更多的知识,只能在时间和成本上都下功夫,如果没有足够的时间保证,成本再高也是浪费
作者回复: 学知识和做项目还是有所不同,学知识,不仅仅是时间和成本,还需要通过应用知识,把知识变成技能,最终才能掌握这些知识。 就像软件工程,无论你花了多少时间成本去学习,如果没有做过真正的软件项目,没有把软件项目中的事例和知识点进行关联,没有在项目中应用这些知识,还是无法掌握的。
2020-03-1123 - dancer很多的游戏公司这三个角都想要,就导致抄袭很严重!
作者回复: 抄袭我觉得就相当于节约了需求分析的时间和成本
2019-03-1823