1.3 处理不确定性
在复合区域,传统的工程实践效果不理想。使得基于过去的事件来制订计划成为一个不可行的做法。必须要有一种更实战的方法。这就是这些年软件开发实践者们所学到的东西。这并不意味着他们不做计划,他们只是做法不同。在复合区域,不管你多么小心地规划未来,如果你不每天调整你的计划,它将更可能只是一场梦。
让我们来举例说明这一点。设想一下,如果有人声称:她可以根据详细的传统计划开发一种超级药品。作为投资者,你会仅仅根据一个计划就投资几百万美元做这个项目吗?事实上,完全遵照一个计划而没有持续的调整以适应变化是不可能做到的。经理们和投资人通常会避免投资这种波动太大的项目,因为针对“如何做”有太多的不确定性。各级组织这些年学会了一件事,那就是如果在“如何做”这件事上有太多的不确定性,那么他们是不会采纳传统方法的。
图1-4展示了适用于研发(R&D)的复合区域。你可以假设在这个区域,关于需求“是什么”几乎没有不确定性。通常的情况是,我们需要解决什么问题是没有分歧的。所有的风险都跟解决方案有关。
相反,当几乎所有的风险都跟需求有关时,你就会面临大多数软件开发团队所经历的问题。图1-5正是说明了这种情况。这时候适合使用敏捷框架,比如Scrum。
那些千千万万参与签署“软件开发敏捷宣言”的人们这些年明白了使用传统的工程实践去解决复合区域的不确定性是很困难的。因此,他们提倡使用不同的策略。这一点对研发(R&D)来说也一样正确。研发和敏捷都是用一种受“试错”流程影响的非传统的方式去解决不确定性。试错是一种启发式解决问题的方法。只有最有希望的尝试才会被采纳,并在将来的尝试中逐渐改进,而那些被认为不太有希望的则会被淘汰掉。当需求处于不断变化的情况时,你必须使用基于“试错”流程的迭代式探索的方法。
时间: 2024-09-20 23:35:46