如何缓解需求沟通中的鸡同鸭讲

作为一个程序猿,你又不是没曾被人说是修电脑的,不过这还好了,我刚毕业那年,有位大哥听说我大学毕业了,给我打电话,说家里的空放机坏了,想问问大学生怎么解决这个难题,让我哭笑不得。多年来,这种情况早已司空见惯,习以为常了,今天,我们来聊聊软件开发中需求沟通的问题,这些问题长期存在,但一直没有看到有效的解决办法。

我不止一次遇到这样的情况,客户问实现某某功能的软件你会写吗,我说先给需求我才知道。然后对方接着说,就是几个界面,每个界面几个按钮而已,很简单的。我说再简单你也得给我具体需求啊,比如分别是什么界面,有哪些按钮,每个按钮的功能是什么,最好把需求写成文档,实在不会写文档就画个草图也行。对方又说,这个没什么好画的,就这么跟你说你应该明白了啊,你看要花多长时间能做完吧。我说大哥你这个我没法做,也没法估计时间,你要给我具体的需求才行,我们软件开发的流程是这样这样的。这一串沟通下来,感觉鸡同鸭讲,然后,就慢慢聊不下去了……

我也曾反思,是自己不会诱导客户说出真实的需求吗?感觉又不太是,让他画个草图,其实就想知道更具体一点的需求。即使我已经知道了客户要解决的真正问题是什么,但是完全不了解业务流程,不了解具体需求,谈何功能开发?那我再试图换位思考,站在对方的角度来看待问题,把自己假设成可能是完全不懂软件开发流程的用户,想要某个功能的软件时,我会怎么去跟开发者沟通。但我又发现,我已经无法设身处地的从用户的角度来考虑问题,也就是我无法把自己装扮成完全不懂软件开发流程的人。这让我想到,人的成长可能就是不可逆的,当你有了某些认知后,你对一件事情的看法是这样的,而你想让自己回到具有这些认知之前的状态,然后改变对同一件事情的看法,其实是很困难的,除非这个认知和你对这件事情的看法具有非常直接的因果关系。所有很多时候,我们无法理解某些人的某些愚昧做法,可能是因为你无法让自己处于如此愚昧的状态。

既然成长不可逆,我们可能无法完全站在对方的角度去思考问题,或者也许这个问题本来就是对方的问题,那么我们又该如何去减少这种情况的发生呢?我认为更合理的社会分工才能有效减少这类问题。客户派来进行需求沟通的人,如果是将来使用该业务系统的人员,那么就会对业务流程比较熟悉,再加上稍微懂点软件开发流程,懂得站在开发者的角度思考下问题,这样沟通下来就会顺畅一些。如果不了解软件开发,那就需要具有一定的表达能力,可以把业务的基本流程描述清楚,然后由开发团队的产品经理对业务进行梳理,画出原型图,再让客户确认开发团队对需求的理解是否准确,查漏补缺,修正原型图,接着开发人员才可以着手进行开发。如果客户派来的人不是业务系统的使用人员,对业务流程和软件开发也并不熟悉,可能仅仅是因为职位比较高,这样的话很难进行需求沟通,导致沟通变成鸡同鸭讲。当然,要完全解决这种问题是不可能的,我们只能寻求一些缓解的方案。

我抛了个砖,引大家的玉。各位读者朋友,你们也遇到过同样的问题吗?你是如何解决的?欢迎在评论里分享您的高见!

微信扫码,进入【技术人成长】社群逛逛。