为什么以及何时选择FFF?让我们来看看。
1.三种组合
每种项目管理方法本质上都是不同的,因为它固定或不固定以下值:预算,工作范围,时间范围和系统内部质量。
特定的组合会创建某些工作条件,各有利弊:
- 固定价格
- 项目三角形的三个点是固定的:时间,金钱和工作量。
- 主要风险由承包商承担,因此,这些风险反映在评估中。此外,还会为客户带来风险,我在第12条中谈到了在IT产品中进行技术分配时遇到的问题。
- 这种方法的一大优点是在工作开始之前就已预先定义了项目参数。企业/政府通常需要在合同中指定期限,金额和工作量。
- . , . , .
- .
- Time and Materials (T&M)
- , - .
- .
- , .
- , . , , .
- .
- ( , Product Owner'), , , , .
- Fix Time and Budget, Flex Scope (FFF)
- : , .
- .
- , , .
- , .
- , , . .
- : , / , .
- , .. . , , , , , , .
– , . , «», , , . . , , SonarQube. Podlodka.
2.
为什么会形成这三种组合?我们为什么不能解决所有问题?毕竟,最简单的事情是确定预算,工作范围,发布日期和系统的内部质量,签订合同(如果客户是内部合同,则要与利益相关者进行批准程序),并在所有四个价值上都取得准确的成绩。但是,正如实践所示,存在一个基本问题,即无法轻易地在不失真的情况下走这条路。
没有人会在计算预算时遇到任何问题,它很容易计算发布日期,并且有许多指标和清单可以为IT产品设置特定的质量级别。如果您可以准确估计工作范围,那么一切就很简单。换句话说,如果有一份详细的任务清单和对该工作量的准确估算,则很容易计算出其他三个量。相反,如果没有确切的估计值,那么其余的值也将是不准确的,因为它们基于工作量的估计值。
估计工作范围始终是一个问题,因为没有单一的估计方法可以达到可接受的准确性。所有方法都基于团队做过类似事情的先前经验,这最终意味着不准确,因为人们不准确:情绪,乐观,健忘。缺乏准确的评估方法是导致我们无法进行工作量评估的首要因素。
我在文章《程序员的客户满意度:所有程序员都是乐观主义者》中写了更多有关此问题的文章。瓦迪姆·马基什维利(Vadim Makishvili)的报告36有一个链接,他建议将分数乘以3。用放置和行走路线的比喻,写在文章为什么IT项目比计划花费2-3倍的时间?...
在IT产品的工作过程中,它们会发生变化:需要完成的任务清单,详细的阐述,系统设计的方法。这是在外部环境的影响下发生的:市场变化,公司战略变化,公司内部政策变化,用户反馈,分析阶段沉默的人的新输入,后来决定发表意见的人等。我们无法影响外部影响是阻止我们最初进入评估的第二个因素。
第三个因素是,在描述工作范围时,没有确定完成程度的标准。 TK的写入无法完成,只能停止。我在何时停止编写《职权范围》一文中对此进行了详细介绍。
我必须保留一点,如果您在一个相当复杂的领域中工作,那么这一切都是正确的:根据Cynefin框架,这是复杂和复杂领域。如果您的项目进入Obvious并且同时时间很短,那么您很可能会非常准确地估算工作量。
总的来说,我们认为问题的根源在于对工作范围的不正确估计,以及使该估计准确的实际可能性,因此:
- 固定价格项目会牺牲系统的内部质量,因为几乎不可能对三个固定峰值进行估算。或者,在同一个固定价格项目中,他们重新预算了很多风险,以弥补评估中的所有不准确性,这是无效的。
- T&M , . Product Owner'.
- FFF , , « » , T&M.
3. ?
如果不可能以足够的准确性来估计工作范围,那么也许根本没有?#NoEstimates这样的运动。简而言之,我们以合理的方式组织开发过程,以便从构思阶段到产品的首次发布都尽可能高效地执行任务,同时保持较高的内部质量。他们提供使用看板来组织流程的过程,并跟踪流程处理指标,并特别注意改进新功能的交付过程。过早的评估被认为是有害的,评估和整理积压工作是浪费时间。
在哪里了解有关#NoEstimates的更多信息:
- 大卫·安德森(David Anderson)在其演讲《企业敏捷性的替代路径》中谈到了很多。
- Askhat Urazbayev在AgileDays的#NoEstimates:非评估发展中发言。
- 罗恩•杰弗里斯(Ron Jeffries)在“估计的一些思考”一文中对此进行了论述。
- 丹尼斯·斯特布诺夫(Denis Stebunov)在哈布雷(Harbré)上的“软件开发中的术语估计”一文中写道。
我都支持这种方法。我喜欢他作为工程师和领导者。但是生活安排得如此安排,预算所有者至少在工作的第一阶段就需要至少一个估计值。在Byndyusoft,我们有时会求助于#NoEstimates,但只有在与客户建立了相当长的关系之后,这种情况并不总是会发生。
4. FFF-灵活性和可预测性之间的平衡
尽管成绩会破坏生活,浪费时间,但没有成绩就很难上手。但是很明显,没有任何估计是准确的。事实证明,最好的选择是确定截止日期和预算,以便企业可以忍受它,并使工作量保持浮动。此外,客户和承包商必须同意,团队在每时每刻仅从事最重要和必要的任务,而客户则花费时间来监视优先级选择的动态。
我第一次看到FFF的描述是在“固定时间和预算”一章的“ Flex Scope”中的“ 37signals实现现实”中。目前,在我公司中,这是最受欢迎的工作方式,无论是客户还是我们,我们都对此感到满意。
5.系统的内部质量
正如我在上面所写,如果公司拥有能够确保系统内部高质量的合格开发人员,则可以从事FFF。通常,这是通过使所有人的一切都自动化,创建具有最佳实践的清单,不断检查代码和体系结构,进行各种测试以及最重要的是,向团队招募合适的人员来实现的。
马丁·福勒(Martin Fowler)的博客写道,为什么不忘内部质量?高质量软件值得吗? ...我在《确定IT项目的失败》一文中写道... 简而言之,对于FFF,假定产品开发方向发生了变化,这意味着系统具有足够的灵活性。如果系统质量低下,那么每次“转弯”都会减慢开发速度并增加成本,直到项目完全停止。
如果要按照FFF进行工作,则将质量标准放到合同中以确保对其进行修复。
6.客户和承包商的动机
FFF的工作为客户和承包商提供了正确的动力。与固定价格不同,在固定价格中,客户和承包商通过合同界面进行通信;与T&M不同,T&M中,客户可能会失去界限,花费过多的钱;在FFF,每个人都必须投资于沟通和“活”在项目中,以做最重要的事情,同时满足合同条款。
7.选择FFF
固定价格和T&M在某些情况下具有优势:
- 如果您参与投标并承诺在约定的时间和金钱内完成特定工作,而沟通主要通过合同进行,则固定价格很可能是最佳选择。
- 如果客户确切地知道他的需求,并且知道如何有效地构建工作流程,那么他只需要购买T&M资源并自行决定处置它们。
但是,在其他条件相同的情况下,我们尝试选择FFF。这种方法似乎是最平衡的:它减少了客户和承包商的风险,在双方上都产生了必要的动力,并照顾了系统的内部质量。
链接:
- 在敏捷上工作时如何撰写以及如何撰写职权范围。
- Artem Gorbunov设计局的项目管理原则。