一个人员非常稳定的软件研发团队,在绝大多数情况下,对企业来讲有很大好处。但有时也会出现问题:当从事一个领域内的研发时间较长,他们会安于现状,缺乏学习的欲望。他们的专业知识和能力也会受限于当前所从事的工作,缺乏进一步提高和拓展的动力。我原来所带团队就曾处于这样的境地。后来,我在团队内引入了Tech Talk活动,以此希望能引发团队成员学习欲望和加大他们向前的动力。
Tech Talk这个名词最早是2002年从我当年的老板(一个美国硅谷的“海龟”)那里听到的。04年的时候,在51cmm.com上看到一篇文章《构建高效软件开发流程和团队》(作者:David Yan),里面有一小段讲述了作者亲历的Tech Talk活动的由来、好处和做法。我转贴在下面:
计算机知识更新速度非常快,经常有一些新的术语、新的名词、新的思想、新的技术所产生,如过离开此行业几个月后重新回来就会对这些新的事物不解,而我们平时为了自己的项目埋头苦干可能忘了周围的世界发生了什么。Tech Talk就提供了一个让我们了解新知识和最新发展趋势的机会,让大家把知识共享,共同提高。Tech Talk一般会在项目不是太忙碌的时候进行,主持人会提前一个星期指定某个人去准备一下Tech Talk,一般此人可能对某方面比较感兴趣,然后他会花一些时间去了解这方面的情况,写成一个文档如PowerPoint并上传到局域网内,同时通知大家可以先去浏览。Tech Talk的内容非常广泛,不一定同我们的项目紧密相关,任何新的思想、新的知识(当然一般是限在计算机领域内)都可作为Tech Talk的内容,而在主讲人讲完之后还有一段时间被大家提问,共同对这个话题进行讨论,答疑解惑。当然Tech Talk也可同我们的项目相关,如研究一下竞争对手的产品技术,本公司产品的架构等。研究本公司的产品架构可以使大家对本公司的产品有一个全局的概念,从整体上来看自己的产品,顺便整理一下产品的架构使之更加清晰有条理。平时大家都只注重于自己负责的其中的一小块,在Tech Talk中可以跳出自己的小框框来了解全局,同时这也是新员工了解公司核心技术整体框架的好机会。每个模块的负责人需要阐述此模块的方方面面,让大家来了解并回答问题。
在我所在公司的美国那边的研发团队,也有一个类似的活动,叫做Brown-Bag,意思和Tech Talk差不多,我曾参加过几次(例如在微软推出Windows Vista之前,有人介绍Windows Vista的酷炫新功能),觉得不错。所以我一直希望有机会在我的团队中也开展这个活动。直到09年4月,我决定付诸实施。
1. 目标
首先,我明确了这个活动的4个目标:
- 扩大团队成员的视野。
大家每天几乎都在用相同的语言、平台、技术完成自己的本职工作,缺少横向的知识拓展的机会,通过这个活动,使大家能了解到更多的新思想、新技术。
- 提高团队成员的技能。
团队中每个成员都有自己不擅长的技术,或者有些技术了解得并不深入。通过活动可以完善其技术本领的结构,并增加其纵向的技术深度。
- 增强团队成员间的交流。
有些工程师技术能力出众,但不太善于表达,在团队工作环境中,交流成为其软肋。活动中的演讲和讨论,无疑会锻炼他们的表达能力和交流能力。
- 提供一个平台,让团队成员可以完成他们制定的年度技术目标。
由于每个员工每年3月份都会根据HR的要求制定一年的目标(我们称为:Goals and Objectives)。里面会有1到2项技术上的目标,大家一般会根据自己的情况设定一些领域内或领域外学习新技术的目标。活动实际上搭建了一个平台,来检验他们是否实现了他们设定的目标。
2. 问卷调查
在开展活动之前,我在公司的SharePoint上做了一个不记名的问卷调查,以了解团队成员对这项活动的态度和想法。共22人参与调查,占整个团队的92%。我的问题包括:
- 你是否愿意在Tech Talk活动中演讲?
有73%的人选“是”,18%的人选“否”,9%的人选“很难讲”。
- 你是否愿意在Tech Talk活动中听别人的演讲?
有100%的人选“是”。
- 你希望在Tech Talk活动中了解和学习哪方面的技术?
我根据我们公司的情况(主要方向是医疗影像软件产品),列了以下一些选项:
C# and .Net
图形学和图像处理
临床应用和DICOM
Web和数据库
单元测试和测试自动化
其他测试技术
86%的人选择了3项及以上。
- 你希望Tech Talk活动的频率是多少?
50%的人选“两周一次”,32%的人选“每月一次”,9%的人选“每周一次”,9%的人选“不定期”。
- 你希望Tech Talk活动在上午还是下午举行?
91%的人选“下午”,9%的人选“上午”。
可见大家的态度还是非常积极的。
3. 确定主题
由于每个员工每年3月份都会根据HR的要求制定一年的目标。里面会有1到2项技术上的目标,大家一般会根据自己的情况设定一些领域内或领域外学习新技术的目标。根据他们的目标,我跟每个人讨论,初步设定了他们在Tech Talk活动中要讨论的主题。举几个例子:
- ALI - A DICOM 3rd Party Library
选择这个主题的工程师,参与了一个医学图像查看器(Study Viewer)的小项目,需要使用了ALI这个第三方的DICOM解析库,但团队以前从没有人接触过ALI,所以他便可以学习研究它,然后基于他的研究和使用成果,将体会和经验分享给团队中的其他人。
- 从ITK开始 - Insight Segmentation and Registration Toolkit
选择这个主题的工程师,加入了美国团队的临床应用研究组,他负责图像(CT、MR等)的预处理的研究,即根据图像来判断所照人体的部位,以便在后续处理过程中,采用正确的临床应用策略。这是个研究性的课题,跟团队当时所开发的项目关系不是很大,但通过他的介绍,可以使大家了解一些前沿的研究,扩展大家的视野。
- Localization
选择这个主题的工程师不是一个工作多年的资深工程师,但他仍有可以供分享的东西。在我们公司,他参与了前面说的那个Study Viewer项目的Localization、Internationalization和Globalization的工作,所以他要学习这方面的知识和技术。对于其他不了解这些内容的人,这个主题也会很吸引他们。
- EPI(Enterprise Products Integration)介绍
选择这个主题的工程师,正从事EPI项目的开发,此项目集成了公司Web-based和Workstation-based两条产品线以及后端(Backend)的处理系统,使其成为一体的企业化的解决方案。所以这是一个涉及全局的“枢纽”项目,参与此项目的人对公司内各产品线和项目都有所了解。所以通过这个演讲,可以使大家对于公司产品有全局性的了解,而不是只局限在自己所从事的项目中。
从这些例子中可是看出,无论主题大还是小,无论是否跟当前所研发的项目有关,无论是工程性的,还是研究性的,无论是资深的工程师,还是普通的工程师来演讲,无论涉及技术细节,还是涉及全局性的框架,只要可以引起大家的兴趣,都可以拿来与大家分享和讨论。
4. 时间表
根据问卷调查,每两周一次,是一个比较适当的频率。我们把周五下午定为Tech Talk的时间。一般每次2个小时。每次活动前2到3天,我会通过Outlook发送一个Meeting Request给团队所有成员,以确定主题和约定时间。
5. 步骤
作为一名演讲者,他首先要对演讲的主题和内容做研究或学习,然后准备一些资料,制作一个PowerPoint Presentation或者用于演示的Demo project。他们会利用一部分工作时间,加上一些业余时间来做这些事情。
活动开始时,演讲者先讲述他所要与大家分享或讨论的主题,之后会以提问回答的形式进行讨论。
当演讲和讨论结束后,在现场每一个听众要填写一份反馈调查表,里面包括以下9个问题:
1. 你的身份是:
a) 开发人员 b) 测试人员 c) 管理者 d) 其他人员
2. 对于今天的演讲,你总体感觉如何?
a) 精彩吸引人的 b) 有意思的 c) 没意思的 d)枯燥无味的
3. 今天演讲的内容,有多少你完全理解了?
a) 100% b) 90% c) 75% d) 50%及以下 e) 0%
4. 通过演讲,你感觉演讲者自己是否真正全部理解他(她)所讲的内容?
a) 是 b) 否 c) 说不好
5. 今天的演讲你是否听到你所期望的内容?
a) 是 b) 否 c) 一半一半
6. 你认为演讲者的演讲技巧和表达能力如何?
a) 好 b) 中 c) 差
7. 今天的演讲对你是否有帮助?
a) 是 b) 否 c) 说不好
8. 请你为演讲者评分(从0到10,0表示一无是处,10表示完美至极)。( )分
9. 如果你有任何意见、建议、感言,请写在下面。
听众要为演讲者评分,从我们的经验看,一般评分都在8到9分之间,此分数的绝对值意义并不是太大,但是从相对的分数高低,还是能体现出演讲者以及演讲的水平高低。
在活动结束后,我还要向演讲者发送一封反馈统计的邮件。包括前7个问题的百分比统计,平均分,以及大家的意见、建议和感言。演讲者会从大家的反馈中,了解哪些地方做的好,哪些还需要改进。
活动促使每个人都要去学习新的东西,这对于在团队中形成一种学习的气氛很有帮助。开始的时候活动都是以Developer作为演讲者,后来Tester也开始他们的演讲。他们有一个介绍人体心血管系统的Tech Talk非常吸引我。因为我虽然对于软件研发有经验,但对于医学领域内的东西还是知之甚少。活动由一名刚刚毕业一年的普通测试工程师来演讲,她甚至拿来了心脏的模型,由于没有地方座了,我是站着听完她的讲解。
不同于培训这种方式,Tech Talk更有针对性、更自由,更灵活,当然也不用花钱。
所以,当你的团队出现懒于学习的苗头的时候,你可以试着搞一些Tech Talk活动来推你的团队一把。
最后,贴张Tech Talk活动的照片