就算我及时沟通了也不会给我多大帮助,因为当时的人事资源就是那样的没有拒绝的余地。所做对的对我所能够控制的局面进行了有效的监控;利用了所学的敏捷开发知识准确地判断了事态可能的发展;对事态发展作出了一步步的盘算及后果的考虑,错误就是怀疑了但是没有及时直接向D沟通我担忧。作出了先影响甚至控制A战略,然后作出了如果A不合作,必需让更高管理层替我解决问题的战略。最后是管理控制的同时收集下属的不当所作所为,作为我战略资源,同时发动我同事,上司对我进行支持。整个事件从发生到解决,花费了一个多月时间,用最迅速比较妥帖的方式处置了这件事,而且没有耽误我自己的测试工作。第一次对项目和团队进行管理,对自己的表示感到十分满意,近几年的敏捷开发实践终究是学有所成。但是也意识到自己要好好学习更好人际沟通,管理方面更加完善自己的能力。
管理经验是缺乏的最近一次我对下属的工作处理的介入让我学到不少我以前没有经历过的工作经验,必需供认。此和大家分享一下我认识和感悟。这件事情的处置,一般人可能认为这无异于办公室政治风云,对我来说这是一次很好的管理经历。让我认识到如何使用敏捷教条对管理方面的问题进行分析,如何采取合适战略来解决此类问题。被分派到一个新成立的小组做QA Lead开始了管理“事业”当时只有我一人协助三个开发者。随后,数月前。增加到协助4.5个开发人员,外加两个客户端开发者。很快我就发现自己被很多事情所包围,无法在短期内完成一下子堆积起来的工作。也就是这时,和我上司D提议增加人手。当时是2007年6月,正好没有人手,就依照自己知道的敏捷互动知识,对自己的工作进行布置,一件件地处理。得心应手的阶段时,终于有人手可以分配过来时(2007年9月中)得知一个我觉得能力很差的高级工程师A会被转移到组里帮我第一个反应是能不能分配其他人手到组里。上司D说,先让这个人过来试试。就没有多说什么,那个时候我就已经预见了今天我不得不作出的处置。
疑人不用”角度发生的当时我组聘用了A面试时看好这个人,第一个反应是从兵法“用人不疑。但是雇用之后我和他一些互动中发现此人除了知道如何使用VisualStudio.NET2005其他什么都不会;而且他还不愿意学这些能够协助他适应新环境的东西。后来因为A以高级工程师,开始成为我当时所在组的TeamLead作为TeamLead那一段时间,整组发现他无法对管理层作出的无礼要求进行抵挡,甚至谈判,只知道如何一味地向管理层妥协。然后自己不身先士卒,而是把一些重要的东西摊派给属下。然后自己就开始进行一些无关紧要的流程改进工作。看在眼里,记在心里,因为我很早就被调到现在岗位,所以也没有说些什么。知道,这样的人不能重用,对他没有信任感。
感觉可以让他转移到组里开始前期准备工作。当时的感觉是要尊重我上司D布置,就这样到九月底。尽力和他一起携手合作。马上就碰到一个问题,无意从自己的项目中摆脱出来,托词是需要一点时间完成我手上的事务,这样可以很好的交接给其他人。就给了一个星期,同时也和信任的TeamLeadB进行了沟通。B原来是个开发者,9月份转来做QA 因为他经验丰富,而且A组里不做正事,其他组员意见很大,所以A转到组后,就丢掉了TeamLead头衔。和B沟通是A应该把工作重心放到新的工作上去,而不是找借口推托自己应该承当的责任。B向A转达了这样的意向,但是一时间没起什么作用。A以领导的名义向我上司D回信,随后。列出我这组人在08年应尽的义务。一看,心里就腾起一股火气,自己承当的任务里,没有一项是和他新工作相关的而且每个都要花费不少时间操作。这不是明摆着要消极处理他新工作吗?很不客气地回信,并抄送一封给我上司D表示了对他态度的满意。当时我感觉是这个人不适合在组里做事。精简敏捷开发的宗旨是团队需要集中注意力处置当前最重要的事务,最短时间内用最便宜的手段为整个商业组织发明价值,组主要工作是设计测试案例,开发测试案例是给整个开发组织的最大价值,而不是把时间花费在无意义的流程改进或是为高层收集测试数据,没有人设计开发测试案例,收集的测试数据是没有意义的而这种鸡毛蒜皮的小事正是A最感兴趣的事情。写的信让D很不高兴,因为我写得很不留情。这也是没有经验的管理者应该注意的尽力防止这么直接的举动,多进行面对面沟通,实在不行才使用这种下下策。和B沟通后,B又写信给A说,首要任务是对新责任负责。A回复说,不觉得这个新项目有什么重要的大家对此都没有什么重视,所以还是让我完成我测试数据收集。A信送出后,也没来得及看。一天后B找到跟我说了这事,才知道B也火了也写了一封措辞严厉的信给A并抄送了上司D当然D也找B谈话说不能这么不留情面(大家知道了要先进行面对面沟通,之后才干作出这样肆无忌惮的举动)
事态有所改进,又过了一个星期。开发组的上司H也不知从哪里知道了这件事,写信给A说要把工作重心转移到分配的事务上。然后我上司D也对A做特别安排,让他全力协助我A态度马上大转变,说他会全力和我一起协作,仗着我有令箭和A态度转变,就开始给他分配任务,每天和他进行2分钟的Scrum同时也帮他开始建立开发环境,花费了三天,才把他开发环境整理清除,被聘开始工作到现在对自己的开发环境维护什么都没有做,一切都是乱七八糟,然后自己还不懂到开发测试Wiki上找答案。让我可笑可气的拿了一个很简单的问题问我如何处置。错误信息就在面前,读一读,再考虑一下就能解决,A处事态度怎么能这么不认真,还是能力不行?三天之后,一切都搞好了觉得,A也该开始阅读项目文档,并向我向开发者提出大量的问题。
时间到十月初的第二个星期,事实还不是想象的那样。周一分配了任务让他阅读文档,给了一个星期。认为,作为高级工程师,知道自己该做什么,分配是很清晰的阅读文档,准备写测试计划,有任何问题,尽管问我周五中午B跑来跟我说,开发部上司H很不满A不准备在下一周进行顺序发布测试(ReleasVerifTest说我完全支持A决定,心里还有高兴,A终于可以专心做正事了甚至对B说我觉得A需要一点时间阅读文档。如果他能专心做事有进展,会帮他处置这些杂事的下午,马上发现我想法是极大错误,A和开发者开会时净问一些没有一点技术背景的问题。坐在那里看着开发者艰难地解答他提出的问题,还有他不着边际的回复,心里急啊!最后我坐了35分钟,借口离开去找B反映这个发现。容忍了A四个星期的不作为,已经开始破坏我全盘测试计划。A之前的QA Lead给了建议是直接找上司D于是和B起草了一封信说A一个星期下来没有实质性进展,反而有负进展。态度是不能容忍的希望D能替我安排一个好的解决方案,对事情发展到这个状态已经无能为力了周末,仔细想了一下,和D见面时不能透露无望的神情。读者如果看过《教父》知道DonCorleon电影一开始接见好莱坞大明星JohnniFontanJohnni希望Don帮他摆平一个电影角色的当时他无望地对Don说,Godfather,于是和B又找了前任QA LeadJJ个德高望重的人。IdontknowwhattodoDon反应是痛斥Johnni无能,说“YoucanbelikeaMan!!...当时的感受可能就和JohnniFontan差不多。周日晚上仔细考虑了一下,知道自己不能象废物一样给上司D汇报这一情况。而且KenSchwaber书中提到Scrummaster必需能够对情况和发展作出合理判断,把各种可能发生的事件和后果进行总结归类,再同管理层进行沟通,协助管理层理解种种处置的不同后果。列举了几种处理方式:
开发环境设置等工作,调离A分配新的人员给我后果是要重复一系列培训,如果A合作不顺就要管理,后果是不需要太多介入培训新人;分配新的人员给我让A和这个新人一起协作相互牵制。协助设置开发环境的问题。而且我可以继续我测试工作。但是要更多地管理。会更严格地监管A后果是要花费很多精力监视;继续给A一定的时间。甚至介入A工作,测试进度将受影响。和D见面,星期一。D马上和我说了布置,让A手下再干三个星期,然后他能转到其他组去。从D那里得知A上一星期把时间都花在测试数据收集的工作上了还表示了对自己现在工作的不适应,希望调离。可以看得出D和我一样对事态非常失望。D要我和A商量好三个星期必需完成的任务,然后等A休假回来后在布置A工作事宜。带去的事情处置方案,和收集的汇报都没有用到下午,从D那里接到通知说A马上就转到另一个组。事情就这样解决了
任何问题必需从问题一发生就马上解决,读者会问这件事和敏捷开发有何关系?感触是敏捷开发是不能容忍开发进度中任何能够造成进度停滞的问题。敏捷开发必需像耍独孤九剑一样连贯自如。同时不时改进,根据情况不时调整战术保证进度的高速进行。这件事情上,上司D一开始犯的错误就是高估了A技能。觉得他对A一直抱有一种没有理由的错误判断—A个处置能力和技术能力强的专家,其实这和现实差得太远了D只是个经理,不做技术性的工作,无法了解下属的真实情况。这是一个典型的例子,不懂技术也不懂下属能力的经理会误判下属的真实情况。或多或少的蛮横安排资源,不接受团队回馈也是D所犯的错误。敏捷开发的一个重要手段是团队自我管理,也就是阵地上的士兵比在指挥所的军官更了解战场战况,有时将在外,必需拥有“君命有所不受”权利。上司D经常如此蛮横地瞎指挥,下属一般都以自己最好的判断来尽力实施他要求,但是做不到时候也只有和他汇报,获得他理解,想这是很多技术人员经常碰到问题。