极限编程中的系统隐喻到底在隐喻什么?

2020-12-28 09:04:00
LuLu
原创
3572
摘要:系统隐喻作为极限编程中的一个工程实践,就是用通俗易懂的语言将原本晦涩难懂的概念或开发过程阐释出来,达到“一说就懂,一听就会”的效果。什么样的系统隐喻才是合格的呢?

系统隐喻作为极限编程中的一个工程实践,就是用通俗易懂的语言将原本晦涩难懂的概念或开发过程阐释出来,达到“一说就懂,一听就会”的效果。

 

隐喻就如同小分队交接的暗号,只有同一阵营中的成员才能明白隐喻指代的是什么。在电影《智取威虎山》中,解放军杨子荣就利用土匪间通用的黑话彻底打消了几个匪徒的怀疑,顺利地混入土匪老巢,最终活捉匪首“座山雕”。

 

此外,IT行业中也有一些只有行内人才能知晓的隐喻,比如:提到“1024”就能立马联想到程序员节;提到“7*24”,就明白这是为“每周七天,每天二十四小时待岗”的码农们设立的国际运维节等。  

 

实际上,系统隐喻的实践就是为了缩减交互人之间的沟通成本、提高沟通效率。一个合格的隐喻要遵循以下内容:


  • 一个隐喻只涉及一种过程

假设团队A称看板为即时贴,而团队B称看板为白板,当团队A与团队B进行交流的时候,就会产生交流障碍。所以,在软件开发过程中,共享这一过程的开发团队之间要用统一的、被所有人认可的隐喻。


  • 隐喻要得到特定范围内的所有人认可

隐喻是建立在团队的共同认知的基础上的。在某一团队、某一公司甚至某一行业中,隐喻应是这一特定范围内所有人员都熟知的事物或活动,并且需要得到所有人的认可。


在极限编程中,客户以及最终用户需要参与到软件开发过程中,所以为了让这类人员能够真正了解流程,在沟通时要避免使用技术术语以及公司内部的行话,代之以通俗易懂的隐喻。 


  • 隐喻要解决问题而不是产生更多问题

隐喻的设置要考虑各方面的因素,比如:日常化、普遍化等,以防止它造成不必要的误解,从而产生更多的问题。

 

总之,隐喻不像算法那样是可预测的、确定的、不可变化的,相反,隐喻具有随意性。因此,在具体实践中可以用形象的隐喻来描述系统或功能模块是怎样工作的,以帮助参与者都能清楚地理解要完成的客户需求、要开发的系统功能以及开发的总体流程。