今天讨论一下复杂系统的开发流程。这里的讨论也适用任何产品的开发。
小改变带来大成就
前面我们讨论过关于改变的一些技巧,其中一个让大象动起来的技巧就是降低改变的门槛。大象任何小小的改进都会以最快的速度反馈给大象,让大象知道这些改进的正面效果,同时给大象更多的信心继续朝正确的方向前进。
这个技巧要求骑象人一次只给大象很小的目标。很多小目标积累起来就可以实现一个大目标。
设计和一个实现一个复杂系统也要如此。将一个复杂的系统尽可能详细地分解为一个个小的任务,项目组的成员在一个时间段只集中精力解决一个个小小的任务。日积月累就可以实现完整系统。
我们称之为分而治之。
![](https://img.haomeiwen.com/i6625050/da52c5a9a7f2478d.png)
斯巴达克斯计
这是一个我很久很久以前听的故事,一直印象深刻。但是写这篇文章的时候特意搜索想求证一下,结果度娘没有给出任何结果。也许是张冠李戴了,知道正确出处的同学请不吝赐教
传说斯巴达克斯被几个罗马士兵追击。如果他和这几个士兵正面交战一定会失败。机智的斯巴达克斯开始快速奔跑好让这些罗马士兵相互拉开距离。当跑在最前面的士兵和其他士兵拉开足够大距离的时候,斯巴达克斯就回身以最快速度干掉这个出头鸟然后继续奔跑。如法炮制他干掉了所有敌人。
一个复杂系统或者产品刚刚被分配到项目组的时候就好象团结在一起罗马士兵,让人望而生畏,无从下手。这种畏惧感觉是人脑天生逃避困难的本能使然。
此时项目组要做的事情就是对系统进行划分,从中找到规律。当系统开发的脉络逐渐清晰起来,人脑对复杂事物的逃避和排斥也会逐渐消除。团队和团队中的每个人会变得更自信和更有效率。
防止拖延症发作
拖延症本质是对积攒起来的待办事宜的畏惧和无助。拖延症导致的结果是更多的事情堆积起来,然后导致了更大的畏惧和无助。
这是一个恶性循环。
复杂项目开发时如果任务安排不当,项目组成员会产生畏惧心理而导致任务的拖延。如果处理不当会带来项目的延期。
正确的方法是对任务进行进一步分解为更小的任务,使得项目组成员可以有充分的信心来完成。
这对于培养新人尤为重要。
敏捷工作法 看板
![](https://img.haomeiwen.com/i6625050/ccc6a34af14fef67.png)
来自日本丰田的敏捷工作模式是一种很受推崇的项目开发流程控制理念。
敏捷开发的基础就是将一个系统开发过程分割为诸多小任务。开发组在特定时间段只开发某个小功能,然后快速将开发结果交付给验证组,然后开始下一个小功能的开发。
看板原型就是一个车间记录任务分发,认领,验证和交付的白板。当系统开发的过程可以被合理地进行分解时,利用敏捷开发的流程,可以在促进不同开发小组并行工作的同时又加快了开发的迭代速度。
分而治之是复杂系统开发的自然选择。当复杂系统被一步一步分割为简单可控的子模块,一个小的初始团队甚至可以利用碎片时间来积少成多,最终完成对完整系统的开发。
网友评论