敏捷项目管理播客
瘦/敏捷连接部分1

规划对于项目的开头来说太重要了

规划 在项目中规划,敏捷或传统,是一个关键的活动,但它只是它基于的信息。当我们在一开始时,我们不应保留大部分规划努力。相反,计划在整个项目中进行计划,并计划需要发展以反映项目的变化现实。

通常的项目往往从计划发出分歧,假设是项目需要带回轨道。嗯,也许这个计划很糟糕?从Alfred Korzybski的报价“地图不是领土”,很好地总结了这个位置。当现实从计划发出时,它是我们必须依赖的现实。现在,我并不建议我们不跟踪计划,只要他们喜欢,就可以让事情采取。相反,我们插入分析为什么计划和项目分歧的步骤;在软件项目中,原因往往我们有一个较差的初始计划。

软件是无形的,要求难以清晰,并且很少是同一系统构建了两次,这使得对现有功能难以进行比较困难。这些问题可能导致“评估困难”,不匹配在原始要求和真正客户目标的解释之间发展。

其次,执行软件项目的过程是复杂,创造性和高风险活动。与许多可预测的制造项目不同,在今天的快速不断变化的语言中写软件不是定义的可重复的过程。软件开发往往是一个前所未有的,研发的过程。试图为软件开发人员创建详细的任务为导向的计划可能会导致脆弱,很快被遗弃的计划或更多的项目管理时间花费更新大型计划而不是管理项目。

遗憾的是,许多项目在生命周期中的大部分计划都在生命周期中,当关于问题领域,商业环境或团队动态知之甚少的具体数据时。与项目管理的传统强调如图1所示。如绿色着色所示,规划主要是一个早期的项目生命周期活动。

  策划_fig_1_4.

敏捷方法接受软件项目的项目现实,并故意使计划更高度可见,并迭代项目生命周期的组成部分。在图2中,随着规划在整个生命周期发生的情况下,我们可以看到重复的绿色阴影集。

Plann_Fig_2_2.

实用
赞助商将理解地想要一些项目将花费多少成本以及完成的时间需要多长时间,因此需要在项目开始附近创建一些完整的项目估计和计划。然而,这些应该是植物粒度并受到显着的差异 - 因为它们可以可靠地代表的是一个英里宽的项目深刻的项目。然后,仅作为项目详细信息和团队性能趋势,所以可以创建更好的规定计划。 “计划整个项目高水平,详细迭代”成为敏捷规划咒语。

这个概念在图3中描绘。

策划_fig_3_2.

绿色阴影黑暗代表规划细节。高级初始计划没有很多细节。它概述了设想的项目时间线和迭代边界,但不包含有关计划在每次迭代中开发的各个功能的详细信息。在与开发团队和客户的计划会议之后,将创建详细的迭代计划,其中列出计划为该迭代开发的特征(用户故事,用例)。下次迭代的候选功能列表作为大纲计划持有,但随着当前迭代的工作,新的要求表面和客户的优先级,此列表可能会随着详细信息而出现的变化。

图4显示了计划如何看待迭代2的结尾。

Cannal_Fig_4_2.

现在已经完成了迭代1和2,为迭代3和迭代创建的大纲计划准备了一个详细的计划4.除了完成迭代计划,还更新了高级计划,以反映新兴细节,速度和从项目的变化。地图不是领土,但我们应该在我们在项目旅行中发现新的地形时修改地图。

可能在敏捷和传统规划方法之间可能不会立即明确的重要差异 计划重构努力。随着计划的规模增加,重构的努力(更新)反映项目变化以非线性速度增长。

plan_refactoring_effort_3.

图5 - 计划重构努力

[图5显示了由100,200,300,400和500任务(X轴)组成的重构计划的时间(y轴)。这些时间从我自己的项目中获取,并记录了制定各种范围,人员配置和业务优先事项变更所需的时间。您的里程可能会有所不同,但我非常有兴趣从任何科学数据的读者那里学习。]

因此,虽然我们直观地知道更容易更新更新一个更新大计划的小计划,但由于计划超过300个任务成功进行广泛变化的努力急剧增加。由于敏捷计划的分割性(单一高级计划和单独的迭代计划)没有单一的计划到了重构是大量努力的大小。如有必要,可以验证并快速更新计划,而不会破坏它们。对于大型计划而言,这是不正确的,这无法快速地查看并包含各种依赖性,当您滚动长期计划时,难以在视觉上追踪。

另一个导致脆弱的常见问题,难以维持计划 不恰当的计划细节。在规划项目并指定所有任务和依赖关系的同时,倾向于在技术活动中添加不当(太多)细节。项目经理是最佳人士,以定义如何进行技术工作。而是简单地列出了占位符的占位符,并让域专家(开发人员)展示它导致更强大的计划。敏捷迭代计划简单地列出要开发的功能避免这种不恰当的计划细节风险和相关的脆性,难以重构项目计划。

计划计划计划是常识,PMBOK指南有两个规划指南,鼓励整个生命周期规划,这些是“滚动波规划”和“渐进式阐述”。滚动波规划说明“规划应该是整个项目的迭代过程“。这是一个令人钦佩的概念,但往往很难实现大型计划。 “渐进的阐述是临时和独特的项目的特征。渐进的阐述意味着在步骤中发展,并继续增加。“因此,PMBOK指南认识到规划应该是迭代和整个生命周期,但由于许多项目经理在生命周期早期重点展示了他们的规划努力,并创造了难以重构的大计划,这些建议很少实施。

概括
而不是试图创造巨大的详细计划,这些计划很快从现实中发散,并且难以维持。我们将通过利用开发人员管理本地复杂性的个人能力来更好地服务,并创建列出功能的轻量级计划,但不要试图决定实施步骤。在这样做,我们创建了可以接受软件项目的必然变化的计划,并定期为我们所知的即将到来的功能产生小计划。有趣的是,我们的敏捷计划支持比大多数传统项目计划更好的PMBOK的渐进制作和滚动波概念,但几乎没有对这方面的对齐的确认。 

注释

此项对应的评论被关闭。