1、 建立一个优秀的项目团队。
我认为一个优秀的团队,应具有以下几个特点:
A. 人数
一个独立小组的的人员数量应在3-5人为佳。(当然在编程阶段,XP推荐是Pair Programming)
人数过多,对于沟通非常不利。(我曾经见过一个10多人的开发团队,他们没有分组,开会时,坐了满满一座人。何其壮观!!!但他们的开发进度,就像蜗牛爬葡萄树。)
B. 沟通无障碍的风气。
不管你信不信,良好沟通是一个项目成功的基本条件。团队中应该有这样一种气氛:
每个成员,必须具有“直言起谏”的勇气。
给所有人说话(并说完他的话)的权力;
有异样的意见时,我们要做到“我不同意你说的每一个字,但是我要誓死保卫你说话的权力”(伏尔泰)
这样的气氛有助于:及时暴露项目中存在的问题。致于它的作用,我相信每个做过项目的人都应该有刻骨铭心的体会吧!
C. 因人而宜,实施管理。
团队各成员的必然有着完全不同的个性,特长。当这么多人聚在一起时,管理他们确实是件伤脑筋的事情 -:)。 这个时候,有两种方案:
α、采用高压政策,令其就范。
安排严格的工作时间,工作进度。我个人不喜欢,或者说极为讨厌这种作法。
β、采用宽松的管理。
至于,如何实施。我建议大家多看看老子的《道德经》。简而言之,一句话:“无为而治”!(无为非不为,历史上在西汉初,武帝之前,正是采用这种管理方式的)
D. 有全局的思想观
这一点是特指PM的。特别是在项目后期的实施阶段。
任何一项目,都可能会陷入Bug的泥潭。一定要对眼前的困难有清醒的认识。从大局出发,考虑问题,找出重点,并制定相应的策略。
乌云是遮不住太阳的,只要你飞到足够的高度。
E. 有两个以上有项目经验的开发人员。
经验虽然不能解决所有的问题,但总能提供一些有价值的参考。是项目成功的辅助保障。
2、客户的沟通
A. 会谈的礼貌
和客户交谈,无论是CEO、CFO、C(X)O,还是其普通员工,我们必须怀着平等的心态。尽量使用普通话,语速不要太快(宁慢勿快)。阐述问题要有节奏,等对方明白你所说的一段话后,再说下一段。
听对方讲话时,切勿强行打断。等他说完你再说。
无论跟谁谈话一定要不卑不亢。
也许,你会说这很简单。其实,这个世界上所有的事,可分为二种种:知易行难,知难易行。
B. 沟通前的要准备
在与客户见面前,一定要做必要之准备工作。将你所有的问题整理成条目,列在笔记本(纸的)上。对这些问题不是列出来就完了,你还要好好思量每个问题:你希望的答案、可能的答案以及可能发生的讨论。另外需要注意,别人可能会提问的问题。
C. 为客户着想
请注意为客户提出的一个整体方案,或一个问题的解决方案时,首先,要讲出此方案对客户产生怎样的好处,怎样的利益。而不是动不动就讲,这样做,我们节省多少费用或时间。
请大家注意:我们与客户的关系,不是对手,而亲密的伙伴。所要完成的软件,是双赢的。
D. 不要被客户牵走。
目前,大部分的软件开发项目都是为个别客户开发的。针对个别客户的开发,需求的变更非常的频繁。在国外,尽管有成熟的团队、方法、流程,但依然将需求的变更,视为项目中最不确定的因素,是项目成败的关键。
在实际项目中,经常有些开发团队,对客户的要求,言听计从,却不考虑其要求的合理性。导致的结果是:迟迟拿不出,可运行的软件产品,甚至整个项目失败。
不要被客户牵着走的第一点,你要成为该领域的专家。对业务流程要做到:可以闭着眼睛,非常通透的在心里面运行。这时,对用户的要求,做合理性判断。对于合理的要求,找其负责人确认;对不合理的,一定要婉言拒绝(必要时,要敢于据理力争,大多数客户并不是存心与你作对,他们都是讲道理的)。