如何形成开发人员与用户交流的统一语言?
信息在传递过程中是层层衰减的。
所以,当需求从用户传递到开发人员那里时,开发人员所理解并接受的需求已经不是原来用户想要的需求。
需求误解不仅仅是因为文字容易产生歧义,还由于用户和开发人员的知识背景不同,即使是在面对面的交流的情况下,也会因为用户不了解开发人员所使用的一些技术方面的术语,也不理解用户所说的业务方面的术语而造成的误解。
为了降低需求在传递过程中的衰减,减少需求的误解,有必要在开发人员和用户之间使用一个大家能够达成共识的、统一的语言来交流需求。
统一语言是领域驱动设计的核心之一,但即使我们不采用领域驱动设计,开发人员在与用户交流的时候,如果使用统一语言来交流需求,它同样可以降低开发人员错误理解需求的概率。
当然,对于简单的软件,需要统一的术语很少,只要双方在交流的时候统一认识和说法就可以了。而对于一些复杂的软件,需要统一的术语很多,这就需要采取下列方法来形成统一语言。
通过画图的方式去发现统一语言
开发人员与用户交流的过程中,可以使用简单的画图来沟通软件要完成的业务。在沟通的过程中,经常会遇到一些双方理解不一致的术语,双方应及时进行协商,形成统一的术语后并将其名称及定义记录下来。在实践的过程中,不必使用重型的画图软件,不必在乎图形的美观与否,只要表达出对需求的理解即可。
由专家小组定义所有所需术语的词汇表
如果在用户或者开发人员的任何一方中,有既懂业务又懂软件的专家,可以由专家来定义这个项目所需的统一术语。当然,即使是专家定义的术语,也要征询开发团队及用户的意见,不能强制推广。
使用头脑风暴的方式来发现统一语言
头脑风暴方法可以快速地集合众人的智慧来解决问题,形成统一语言也可以使用这一方法。头脑风暴要有领域专家、用户、开发人员参与。每个参与人员都不要陷入自己习惯的思维模式,而是要有哲学思维,学会从不同的角度思考。
总之,统一语言是整个开发团队和用户统一使用的术语,使用它不会让人对需求的理解产生歧义。
这正是:
需求传递不失真,统一语言是核心
画图风暴预定义,三种方法帮助亲
参考书目:复杂软件设计之道:领域驱动设计全面解析与实战,作者:彭晨阳,出版社:机械工业出版社