大道至简读后感
——第四章
沟通,一谈到沟通这个词语,我们会想到很多问题,
例如:
- 我们需要沟通吗?
- 我们会沟通吗?
- 我们为什么要沟通?
- 你和谁有效地沟通过?
- 家长(要钱)
- 老师(要分)
那什么又是沟通?我们可能得到以下的结果:
- 不要想当然地认为你的听众会领悟你没有直接表达的意思
- 说完整的句子
- 不要将主观看法当做客观事实
- 避免使用双重否定
- 根据对象选择合适的语言
- 避免使用模糊和多义的语言
无论是在生活中还是我们所写的程序中,我们都要学会沟通,在生活中,只有我们学会了沟通,才能和他人很好的相处。同样的,我们所写的程序必须要有一个共同的功能:能够和客户正常的沟通,让用户能够理解我们所说的话。
那么怎么才能算的上有效的沟通呢?
思维混乱不可能带来。如果一个人连自己在想什么都不明白,又怎么能够清楚地表达给别人听?然而,明确的观念也并不会自动地保证有效沟通。或许我很清楚自己要说什么,但是很可能一张口就词不达意,表述混乱。
那么在计算机中,我们又怎么做到与客户的沟通?
程序员不能要求客户会 C Language, 难道需求分析师们就能要求客户会 Modeling Language 吗?这个答案是肯定的,我们并不能要求客户能做什么,俗话说“顾客是上帝!”对于我们程序员而言,我们要做的就是在编写程序的时候要考虑客户,客户能否可以随意使用我们的软件,他在使用的过程中会遇到什么样的问题,我们要在他们遇到那些问题之前就把这么问题解决了。当然了,在程序员之间,我们要做到,我们所写的程序代码,互相都能明白对方在写什么,这同样也是沟通。在书中我们可以看到“最简沟通”这个词语,那什么又是最简沟通呢?其实最简单的沟通就是面对面的交流,沟通。在一个公司或者说一个小组接到一个项目的时候,他们所要做的有以下几点:
(1) 确定项目的实际目标,以及远期的方向
(2) 设计需求条目
(3) 与客户进行面对面的沟通
(4) 分析设计
作为程序员,我们应该清楚的是, 保障每一次沟通的有效性都是最重要的事。沟通不是打电话或者请客户吃饭那么简单的事。你得到的每一次沟通机会, 都是向客户了解更深层次的需求的机会,因此最好在见到客户之前,你就已经设计了所有的问题和提问方式。
最后,我们要为不存在的角色留下沟通的渠道。比如说现在国家在“夏商周断代工程”中再次推算和考证编年史,相关资料也同样只做参考,实际采用的方法是更有可信度的金文(记载)、历史学、天文学、碳-14 测年等。资料的缺失、及其有效性的缺乏,给中国编年史撰写带来了莫大的困难。
同样的,我们在程序设计中也要把项目的 History 作为跟这种“不存在的角色”沟通的一种方式。History 的丰富和准确为项目的后继开发、维护提供了可能。