又过了一个星期,事态有所改进,开发组的上司H也不知从哪里知道了这件事,写信给A说要把工作重心转移到我分配的事务上。然后我们上司D也对A做特别安排,让他全力帮助我。A态度马上大转变,说他会全力和我一起协作,我仗着我有令箭和A的态度转变,开始给他分配任务,每天和他进行2分钟的Scrum。同时也帮他开始建立开发环境,我花费了三天,才把他的开发环境整理清除,他被聘开始工作到现在,对自己的开发环境维护什么都没有做,一切都是乱七八糟,然后自己还不懂到我们的开发测试Wiki上找答案。让我可笑可气的是,他拿了一个很简单的问题问我如何处理。错误信息在他面前,读一读,再考虑一下能解决,A的处事态度怎么能这么不认真,还是能力不行?三天之后,一切都搞好了,我觉得,A也该开始阅读项目文档,并向我向开发者提出大量的问题。

事实还不是我想象的那样,时间到十月初的第二个星期,我在周一分配了任务让他阅读文档,我给了他一个星期。我认为,作为高级工程师,是知道自己该做什么,我的分配是很清晰的,阅读文档,准备写测试计划,有任何问题,尽管问我。周五中午B跑来跟我说,开发部上司H很不满A不准备在下一周进行程序发布测试(Release Verification Testing),我说我完全支持A的决定,心里还有高兴,A终于可以专心做正事了。我甚至对B说我觉得A需要一点时间阅读文档。如果他能专心做事有进展,我会帮他处理这些杂事的。下午,我马上发现我的想法是极大错误,A和开发者开会时净问一些没有一点技术背景的问题。我坐在那里看着开发者艰难地解答他提出的问题,还有他不着边际的回复,心里急啊!后我坐了35分钟,借口离开去找B反映这个发现。我容忍了A四个星期的不作为,他已经开始破坏我的全盘测试计划。

于是我和B又找了我们前任QA Lead ?? J。J是个德高望重的人,A之前的QA Lead,给了我们的建议是,直接找上司D。于是我和B起草了一封信说A一个星期下来没有实质性进展,反而有负进展。他的态度是我们不能容忍的。希望D能替我们安排一个好的解决方案,我们对事情发展到这个状态已经无能为力了。,我仔细想了一下,和D见面时不能透露无望的神情。读者如果看过《教父》,知道Don Corleone在电影一开始接见好莱坞大明星Johnny Fontane,Johnny希望Don帮他摆平一个电影角色的,当时他无望地对Don说,“Godfather, I don’t know what to do…”Don的反应是痛斥Johnny的无能,说“You can be like a Man!!...”我当时的感受可能和Johnny Fontane差不多。我在周日晚上仔细考虑了一下,知道自己不能象废物一样给上司D汇报这一情况。而且Ken Schwaber在他的书中提到,Scrum master必须能够对情况和发展作出合理判断,把各种可能发生的事件和后果进行总结归类,再同管理层进行沟通,帮助管理层理解种种处理的不同后果。我列举了几种处理方式:

1、调离A,在分配新的人员给我。后果是要重复一系列培训,开发环境设置等工作。

2、分配新的人员给我,让A和这个新人一起协作相互牵制,如果A合作不顺要管理。后果是我不需要太多介入培训新人,帮助设置开发环境的问题。而且我可以继续我的测试工作。但是要更多地管理。

3、继续给A一定的时间,我会更严格地监管A,后果是我要花费很多精力监视,甚至介入A的工作,我的测试进度将受影响。

星期一,我和D见面,D马上和我说了他的安排,让A在我手下再干三个星期,然后他能转到其他组去。我从D那里得知A上一星期把时间都花在测试数据收集的工作上了,还表示了他对自己现在工作的不适应,希望调离。我可以看得出D和我一样对事态非常失望。D要我和A商量好三个星期必须完成的任务,然后等A休假回来后在安排A的工作事宜。我带去的事情处理方案,和收集的汇报都没有用到。下午,我从D那里接到通知说A马上转到另一个组。事情这样解决了。

读者会问这件事和敏捷开发有何关系?我的感触是,敏捷开发是不能容忍开发进度中任何能够造成进度停滞的问题。敏捷开发必须像耍独孤九剑一样连贯自如,任何问题必须从问题一发生马上解决,同时不断改进,根据情况不断调整战术保证进度的高速进行。在这件事情上,上司D一开始犯的错误是高估了A的技能。我觉得他对A一直抱有一种没有理由的错误判断??A是个处理能力和技术能力强的专家,其实这和现实差得太远了。D只是个经理,他不做技术性的工作,是无法了解下属的真实情况。这是一个典型的例子,不懂技术也不懂下属能力的经理会误判下属的真实情况。或多或少的蛮横安排资源,不接受团队回馈也是D所犯的错误。敏捷开发的一个重要手段是团队自我管理,也是在阵地上的士兵比在指挥所的军官更了解战场战况,有时将在外,必须拥有“君命有所不受”的权利。上司D经常如此蛮横地瞎指挥,下属一般都以自己好的判断来尽力实施他的要求,但是做不到的时候也只有和他汇报,获得他的理解,我想这是很多技术人员经常碰到的问题。

我的错误是我怀疑了但是没有及时直接向D沟通我的担忧,但是算我及时沟通了,也不会给我多大帮助。因为当时的人事资源是那样的,我没有拒绝的余地。我所做对的,是对我所能够控制的局面进行了有效的监控;我利用了我所学的敏捷开发知识准确地判断了事态可能的发展;我对事态发展作出了一步步的盘算及后果的考虑,作出了先影响甚至控制A的战略,然后作出了如果A不合作,必须让更高管理层替我解决问题的战略。后是在管理控制的同时收集下属的不当所作所为,作为我的战略资源,同时发动我的同事,我的上司对我进行支持。整个事件从发生到解决,花费了一个多月时间,我用迅速比较妥帖的方式处理了这件事,而且没有耽误我自己的测试工作。第一次对项目和团队进行管理,我对自己的表现感到十分满意,近几年的敏捷开发实践毕竟是学有所成。但是我也意识到自己要好好学习更好人际沟通,在管理方面更加完善自己的能力。