C语言是每个程序员必需学习的语言,也是必须要掌握的语言。它对于开发人员,却不一定对每一个人来说重要。客户是不需要掌握C语言的,在开发人员看来,他们希望客户学习或精通C语言,这样可以方便他们之间交流和沟通,可是要求客户学习C语言明显是自杀式的行为。所以,开发人员最还不要只见面对客户,让项目经理来和客户交谈,它们可以用非C语言而很好的交流。他们会用一种UML的模型语言来解决好客户的问题。可是客户会用UML语言吗?这是一个问题,一个客户与开发人员,项目经理之间的沟通问题。
UML在实际应用中存在了两个问题:1,大部分的使用者,以及客户的信息人员,其实并没有足够的能力,来确认这些文件的正确性及完整性。2,除了客户部了解UML,OOAD跟RUP以外,另外一个更糟糕的现象就是项目组里面的人也不懂。这就相当于一个人在用甲骨文来个我们交流,除了UML是专业用语它还有什么意义呢。
在项目进行中,开发任运要与客户沟通的计划只有三条:1,在一个月中,只能跟客户作三次联系;2,三次联系中,最多只能有一次面谈的机会;3,一个月后,提交全部的需求调研报告,需求分析和关于该项目的远景规划。如果项目并不大,开发人员不需要花太多精力,为了更好地完成项目需要减少沟通和保障沟通质量。这时提出了最减沟通,首先要了解客户所在公司的经营理念,组织结构,工作模式,了解相关软件的特征及客户关注的内容。然后开设设计问题,将项目概论用mail发给客户,对客户的回复来进行修改。确定实际目标和远期方向。最后进行面对面的沟通,得到详细的调研报告,最后完成整个项目。
历史上由于材料的缺失导致断层是常见的,项目的中断和终止与历史产生断层的内因是一致的。我们在做项目是如果不留下历史的痕迹,那么在别人看来那就是两眼一抹黑,什么都不懂,所以维护就项目比作新项目更难。而历史记录和注释不是一回事,代码中的注释是为阅读代码而被留的,而历史记录是为整个项目记录的。所以在你写程序时,不仅要自己能看懂,别人也要看懂。
沟通是有目的性的,如果没有目的性和客户沟通那就是浪费时间,而在大多情况下,它仅仅是交流感情。沟通问题不仅仅存在于客户交流之中,还存在于与项目的各个角色之间。所以,流于形式的沟通,可能是使得你的项目被不断推翻和不断延迟的最直接原因。