读后感已经写到了第四章,前期关于编程精义,方法,团队管理方面已经做了相关的总结,接下来就到了与客户的沟通了。
很明显,要想了解客户需要什么,首先要和客户进行沟通。作为程序的开发人员,我们可能会希望客户可以能学习或精通c语言,这样客户就可以以c语言的形式告诉开发者他们究竟需要的是什么。但是与客户交流,开发人员面对的是人,而不是计算机,不能简简单单的用c语言来描述,因为他们面对的是人,而不是计算机。
这时,便需要一个可以用汉语,或其他的非c 的语言来与客户进行交流沟通的人。当然如果你想要开发人员尽早的进入状态,可以让开发人员以需求调研的身份出现在客户面前。有的客户可能会聘请咨询公司,但是这些咨询公司仍然会面对与客户的交流问题,而且他们还有可能把事情复杂化。
关于写项目文档,只要约定一套“语法”,我们同样可以用甲骨文来做活动图,类图,构件图等等,以及这些图像相关的规约。韩愈曾说,他不会“速化之术”,就像盲人并非不知道路如何走,只是他不能像正常人一样描述他所知道的路,问盲于道并没有错,错的是你没有站在他的立场上理解他的回答而已。基于这个问题上,我们就需要建立一种沟通方式,我们沟通的目的是了解对方真实的目的,而不是追求这种沟通的方式,以及你的用语是否准确。
在做项目时,客户也许并不会为这个项目投入太多精力,所以我们需要做的是以最少的沟通来解决最多的问题,也就是要提高沟通的效率,保障沟通的质量。我们要了解客户项目中所会产生需求的信息点,因此我们需要了解客户在公司层面的外在表现、内部机制和运营管理手段。还需要了解客户在项目中已经明确的需求和可能发生的需求,以及客户围绕其公司行为所提出的需求。
在做项目的时候,还是要做好历史记录的,主要是为了整个项目的后继开发和维护。历史记录与注释并不是同一回事,代码中的注释是为阅读代码而准备的,而历史记录具有全局性。这些记录一般会有需求阶段,设计阶段,开发阶段,测试阶段的内容记录。
我们知道大多数的工具都有历史记录的功能,尤其是在开发工具和测试工具中,此外版本管理工具也留下了每个阶段的印记。但是不必过于信任他们,因为他们在某些情况下并没有详细的记录。
在很多时候,我们所听到的沟通只是一种流于形式的。在没有明确目的的情况下与客户沟通就是在浪费客户与自己的时间。其实我们所说的沟通不只是是在客户之间的,也是在与程序的开发人员上的沟通。流于形式的沟通,可能是你的项目被不断推翻和不断延迟的最直接原因。
由此看来,良好,高效的沟通是项目完成的一大重点。