• 2004-11-28

    单枪匹马

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/518600.html

    我是一个可以单枪匹马解决很多问题的程序员,事实上,很多时候我确实是在单枪匹马的工作。

    历经中国十几年的“标准”教育,我学会了独立解决问题。在学校里,很多时候协作行为都会被视为不正当的行径而遭到批判,比如考试时候的协作会被称为作弊。掌握了独立思考能力的同时,协作能力一点点的流失着。协作能力的流失往往伴随有自私的产生,我历经千辛万苦解决的问题为什么要告诉你,这可是我值得炫耀的资本啊!个体对面的集体也时常被人忽略,“鹤立鸡群”的感觉可远胜于“共同富裕”。

    软件开发的历史几乎就是一部个人英雄主义的连续剧,从Bill Gates到Linus Torvalds,哪个不是可以凭借一己之力就让世界改变的人物。试问,我们这些作为后来者的程序员,哪位心中没有几个用来崇拜的高手,也许差别就是水平越高崇拜的越少罢了。和那些成为追星族的懵懂少年一样,对偶像崇拜带来的常常是对偶像的模仿,有意或无意。对个人英雄的崇拜带来往往是希望自己拥有独立创造一个世界的能力。

    校园的氛围鼓励这种“独立”,而真实世界的软件开发更多的需要“协作”,毕竟我们面对的问题已经不是一个人可以在最后期限之前能够解决的。虽然我处在一个需要协作的环境之中,但由于工作分配的原因,我很少与人协同开发,因此,大多数时间里,我依然处于独立工作的状态之中。也正是由于独立工作,锻炼了我解决问题的能力,随着对我解决问题能力的放心,负责人更多让我负责一个单独模块的开发,于是我也就越来越“独”。

    近来和几个朋友合作开发一个东西,考虑这几个朋友的实际水平和对目标的了解程度,在前期,需要我带领他们一起来做。和平时一样,我一开始就进入到解决各种疑难杂症的阶段,之后,我会把自己的心得告诉他们。

    一天,我问其中的一个朋友,对我讲的东西有什么感觉。出乎我意料的是,他给我的答案并不是关于我所讲解的内容:“我觉得你太累了”。这倒是引起了我的兴趣。他认为,既然是大家合作开发,就应该大家共同来承担责任,现在的情况是我一个抗起了所有担子,而其他人则处于一种比较闲的状态,对于一支团队来说,这绝对是一种不合理的。在目前的状态中,我实际上担当的是一个负责人的角色,应该懂得把工作分配给别人,而不是一力承担,这样会造成累死一个、闲死一群的悲惨结果。

    他的话对我打开了一扇门,让我进入到一个完全不同的世界。之前,我从未想过这样的问题。我从未真正承担过负责人,从未考虑过把工作分配给别人,在我原来的视野里,我所遇到的问题都需要我自己解决。经他点拨,我豁然开朗。固然,我相信我可以解决自己遇到的绝大多数问题,但并非所有这些一定要自己来做。

    在实际的工作中,我也确实感觉到自己的时间有些不够用,既要设计,又要编码,还要考虑下一步的方向。

    从另一方面来看,这种做法也是对同伴的不信任,虽然可能是无意识的。在一支团队中,彼此的信任才能让大家来共同承担责任。对于现在的开发,同伴目前的能力并不足以很好的完成,但如果不给他们足够的机会,他们永远不能达到要求,差距只会越来越大。个人能力也是在开发过程中逐渐提高的。

    最终,我决定接纳这个朋友的建议,把自己承担的一部分工作完全交给他们负责,而我则继续向前走,为下一步工作做一些技术上的探索。软件开发并不是一个人的工作,独立解决问题并不等于一切由一个人来做,一个人的小聪明无法与集体智慧媲美。

    分享到:
    引用地址:

    评论

  • 写的好呀!
    回复hhee说:
    少见了,怎么最近不见你更新自己的blog。
    2004-12-08 18:03:15
  • PM担当架构师的任务,只需负责选用技术和架构工作。其他细节交给别人去做。



    但是人少的小项目,还是需要几个技术高手领头的,又当PM又当Dev Leader。

    你是高手,应该做到这些提纲挈领的工作,但不必太细节到编码。

    英雄一般也不会做管理,顶多做Dev Leader,只是中国的技术高手都被提拔为不适合的管理而已。



    针对不同的下属

    采用不同的方法对待。沟通是最重要的。
    回复b说:
    高手不敢说。即便人少,也依然需要进行分工,这样才能人尽其用。
    2004-11-29 13:11:11