工作,任何一个人的失误,会造成前功尽弃。高质量的产品,来自于每个开发人员的前期努力、每个测试人员的兢兢业业。
为了增强团队能力,团队每个成员的技能应该构成一个互补的关系。对于软件团队,需要系统平台、数据库设计、算法、编程和流程管理等多方面的人才,才能形成具有很强团队能力的团队。
4.执行力
软件测试经理,有时如同足球教练,看到自己的策略没有得到贯彻执行,足球队长或场上球员没有控制好进攻的节奏,教练只能站在场外,望球兴叹、无可奈何。如何提高执行力呢?如同埃里克森所说的,要有优秀的队员,这是基础。然后,需要一系列的方法和先进的团队文化来保证、提高团队得执行力:团队领导要让每一位团队成员真正理解要执行的策略,需要一个人一个人地去询问并得到确认。团队领导要尊重每一位团队成员,尊重了成员,成员也就尊重领导,领导的意图才能得到不折不扣的贯彻。及时吸取教训,总结经验,不断改进操作方法和工具,在技术上提高执行力。有清楚的目标、有效的方法、公平的环境、不断的激励等等。
5.风险控制能力
足球的魅力,很大程度上来源于足球场上的变数。足球场的变数很多,这些变数对于教练、队长或球队,就是一种风险。要赢球,就是要控制好风险。软件团队的管理也如同足球比赛,渗透了风险管理的艺术。在软件开发中,要追求效率和生产力,同时要降低质量风险,更重要是在效率和质量上达到平衡。软件何一个人的失误,会控制球场的节奏,也是避免风险的一个好办法。对于软件开发一样,也需要控制开发的节奏。一个优秀的球队,针对不同的对手,要变换战术,变换节奏。在软件开发中,团队也要考虑产品发布不同的类型,一个全新的产品发布策略是不一样的、节奏要慢些。对于解决产品问题的补丁包的发布,则节奏一定要快,流程要简单、有效。
6.团队需要核心,而且只能是一个
团队需要有核心,法国赢巴西就说明了这一点,因为法国有像齐达内这样的团队领袖,形成团队的核心。如果存在多个核心,可能就会形成派系或引起内耗。巴西球星太多,有“大罗、小罗”,反而缺少配合、缺少进攻能力,可能不如只有一个“罗”,这样也许战术更简单,传球目标也清楚,反而会使团队更有战斗力。
对于一个团队的领导,确实要技高一筹、有很强的领导力,才能以技服人、以德服人。国内许多项目经理,没有很好的开发和测试经验,很难领导好一个项目,只能起着协调、监控作用,对于项目中出现技术路线上的重大问题、设计上的严重缺陷,丝毫没有办法,或不能发现。所以有些公司开始设置工程经理(Engineering Manager),让一些技术和管理都很强的人来领导项目的开发。
7.持之以恒的力量
持之以恒的力量也是巨大的。在德国和阿根廷的比赛中,德国战车永不放弃的精神和努力得到了回报,克劳泽的进球扳平了比分,虽然比赛场面被动,德国人还是将比赛拖入到加时赛、点球大战,最终获胜。软件团队也会经常遭遇困难、陷入困境,当团队遇到困难时,如果团队的骨干成员选择“离开”,团队就会一蹶不振,甚至连罚点球的机会都没有,就消声匿迹了。如果坚持下来,不懈努力,等待机会扭转局面,就可能大获全胜。如网易、搜狐、新浪等网站曾遭遇互联网的严寒,几乎要被Nasdaq摘牌,但由于他们坚持下来,如今其股价、市值获得了几十倍的增长。以至于今天,我还时常听到同事说,“如果当初买了网易股票,现在就发了”。
8.团队的目标管理
团队要有一个清晰的目标,而且不同的阶段有不同的目标,这恰恰是最为关键的。在世界杯上,许多优秀的球队,包括德国队,在小组上不去想后期的淘汰赛,而只是设定小组赛的目标——如何在小组赛以第一名出现,一场一场地打,把小组赛每场打好。在淘汰赛,也是针对当前对手制定策略,赛前充分做好准备,一步步实现目标,胜券在握。还是德国队对阿根廷那场比赛,在守门员莱曼准备走向球门前,德国队的工作人员塞给他一张小纸条。纸条上写了什么?就是两年来阿根廷所有队员罚点球的习惯。所以,莱曼才能一次又一次判断对了阿根廷球员罚点球的方向,有出色的表现。
在软件开发中,设定总体目标,然后再进行分解,比如将目标分解到每个团队。更好的办法是将目标分解到每个里程碑,分阶段逐步实现。要实现目标,仅有“分解”是不够的,必须得到上、下层的支持,整个团队共享目标,心往一处想、劲往一处使,共同努力,最终保证目标的实现。