有效访谈的技巧

August 30th, 2010

你是一个外来者,你想了解一个完全陌生的团队。最快的方式就是找到他们,和他们谈话,让他们告诉你。为了让谈话更有效,你会需要一些小技巧。

  • 解除他们的戒心,尽量。戒心无非来自一个很简单的原因:如果说实话不会有好处、甚至会有坏处,那么人们就不会说实话。因此你要先告诉他们,你需要快速了解信息,不是为了任何考核,只是为了帮助他们改进──告诉他们,你会在未来几个月里跟他们一起改进。
  • 话题明确。每场访谈开始之前,把你要谈的话题写在白板上,以及具体要了解哪些信息,以及计划用多长时间来谈。让进入房间的人在第一时间知道你要他干些什么,这样他就不会更紧张。并且在没话说的时候可以很快找回话题。
  • 微笑。有很多人说过这事,可是真的有很多人没有做到。微笑,活泼一点,拿自己开个玩笑(例如嘲笑自己刚在白板上写下的字)。在访谈中你会必须制造紧张气氛(例如你会有意指出两个人对同一件事的不同描述),保持微笑,把它变成一件好玩的、和所有“人”对立的“事”。不要让任何一个受访者感到寂寞或者紧张,因为这时候你还不知道究竟谁才是值得信赖的人。
  • 记下别人说的话。更多的人说过这事,可是我们真的做得都不好。不要一边跟人对话一边在记事本上写字,更不要用电脑做记录。这些行为会让你获得权威感,会让受访者感到不安──“他有代表权威的记事本/电脑,而我仿佛裸体”──甚至为了抵抗这种不安也拿出记事本来写字。但这些行为不会帮你得到更多有效的信息。在白板上做记录。把他们说的事情画下来。这会让受访者感到,你们在一起画一个作品。他们会告诉你,什么地方画得不对,还缺少了什么,这是你的记事本上永远不会出现的东西。
  • 问他们有什么想告诉你的。当你问完了所有的问题,问他们:还有什么想告诉你的,有什么问题,有什么痛点。你在这里的原因是你要帮助这些人。这些人最关心的事不一定是你最高优先级的事,但一定不是你应该忽视的事。
  • 最后,不要相信访谈。用眼睛去看。受访者一定会告诉你假话。有这样的觉悟之后,访谈才会真正是有效的。

(性能优化…我这一辈子都在做性能优化…)

1. 线程。不要啊不要自己做锁…并行计算首先要让被并行的任务尽量独立,然后只要把任务放进Thread扔出去,在主线程等待子线程完成任务就行了。
var thread = new Thread(worker.Execute);
thread.Start();
...
thread.Join();

2. 还是线程。然则,.NET的线程是昂贵的,据说一个线程启动需要100毫秒左右,还需要1M左右内存。所以,不能肆无忌惮地开线程…要用 BackgroundWorker …话说,为什么要设计出这种重量级的线程呢…

3. 容器。List不能赋值给IList,IList不能赋值给ICollection…设计这种傻逼容器框架的人真的会写程序吗?

4. 还是容器。List不是线程安全的,多个线程一边写一边读就会告诉你 InvalidOperation 因为内容被修改了;多个线程一起写就会告诉你 ArgumentError 因为某个线程可能以为容器空间够用而不去extend它直接往里放东西结果空间被另一个线程用掉了。好吧…可是,据说ArrayList是线程安全的…但多个线程一起写也会ArgumentError…

5. 日志。Log4Net很慢 …真的非常慢…所以只要把大量的log关掉,于是性能就好了…其实最大的优化是这个…

总之,感想是…真的有人用.NET这种东西做什么严肃的应用程序吗?这些东西…设计得也未免太弱智了吧…呃,想起来了,还有一个:

6. 还是日志。胡凯 说,做个小工具吧,统计一下日志里的信息…嗯,我觉得,那个工具应该叫 grep …一个连grep都没有的操作系统啊…

把事情做完

August 11th, 2010

一个小朋友 结对。拿在手上的是一张叫做“高级搜索”的故事。小朋友说,功能已经做好了,今天的目标是给它加上 WatiN 的功能测试。

于是打开页面,搜索一把,呃…高级搜索的四个条件输入框,有两个填错了东西。小朋友不好意思地说,后台的逻辑都做好了,HTML还差一点点。因为昨天晚上要聚餐,所以就留下了。

改好HTML,再试一试,呃…正好是刚才没弄好的两个条件输入框,如果组合起来使用就会出错,啥也搜不出来了。仔细往里面一看,原来这两个条件的组合是比较奇妙滴…需要修改整个搜索算法,还需要自己实现一个“集合的交集”(stupid C#...)总而言之,用了大半天时间,才把“高级搜索”真正做完…咻~可以开始写测试了。

记得某人曾经告诉我,H司某产品的代码,有40%是在大家都以为“差不多做完了”的连调测试阶段写进去的。(给小朋友讲这个故事,似乎小朋友不是很有感觉,sigh~~)

所以,做一件事就做完,做到可以给客户验收的程度,然后再开始下一件事。自以为90%完成的东西,通常还需要再花一倍时间才能真正做完。(昨天 胡凯 再次验证了这一理论的正确性。)

在连续举办四届敏捷中国大会以后,ThoughtWorks将以“敏捷十年”为主题在今年10月份举办第五届敏捷中国大会,目前国际知名讲师如敏捷宣言创始人Martin Fowler和James Grenning、精益方法专家Mary Poppendieck和Tom Poppendieck,均确认参会并演讲。本次大会的亮点之一是组委会将采取开放、透明的方式,面向全球的敏捷实践者征集话题和招募讲师;大会的报名工作也已启动,现在报名享有多种优惠。

如果从2001年2月份敏捷宣言面世那天开始计算,敏捷已经走过了近10个年头。在这10年的发展过程中,敏捷的分支和外延不断扩大,比如Scrum、Crystal、XP精益,包括仅今年新出现的看板等均快速发展,在不同的行业和领域帮助企业提高生产效率。虽然敏捷在国内的实施并不如国外那么普及和先进,但是像华为、中兴等大型电信企业,如上海贝尔、赛门铁克等软件企业也已经开始了自己的实践。这次第五届敏捷中国大会的主题即是“敏捷十年”,希望通过回顾过去十年间软件开发行业发生的变化,敏捷的诞生和发展,“全面呈现敏捷方法在中国的推广历程和实施经验”。

如前所述,今年敏捷中国2010的亮点之一即是从“业务敏捷、实践与新技术、领导力与组织和敏捷工具”等方面,面向全球公开招募讲师和征集话题

只要您有过敏捷(开发)实践,或者深入思考过敏捷,或者持续关注过,或者有其他独到观点,都可以报名成为本届敏捷中国大会的讲师。此外,敏捷爱好者还可以通过提交自己感兴趣的话题参与到本届敏捷大会中。主办方将通过大会组委会,统一审核话题及备选讲师,通过公开、公正、透明的组织方式,鼓励全球敏捷爱好者积极参与,共同创建敏捷实践经验分享平台。近年来,国内越来越多的公司已不再仅仅是关注,而是开始有了更多的创新敏捷实践,在本次大会,我们将遴选超过20位讲师分享他们在应用敏捷实践过程中的经验和教训,通过实际案例与参会人员交流在各种典型的真实软件组织和项目中采用敏捷方法带来的实际效果。