三、定义“质量”
几乎每个人都会认真地对待质量问题而且都希望生产出高质量的产品。然而,对于软件的质量含义,没有一个统一的定义。传统上的软件质量观点和“足够好”的软件观点有着激烈的争论。为了帮助小组走向成功,需要花一些时间和你的组员、客户共同探讨质量的含义。
这两种阵营在思想上经常不会有相同的定义,可以很容易的就不同目的开展工作。关注交付计划的经理对于想正常地检查每行代码的工程师会不耐烦的;认为可靠性非常重要的客户对一个带有很少使用但带有很多bugs的特性的产品是不会满意的;一个很好的GUI也许会让用户厌烦,因为用户已经熟记了如何有效地使用前一个版本的产品。
为了更好的理解客户对软件质量的看法,在Kodak,我的小组曾经邀请了我们的客户和他们的经理就这个议题在一个开放的论坛展开讨论。这个论坛是很有意义的,那些使用我们产品的人有着自己的理解,通过讨论,我们可以知道我们制定质量的思路有哪些和他们是不相符的。明白了不同,就可以使你集中精力,照顾客户的最大利益,而不是使开发人员获得最大满意。
软件质量的传统描述包括要与说明书一致,满足客户的需求,代码和文档没有缺陷。“六个∑质量” (six-sigma quality)这个流行词, 建立了一个非常高的尺度,用于监测失败的频率和密度。但它不适用于如快速产品交付,可用性,充足的特性集,已支付价钱的交付意义这样的质量尺度,。对于我们生产和购买的产品,我们总是热衷于尽可能涵盖所有的这些质量特性,然而,妥协总是必须的。
在一个项目的需求阶段,我们制定了包括十项质量属性的一个列表,如效率,协同性,正确性以及宜于学习,我们认为这对于用户来说是最重要的。我们请客户关键人物代表小组以1到5的尺度评估每项属性。一旦我们决定了哪些属性是最重要的,我们就可以设计并实现这些目标。如果你在了解了对于客户的质量含义并在设计实现质量属性的过程中没有麻烦的话,而且客户对质量属性表示满意,那你是很幸运的。
在众多关注的质量说明中,我曾听到过一个:“客户回来了,但产品没有” 。和你的客户、开发人员一起对每一个产品都确定适当的质量目标。一旦决定了,就给出达到质量目标的明确的最高优先级。以身作则,按很高的质量标准要求你自己的工作。采用这个座右铭:“力求尽善尽美,满足于优秀。”
四、表彰成绩
对你组员成绩的表彰和奖励,是激励他们的一种很重要的手段。除非你的小组中已经有了一种表彰程序,否则这应是你最重要的事情之一。表彰包括象征性的东西(证书,旅游奖励)以及实际的东西(电影票,餐馆礼品券,兑现奖)。在送赠品时要说一些亲切的话语:“感谢你所给予的帮助”或者“祝贺取得了成绩”。在表彰和奖励上花费很少的心思和钱,就可以获得很多的友好和将来的合作。包括客户代表,以及为项目成功做出过贡献的支持人员等等开发组外的人员也可以获得表彰。
和你的组员讨论,了解他们感兴趣的表彰和奖励的方式。使得无论大小成就的表彰活动成为小组文化的一个标准组成部分。对每位组员对其所作的工作表现出发自内心的兴趣也要给与含蓄的表扬,为消除所有影响他们战斗力的障碍尽你的力量。表彰是展示组员以及小组外的其他人的一种方式――你要知道并感谢他们为小组成功所作的贡献。
五、学习过去
你的小组在过去承担的一些项目有可能没有取得完全的成功。甚至在成功的项目上,我们也能经常认为一些事情我们下次会作得更好。当你进入了新的领导角色,需要花点时间了解早期的项目为什么失败,并要计划避免犯同样的错误。对于软件开发,每位经理花时间处理每种可能要发生的错误是非常困难的,学习过去的成功和失败就是个成功的开始。
可以从过去你们小组承担的一个没有经过检查评估的项目着手,不要管其成功还是失败,实施项目后的回顾(有时称作事后调查分析)。你的目标不是判定责任,而是为了在将来项目中作得更好。借此,可以了解什么已经作得很好,什么应该作得更好。在当前每个项目的主要里程碑时,通过集体讨论或公平的组织者,用同样的方式,领导小组用头脑风暴的方式对其展开分析。
另外,要了解领悟已有的软件工业的非常好的准则。一个好的起点是Steve McConnell的Jolt Award获奖作品:快速开发(Rapid Development,Microsoft Press, 1996)的第三部分 ,叙述了27个非常好的准则。也要避免McConnell叙述的36个常见的软件开发错误。你的组员也许反对新的工作方式,但是你的角色是作为一名领导,要确保团队一致连续地使用非常好的可用的方法、过程和工具。积极促进组员之间的信息共享,这样局部单个最好的实践经验就能成为每个开发人员的工具箱的一部分。
成功项目管理的七块敲门砖
0
相关文章