“人是什么?我想一定是超越了纯粹的存在的某种东西。因为如果纯粹的存在是人的基本特征,那我们和牡蛎又有什么区别——Hsu”
涉及到人的问题,往往会比任何问题要复杂很多,以至于头疼。
相信绝大多数开发团队都会遇到同样的问题:总可能会面对在项目中期新加入的人员。他们可能对业务流程不是很了解,也有可能对软件结构和团队的规范需要熟悉,甚至可能编程技能还没有达到团队的要求。而几乎每个人都希望新人能够尽快的融入到团队之中,尽早的有所贡献。
但
是,这是一种损耗,很大的损耗。等待新手步入正轨是一个充满变数的过程。新手的理解可能有所误差以致完成的代码还需要原有成员进行修改;新手可能充满问
题,需要原有成员进行帮助,而这又消耗了已有的工作能力。甚至会仅仅因为新手的加入,使项目进行陷入暂时的混乱状态。这也就是那条著名的论断的原因之一:“向一个注定
延误了的项目添加人手,只会使得项目更加延期”……
尽管,我们一般不希望团队成员发生变化,但是我们永远无法逃避开发团队的成员变化问题。事实上不断调整的团队会有其他的好处,一个不平衡态也会使得团队可以拥有更多的动力因素。不过,不管怎么说,处理成员的变化永远是一个棘手的问题。
OK,
在每一个人刚刚进入一个团队的时候,他都是一个新人。献身说法是,在我刚刚进入团队的时候,是一个可怕的过程。我所拥有的是一份不完整的文档,注释很少的
代码,和一个不太究竟的目标。尽管师兄也竭尽所能的帮助我进步,但是事实是,我经常听到的最多的话是:“你再看看代码吧”……我的经验是,让一个新手在没
有instruction的情况下靠看代码来理解整个项目是一件恐怖的事情。事实证明,我这一批人在进入项目很久以后依旧没有摆脱新人的状态,我们所拥有
的是“照猫画虎”的无奈,而大部分的代码都没有达到那个我们不太清楚的目的。而最有意思的,同样的代码,不同人的阅读完全可能得出截然不同的想法。
阵
痛过后,我们迎来了一个短暂的春天,每个团队成员似乎好不容易找好了自己的位置。然后,我们面对的是又一次人员调动。我丢掉了三个成手,然后得到了三个新
人(至少对这个产品来说是新人)。我的想法是,如果重复我们进入项目的过程,那会是另一场恶梦。所以我决定尝试另一种方法,我曾经以为会有一定效果的方
法。将每一个新人和一个成手配成一个小组,共同完成任务。其实我原本的目的是让共同开发成为新手的学习过程。而这被证明只不过是另外一个错误。首先,新人
的提问很大程度降低了我们小组的开发速度,学习过程和开发过程纠缠在了一起,正常的工作经常被解释问题所打断;其次,发展到后来,会发现不耐烦的成手开始
宁愿自己承担更多的工作,而把一些容易实现的目标交给同组的新人;再后来,我惊讶的发现,成手和新人完全分割开来了,完全在做不同的部分,没有交流,没有
问题,没有学习。然后我不得不承担,新手代码依旧偏离目标的结果。很抱歉,我失去了对这一过程的控制。
而现在,我们这届的人逐渐要离开当
前的工作进行新的研究了。在走之前,我们必须做到的事情就是把这些工作完好的交接给新人。咳,没错又是新人。老师布置任务的时候强调,要整理好文档,
描述完整。事实上,我想单独靠完整的文档是否能够简化学习过程的。那会有帮助,但是依旧不够。我的感觉是,一个引导性的交待是必要的。我该怎么做,这会是
又一次的尝试。
我会提供尽量容易阅读的文档,但是我不会提供那种“标准”的成摞的文档。事实上,我个人觉得一个完全不懂的人,依靠阅读从
成山的文档和代码中理清头绪是对时间的浪费。我们有交流的条件,几次面对面的交流应该可以更快的帮助他们理好一条路径,然后在安排好起点、终点以及中转站
的旅途里前进,那目的性应该会强很多。当然,老人的帮助还是不能少的,经验是最难获得的东西,但是这种帮助应该更有序,Maybe会安排专人,或者安排专
门时间,总之尽量不打算让大家的工作时间频频被打断,而很难进入状态。
尽管在软件开发过程中,我们谈论更多的是技术、框架、平台一类的东西,或者客户市场和商业前景。但是做为开发的主体,人才是最重要的因素。事实上,当我们谈论项目管理,我们大概想谈的不是技术问题,我们工作中的主要问题是社会学问题。至少,是人在制造软件。
团队成员和机械系统中的零配件完全不同,永远不可能简单替换。我还很菜,我不指望这次的尝试能应对好变更的团队,但我希望这次能比前两次得到更好的结果。不断的尝试其实是很有趣的事情。而关于软件开发中人的问题,会和技术问题一样,不断引发我的思考和学习。
BTW. A worm welcome to my new teammates.



很深刻
Apollo —— 2006年02月21日 @9:11 am
感触、感触很多
h2 —— 2006年02月21日 @8:58 am
正准备开展一个新的项目,但是切缺乏这方面的经验,组建一个团队是当物之急的事情,团队的合作,新手的培养,一直是我担忧的问题,通过一年的学习,我也总结了一些小经验,当然目前还在引证中.
[color=Green]1.团队中必须要有一个权威的领导者,这个人必须能感染大家的工作情绪.
…
OnLing's BLOG —— 2006年02月21日 @11:48 pm
写的不错
jokname —— 2006年02月22日 @9:04 pm
我列举和讨论的Ajax-NET的框架和工具包括Atlas(Jan CTP), Anthem.NET, MagicAjax.NET , Ajax.NET Professional 和wwHoverPanel Control,这基本都是我关注的.NET平台的下的Ajax 的一些框架和实现。 基本上也都是我的这篇文章中列举的,另外一个原因是因为他们基本上都是开源的,这个非常重要,因为没有源代码,我们将不知道究竟发生了什么。另外我无意于使之成为像Daniel Zeiss作的这个比较报告
曾登高 —— 2006年02月27日 @5:47 pm