用隐喻来更充分的理解软件开发
什么是隐喻
隐喻是对事物或知识的通俗抽象,能帮助人更好的理解知识,也可以启发探索不同的方向。
隐喻的重要性
化学家库勒梦见一条蛇咬着自己的尾巴,醒来后他意识到类似的环状分子结构可以解释苯的各种特性。后来的实验证实了他的这个假说。
如何使用软件隐喻
好的隐喻除了帮助人们理解事物,也能助力事物的研究。例如天圆地方的隐喻无法解释为什么航海时会先看到桅杆后看到船只。而地面其实是一个球的隐喻除了能让人很好的理解先看到桅杆后看到船,还能帮助地球自转公转方向的研究。
软件迭代的过程和牡蛎的养殖很类似。一开始我们只需要一个尽可能简单、但能运行的版本,正如牡蛎开始孕育珍珠市的那颗细小粗糙的沙粒。在框架形成后我们一点一点的填充功能、逻辑,每次增加一小块代码,进而得到一个庞大的可靠的系统。正如牡蛎将沙粒一点一点孕育成珍珠一样。
大部分软件的构建过程也可以说房屋的建筑过程很类似,开工前需要明确房屋用途,对应需求分析。然后设计房屋框架,对应软件框架设计。房间详细设计,对应程序设计。房屋框架搭建,对应软件框架编程。房间搭建,装修和家具配置对应软件编程,提效工具的开发。各种监察人员来检查工地、地基、框架、布线、及其他需要检查的地方,对应软件评审和测试。房屋搭建完成后的维护对应软件产品的维护。
软件技术有点像游戏中的工具箱。当我们听说了某项技术,我们的工具箱中就增加了一个未解锁的工具。当我们了解了这项技术的应用场景,它的原理,它与其他技术相比的优缺点时,我们就解锁了这项工具。剩下的就是不断实践进而增加这项工具的熟练度了。
隐喻也是可组合的,我们开发软件时既像建一栋房子,也像系统在生长,而开发过程中各部门人员也都在使用着各自工具箱中的工具来提升自己的效率。
总结:隐喻并不是固定的、一成不变的,它总是随着研究的深入和所面对的环境而变化的,并且是可以组合的。所以我们需要隐喻来启发时,我们需要根据环境的需要和具体的问题来寻求尽量贴近的隐喻,然后对隐喻进行组合,进而启发自己有没有合适的拓展方向。