※冯天骁 北京大学信息学院计算机系
团队合作在一个企业的作用是至关重要的,一个好的团队的总体力量,超过每一个个体力量的总和。
在软件开发的过程中,团队开发是常见的操作方式。开发软件是一项相当复杂和繁琐的过程,需要有非常精密的思维才可以完成。我觉得之所以要在这个过程中提倡团队开发,主要原因有三。
第一,软件开发的过程复杂,而团队方式可以使其简单许多,遇到问题的时候可以大家一起想。特别是在一个较大型的软件工程项目中,一个人的力量和智慧显然是不够的。第二,团队操作在很大程度上可以实现优势的互补。例如在做软件的时候,一方面需要实现强大的功能,另一方面需要有良好美观的界面,这两个方面就需要两个分别擅长其中一项的人来进行合作。第三,团队合作在很大程度上培养了人与人之间的沟通和理解能力。有些人技术相当好,但是却不能很好地与人沟通,团队中,只有通过频繁地相互交流,个别人在研发过程中遇到的困难才能最快、最有效地得到解决。
但是,团队合作真的有那么容易实现吗?
几乎每一个管理者都坚信团队合作的意义,但真正实现团队合作的却为数不多。如果管理者经验欠缺,或者自身素质不够,那么往往这个企业的各部门之间会造出一种勾心斗角,或者是各自为政的环境,尽管他们口头上还是不断兜售自己的团队合作信仰。这样的情况是非常可怕的。有时候,一种团队合作之外的选择或许还会比这种虚假的团队合作更有效率一些。这种选择便是“工作团组”,即一个个独立工作,很少指望协同作业的管理者团组。“工作团组”的优势在于成员清楚地知道自己能够和不能够从彼此那里得到什么,从而专心实现自己的目标,避免团队合作中所无法闪躲的干扰所带来的成本。
当然,如果真正地能够实现团队合作,那么它会带来无可比拟的力量。然而实现这样的团队合作需要付出的精力和智慧也是常人所难以想到的。
首先,建立信任,而且要建立一种以人性脆弱为基础的信任。一个有凝聚力的、高效的团体成员必须学会自如、迅速、心平气和地承认自己的错误、缺点并且求助,还要乐于认可别人的长处,承认对方的长处超过了自己。如果团队成员之间彼此经常说出“我办砸了”、“我错了”、“我需要帮助”、“你在这方面比我强”这样的话,就明显地建立了这种信任。否则,如果领导人不允许其他人在任何方面超过他,那么后果就是团队成员彼此之间都不会敞开心扉来坦率承认自己的弱点和错误,会逐渐走向衰落。
其次要有良性的冲突,团队合作中的成员往往最怕起冲突。很多管理者也喜欢采取各种措施避免团队中的冲突。因为他们担心丧失对团队的控制,以及一些人的自尊在冲突过程中可能受到的伤害。这种通过避免破坏性的意见分歧来巩固自己的团队的方法考虑并不周全,因为这种做法很可能扼杀建设性的冲突,将需要解决的重大问题掩盖起来。但是随着时间的推移,这种未解决的问题就会变得越来越棘手。
一个好的管理者与他的团队要做的事情,是要学会识别和避免这种“虚假和谐”,甚至适当引导和鼓励一些建设性的冲突。这样做的一个好处就是领导可以更全面地作出充分集中集体智慧的决策。不能就不同意见而争论、交换未经过滤的坦率意见的团队,他们所作出的决策往往是欠考虑的。
最后需要互相监督,彼此负责。一个卓越的团队不需要领导提醒团队成员要竭尽全力地工作,成员自己就很清楚需要做什么。他们会彼此互相提醒注意那些无助于成功的行为和活动,这样的团队文化是牢不可破的。而不够优秀的团队则不然,常有向领导打小报告的人,甚至有在背后说人闲话的人,这种行为会明显破坏团队的士气。
在大多数情况下,团队合作并非不值得经历这么多的艰辛,而团队合作带来的回报并不常见,却又代价高昂。如果一个领导没有勇气强迫团队成员去实现团队合作所必需的这几个条件,反而不如远离这样的概念,即一种不要团队的勇气。
※樊志强 北京大学信息学院计算机系
刘建国老师的讲座重点讲了互联网软件开发中的团队合作和管理,同时也介绍了互联网软件的特点。我对刘老师提到的互联网软件的特点印象很深刻,因为之前对软件的印象都停留在单机,刘老师让我的视野又拓宽了。
互联网软件一个重要的理念就是SAAS,即Soft As A Service,意思是软件即服务。刘老师强调,互联网软件的依托物只是网页,不像传统的软件要出售许可购买之后才能使用,它主要是通过免费向使用者提供服务而从第三方获得必要的资金维持运营甚至盈利,所谓的第三方就是广告商或者其他形式的合作者。这种形式是传统软件所不具有的,可以说是个全新的领域。使用者不必付出任何代价即可获得优质的服务,这一点无疑使得这类软件具有极大的吸引力,可以赢得很大一部分消费群体,只要经营得好,这类软件必定会有强大的生命力和巨大的成长潜力,这从百度和Google的例子可以得到验证。同时我查阅资料,发现SAAS的理念已经渗透到单机软件领域,有些面向企业的大中型软件为了减少中小型企业的负担,提出使用租用的方法而不是通过购买获得使用权。我觉得这样对于拓展软件的市场,培养消费群体有很重要的意义,是一种很明智的选择。
同时,刘老师指出互联网软件的开发过程是个小步快跑的过程。只要有一个有特色,有市场的应用可以用互联网软件的形式表现出来,就可以实现并投入市场中,因为互联网软件并不要求功能的全面和完善,对Bug的容忍程度比单机软件要大很多。重点是核心内容是否实现得足够好,然后可以拓展外围功能。这和很多传统单机软件还是很不同的,因为单机软件不论是下载新版本还是下载补丁都是件很麻烦的事情,而互联网软件却可以进行内部优化而对外屏蔽掉一切细节,只要网址和用户界面保持稳定就没有任何的问题了,这是很大的一个优势。比如金山词霸这款翻译软件,单机的词典是永远跟不上日新月异的新词汇速度的,如果每月更新无疑是件麻烦的事情,而金山在线的互联网在线翻译软件就可以避开这个缺点,因为词库在服务器上,只要给查询的用户返回结果就可以了,而且速度和单机软件差不多。也就是说不管使用者是不是使用他自己的电脑,只要能联网,他就能使用这项功能。我觉得这一点对于一些安装麻烦的单机软件具有天生的优势,把握好了这一点,对于以后开发互联网软件或者注意避免单机软件的缺点都是很有意义的。
※胡雅杰 北京大学信息学院计算机系
IT开发已经不是靠一个两个英雄能够胜任完成的工作了,需要有不同强项的人组成团队配合完成。不同规模的开发任务需要不同规模的团队,但都需要有良好的组织和管理。所以一项任务能否顺利完成,在很大程度上受团队管理的影响。然而在学校的专业培养中,没有一门课程针对这个领域的管理特点,介绍有关的案例,培养学生相关的技能。因此,刘建国老师讲解的有关IT团队组织和管理的课程弥补了我们这方面的能力,让我们受益颇丰。
刘老师从自己的经历出发,讲述了IT开发团队的组织、管理、发展等各方面的内容。尤其得益于刘老师的丰富阅历,完整的经历开发团队从无到有,从小到大的发展过程,各个阶段中遇到的种种问题和应对解决办法都很典型。经过多年的积累,刘老师对团队的组织有着独到的见解,从选人、培养、引导、锻炼、发展等各个方面介绍了他的想法。另外,还介绍了团队运作发展中需要面对的一些问题,例如士气的维持和激励,末位淘汰的处理,应急事件的反应等等,生动地描绘了管理的框架和一些细节,揭开了这个领域管理工作的神秘面纱。
刘老师讲的内容主要是站在管理者的角度上的,我们不仅了解到一些组织管理IT开发团队所需要考虑的问题和解决办法,还可以间接得到作为一个求职者所需要具备的条件,这也指导了我们在学习阶段需要培养的能力。作为IT工作者,本职的专业技能当然很重要,这也是在学习阶段主要培养的硬技术、硬能力,但要成为一名优秀的具有突出竞争力IT毕业生,只具备这些能力是不够的。如果应聘者还具有许多软能力软素质,例如诚实、责任感、团队精神、交流能力等,将更具有竞争力。
作为在校学习的研究生,我们已经具备了一定的基础,同时课余可自由支配的时间也多一些,如何组建自己的小团队,一起完成一些有趣的工作,这是多数同学会遇到的问题。就此,在这个宝贵的交流机会上,请教了刘老师。刘老师一语中的,团队尤其是同学一起做事情,最重要是大家有共同的目标,对此事都有兴趣,在此基础上再考虑如何应对一些意外的情况,如个人时间安排不开,技术难题,维持团队士气等等问题。当然在拉拢同学的时候也需要很好的沟通能力,要用简单而又充满热情的语言,使同学尽快清楚要做的事情是什么内容,有什么趣味,激发出同学参与的激情。
听过刘老师的课,了解到IT开发团队的特点,思考了如何创建团队,如何选择需要的人才,组织管理团队等问题,由此也了解到了社会需要什么样的人,我们要如何做事情,才能培养自己的能力,成为社会需要的人才。我深刻感受到组织管理一个团队是件多么复杂的工作,可能比做工程开发还要有挑战。如果以后准备向技术管理方向发展,不仅要利用课余时间学习一些管理学基础知识,还要有意留心学习一些实际中的管理技巧,积累经验,才能在需要的时候把握好一个团队,发挥更多的战斗力。