美文网首页人类的理性思维能力每天写1000字@IT·互联网
分而治之 - 复杂系统和产品的解决之道

分而治之 - 复杂系统和产品的解决之道

作者: 壹诺思维 | 来源:发表于2018-05-11 00:03 被阅读90次

今天讨论一下复杂系统的开发流程。这里的讨论也适用任何产品的开发。

小改变带来大成就

前面我们讨论过关于改变的一些技巧,其中一个让大象动起来的技巧就是降低改变的门槛。大象任何小小的改进都会以最快的速度反馈给大象,让大象知道这些改进的正面效果,同时给大象更多的信心继续朝正确的方向前进。
这个技巧要求骑象人一次只给大象很小的目标。很多小目标积累起来就可以实现一个大目标。
设计和一个实现一个复杂系统也要如此。将一个复杂的系统尽可能详细地分解为一个个小的任务,项目组的成员在一个时间段只集中精力解决一个个小小的任务。日积月累就可以实现完整系统。
我们称之为分而治之。


分而治之

斯巴达克斯计

这是一个我很久很久以前听的故事,一直印象深刻。但是写这篇文章的时候特意搜索想求证一下,结果度娘没有给出任何结果。也许是张冠李戴了,知道正确出处的同学请不吝赐教
传说斯巴达克斯被几个罗马士兵追击。如果他和这几个士兵正面交战一定会失败。机智的斯巴达克斯开始快速奔跑好让这些罗马士兵相互拉开距离。当跑在最前面的士兵和其他士兵拉开足够大距离的时候,斯巴达克斯就回身以最快速度干掉这个出头鸟然后继续奔跑。如法炮制他干掉了所有敌人。
一个复杂系统或者产品刚刚被分配到项目组的时候就好象团结在一起罗马士兵,让人望而生畏,无从下手。这种畏惧感觉是人脑天生逃避困难的本能使然。
此时项目组要做的事情就是对系统进行划分,从中找到规律。当系统开发的脉络逐渐清晰起来,人脑对复杂事物的逃避和排斥也会逐渐消除。团队和团队中的每个人会变得更自信和更有效率。

防止拖延症发作

拖延症本质是对积攒起来的待办事宜的畏惧和无助。拖延症导致的结果是更多的事情堆积起来,然后导致了更大的畏惧和无助。
这是一个恶性循环。
复杂项目开发时如果任务安排不当,项目组成员会产生畏惧心理而导致任务的拖延。如果处理不当会带来项目的延期。
正确的方法是对任务进行进一步分解为更小的任务,使得项目组成员可以有充分的信心来完成。
这对于培养新人尤为重要。

敏捷工作法 看板

看板

来自日本丰田的敏捷工作模式是一种很受推崇的项目开发流程控制理念。
敏捷开发的基础就是将一个系统开发过程分割为诸多小任务。开发组在特定时间段只开发某个小功能,然后快速将开发结果交付给验证组,然后开始下一个小功能的开发。
看板原型就是一个车间记录任务分发,认领,验证和交付的白板。当系统开发的过程可以被合理地进行分解时,利用敏捷开发的流程,可以在促进不同开发小组并行工作的同时又加快了开发的迭代速度。

分而治之是复杂系统开发的自然选择。当复杂系统被一步一步分割为简单可控的子模块,一个小的初始团队甚至可以利用碎片时间来积少成多,最终完成对完整系统的开发。

相关文章

  • 分而治之 - 复杂系统和产品的解决之道

    今天讨论一下复杂系统的开发流程。这里的讨论也适用任何产品的开发。 小改变带来大成就 前面我们讨论过关于改变的一些技...

  • 用例与面向Aspect软件开发-图解1

    软件系统复杂,分而治之,每个部分就叫组件。组件对内隐藏职责的实现细节,对外通过接口和系统其他部分交互满足自己的...

  • 组合式异步编程---CompletableFuture接口理解

    在现代软件开发中,系统功能越来越复杂,管理复杂度的方法就是分而治之,系统的很多功能可能会被切分为小的服务,对外提供...

  • 网站架构核心的理念是什么?

    其实我觉得并不复杂,核心性质的东西大都是很简单的。 架构的理念,就是不断找到系统的瓶颈和弱点,采用分而治之、缓存、...

  • 架构和框架的联系(摘录自[软件架构设计])

    框架技术和架构技术的出现,都是为了解决软件系统日益复杂所带来的困难而采取“分而治之”思维的结果--先大局后局部,就...

  • 学习日记-05-关于 快速排序

    快速排序运用了递归的思想--分而治之(divide and conquer)时间复杂度O(N*logN) 分而治之...

  • 系统复杂和复杂系统

    复杂系统 VS 系统复杂 其实说的更清楚点应该是复杂的系统和系统的复杂性。 那么一个系统一环扣一环,是复杂的系统,...

  • 从OO到DDD

    分而治之作为控制复杂性的技巧由来以久。在设计复杂系统时,先分解为一些小的部分,然后独立的处理每个部分,再将他们连接...

  • 什么是设计模式中的高内聚低耦合?

    模块 模块就是从逻辑上将系统分解为更细微的部分, 分而治之, 复杂问题拆解为若干简单问题, 逐个解决。 耦合 主要...

  • Saving UI States

    保存UI状态 处理简单的情况:onSaveInstanceState() 管理更复杂的状态:分而治之 恢复复杂的状...

网友评论

    本文标题:分而治之 - 复杂系统和产品的解决之道

    本文链接:https://www.haomeiwen.com/subject/kxotdftx.html