2012年9月18日星期二10:12

软件项目的五个维度,第1部分

Written by

特点18th.也许你在汽车维修店看到了一个迹象,问:“你想要什么:好,快,或便宜?选择两个。”虽然幽默,标志也是明智的:它承认权衡的现实。您通常无法优化给定情况的每个所需结果。

人们经常将此所谓的“铁三角形”或“三重约束”应用于软件项目。问题是我已经看到了三角形的三角形的众多表示,在三角形的顶点,成本,时间或范围上具有各种参数 - 以及关于所保持常量的各种假设,例如质量或功能。我还看到了显示四个项目尺寸的图表。因此,在我看来,“三重约束”是错误的,尽管概念有效。

五个维度

我以五个维度思考我们必须在软件项目上管理(图1,从我的书创建软件工程文化)。首先,当然,存在具有项目的功能(AKA范围)的功能(AKA范围)。但重要的是区分质量范围。如果它不需要正常工作,我可以非常快地编写软件。另外三个维度是我们在交付前(计划),项目预算(成本)的时间(成本)以及可用于项目的工作人员。我们不应该团聚在一起,并拨打往往拨打“资源”组合。大多数项目成本确实是员工工资。但是,我已经看到了一个团队足够的资金,但不能雇用额外的员工。在这种情况下,可能是项目经理可以以不同的方式使用可用的资金,例如外包一些工作,购买自动化测试工具,或带入顾问。

 

Karl1sept28th2.

对于每个项目,我们需要决定哪个维度最关键,如何平衡其他方面,以便我们可以实现关键的项目目标。这五个维度之间的权衡并不简单或线性。例如,如果您添加员工,则可能缩短计划(虽然不一定),并且成本可能会增加。一个共同的,但不幸的权衡是缩短时间表或添加功能,同时牺牲质量。任何一位曾经是MADGY软件受害者的任何人都会有这些权衡决策,但他们确实发生了。

这五个维度中的每一个都可以在任何给定的项目上采取三个角色之一:约束,驾驶员或自由度。约束定义项目管理器必须运行的限制。项目管理器周围没有灵活性。如果将一个不可思议的固定规模的团队分配给项目,员工成为一个约束。成本是在固定价格合同下的项目(至少来自客户的角度)的项目限制。质量将是为医疗设备开发软件的项目的约束。 Y2K项目是安排受约束的。

司机是项目的关键目标或成功标准。对于具有期望的机会窗口的产品,时间表是司机。商业桌面应用程序通常具有驱动程序的功能。项目经理周围的司机有一点灵活性。指定的功能集可能是项目的主要驱动程序,但如果要素集不可通配,则要素是约束。

任何驾驶员也不是约束的项目维度都是自由度。这是项目经理可以在某些限制范围内调整的一个因素。那么,经理的挑战是调整自由度,使项目成功地满足其在受限制范围内的成功司机。假设在一些公司信息系统项目上,司机是特征,质量,员工是一个约束,因此自由度成为日程表和成本。对此配置文件的含义是客户所需的功能将包括在内,但产品的交货时间可能晚于所需,并且该项目可能比计划成本更多。

这是一点点安全提示:所有五个维度都不能限制,他们不能都是驱动力!有些东西必须放弃能够满足关键目标。如果项目被过度约束,则没有自由度,那么你几乎肯定会失败。第一次增加的要求是获得流感的第一个团队成员,这是实现的第一个风险将删除时间表,因为项目经理没有灵活地响应这些变化。一个学生在一个项目管理课程我曾教过曾经说过,“我们的项目有一个固定的预算,我们不能添加任何人,所有的功能都很重要,没有任何缺陷,我们必须按时完成。“这个项目不太可能成功。

谈判优先事项

该模型的一个重要方面是五个维度中的哪一个是对任何给定项目的驱动程序或约束,而是由项目团队,客户和管理方先协商维度的相对优先级。此协商过程有助于定义项目的规则和界限。例如,当事实上它是一个驱动程序时,计划通常会被呈现为约束。判断差异的方式是要问,“好的,你想要这是6月30日交付的。如果它在7月14日之前没有交付,那就会发生什么?”如果答案是忘记整个事情,因为它对我们来说不会有用,或者我们将被围绕政府或客户的处罚,然后,安排真的是一个约束。但是,如果答案是,“好吧,我们肯定会在6月30日之前这样做,但我想我们会在两周内没有使用,”然后时间表是一个司机。如果尺寸周围有一些灵活性,那么它不是约束。一点点灵活性使其成为司机,并且很多灵活性使其成为一种自由度。

让我说明这个五维想法如何在实践中工作。一旦我听到高级经理和关于一个新项目的项目经理之间的讨论。高级经理问道,“这将需要多长时间?”项目经理回答说,“两年”。 “这太长了,”高级经理说。 “我需要六个月。”那么项目经理说了什么?他说,“好的。”现在在几秒钟内发生了什么变化?什么都没有!该项目并没有缩小四倍,团队没有得到四倍,而球队没有神奇地成为生产力的四倍。项目经理简称高级经理想听到的。 (该项目需要两年多的时间才能完成。)

项目经理可以回复的其他方式是什么,而不是简单地说好的?让我们看看五个维度。也许他本可以询问绝对必须在六个月内提供哪些产品。也就是说,我们可以削减初始版本的特征吗?项目经理可以质疑计划,询问,“大约六个月太重要了?”也许这个系统正在取代在古董计算机上运行的遗留系统,他们在六个月内从建筑物中删除该计算机。好的,这是一个充分的理由。或者也许没有什么魔法六个月,但我们了解有一个强烈的愿望,让系统运营迅速。在这种情况下,目标日期为六个月是司机,而不是约束。

您可以在五个属性的列表中继续此分析。我可以得到更多的人或更多钱吗?软件是否必须工作?有些组织在预定发布日期提供了一些内容,但它的功能严重瘫痪,充满了错误。尽管如此, 他们宣布胜利并声称他们正在按计划发货,即使他们发货没有用。这只是他们玩的小游戏。

考虑这五个维度是了解您的项目优先级的更好方法,而不是假设项目的每个方面都是关键和不可谈判的。在本系列的第二部分中,我将描述两种方法来代表项目的限制,驱动因素和自由度的信息,并向您展示一些示例。

别忘了留下你的评论。

卡尔威尔斯

卡尔威尔斯是Portland,俄勒冈波特的软件开发咨询和教育公司的主要顾问。他有一个有机化学的博士学位。 Karl是众多关于软件开发书籍的作者,最近“软件要求,第3版”,共同撰写Joy Beatty。他也是“成功的商业分析咨询:策略和策略,单独的战略和提示”的作者,“生命课程的回忆录,以及标题为”重建“的法医神秘小说。此外,卡尔在软件,化学和军事史上写了17首歌曲和近200篇文章。您可以在processimpact.com或karlwiegers.com到达他。

©ba time.com 2021

MacGregor Logo White Web