原则.分解问题

12009

概述

复杂的业务问题中一定会包含很多不确定因素,它们会影响问题解决的速度和质量。在实施解决方案之前,通过对问题的层层分解,可以让团队更了解业务,更早识别出风险。企业应该坚信,即便是很大的课题或者大范围的变更,也可以将其分解为一系列小变更,快速解决,并得到反馈,从而尽早消除风险。与其设计一大堆特性,再策划一个持续数月的一次性发布,不如持续不断地尝试新想法,并各自独立发布给用户。

应用

当开发一个电子商务网站时,如果将整个项目作为一个问题来看待,那么这个问题将会非常复杂,包括用户管理、商品展示、购物车管理、订单处理、支付处理等许多部分。如果试图一次性解决所有的问题,那么开发过程可能会变得混乱且难以管理。

在这种情况下,"分解问题"原则就是将这个大问题分解为一系列小问题。例如,可以将用户管理、商品展示、购物车管理、订单处理、支付处理等每一个部分都看作一个单独的问题,并且分别解决。这样,每个小问题都会变得更容易理解、更容易管理,同时也更容易测试和修复。当所有的小问题都被解决后,整个大问题也就随之得到解决。

在面向对象设计中,"分解问题"原则也被广泛应用。在面向对象设计中,一个大的问题通常会被分解为一系列小的对象,每个对象都有自己的职责和行为。这样,每个对象都可以被单独设计、实现和测试,从而使整个系统的设计和开发过程更加清晰、更加高效。

分解并快速试错

“一次到位式”解决方案通常需要较高的实施成本,而其带来的实际效果具有较高的不确定性。由于前期投入的成本较高(即沉没成本),即使这个解决方案未能带来预期效果,团队也不愿意放弃这一方案,决策者通常选择保留它,或者仍会持续优化,使其慢慢“死去”,而这会带来不必要的产品复杂性和维护成本。

如果我们能够换一种思路,更多地使用低成本的快速试验方式,那么在相同的成本下,可以尝试更多的方法,尝试更多的次数,这意味着可能会有更多的收益。在相同的成本下,尽管快试错失败次数多,但可能会得到更多成功的想法。