“软件业,以人为本”。参与软件开发过程的各类人员的共通心理表现,对整个开发过程起着举足轻重的影响。作为一名项目管理者,非常有必要对其进行一一剖析,找出心结,然后对症下药,加大沟通力度,提高开发效率。
结症一:用户,由于观念上的不同,国内的用户更倾向于看到一个实实在在的“东西”。传统开发方法的每个阶段的审查和签字,留下的往往是那句经典笑话:“不错,这是我所要求的,但不是我想要的。”而且由于客户看不到一个成型的“东西”,让他在确认报告上签字也是一件比较头痛的事,更何况客户的需求随时都有可能在变化。但是一开始要给用户一个“令客户满意的结果”,这样的场面实际上是不存在的,而且也是不可能的。
结症二,系统分析员:系统分析员认为应该的东西客户往往觉得没必要。客户觉得应该的东西系统分析员又觉得不可理解。为系统分析员恼火的事情是客户不停地在变更需求(特别是原地打转的情况)。系统分析员在设计系统时考虑的多是实现上的方便,而不是系统的扩展和更新。系统分析员总是在做“吃力不讨好”的事,常常善意地自以为是地为客户做许多“假设”。事实上这些“假设”往往与客户的实际情况相背离。而且系统分析员大的“致命伤”是:系统分析员从心理上往往忽略一些细节上的东西,然而这些细节往往在系统实现时成为系统成败的关键。
结症三,程序员:中国的软件企业普遍还处在“作坊时代”。至今还有很多程序员,满脑袋的“数字英雄主义”,喜欢独出心裁。他们更倾向于一拿到项目马上编码。然后告诉您:他的编码多么出色。他们会把详细设计说明书当作是对他们的一种“桎梏”。他们认为程序应该是一门艺术,而他们正是“艺术大师”。因此在程序中他们留下的“旧日足迹”随处可见。他们喜欢天马行空的工作方式,从而往往忽略别人价值的存在。
结症四,测试工程师:测试工程师往往的想法是“我已经仔细审查并测试过了,不会再有错误的”。实际上运行时不存在错误的软件是不存在的。因为运行产生的错误的原因更多可能是来自于外界因素。测试工程师往往更倾向于测试软件本身而忽略运行环境。一旦交付使用后,对于客户产生的抱怨他们往往会说“这是设计者的不完全造成的,与我不相干”。因此,您很难定他们的“罪”。
如何解决这些心理结症。“第一是沟通,第二是沟通,第三还是沟通”。客户方面的合作是系统实现的前提。从项目开始到结束,用户的参与必不可少。您必须让客户看到:你们是在实实在在地为他们办事。这样您才能得到客户从心理上的认可。消除了原有的顾虑后,事情办起来顺利多了。其次系统分析员方面,在设计阶段把所有可能出现的问题摆在桌面,与客户一起参与讨论(问题产生的条件,特点,效果,后果等),一起解决,尽可能少地把分析,设计时的错误带入下一步开发阶段。程序员方面,要不厌其烦的向他们讲明编程规则的重要性。从心理方面,我们要采用积极引导的办法,多给程序员吃“补药”,多两句赞美的话往往会带来很好的效果,毕竟程序员是年轻人的团体,是受不得“打击”的。此外培养他们的团队精神也是必不可少的。测试工程师方面,我们要尊重他们(国内许多公司测试工程师的地位是比较低的),让他们意识到自己工作的重要性。还要不断培养她们的耐性,责任感和细心的作风(在这方面,女测试工程师比较有优势)。认真听取他们的建议,了解他们的心理感受。在解决上述人员的心理结症后,您会发现整个项目的开发效率有明显的提高。
我个人觉得一名的软件项目管理者,首先应是一名管理心理学方面的专家。人是软件企业的立足之本。了解参与项目开发人员的心理活动,对于项目管理者来说,可以顺势利导,消除不良的人
为因素,提高团队的凝聚力和工作能力,从而提高开发效率。