《孙子兵法》在敏捷项目管理中的应用(2)

发表于:2013-08-23来源:新浪博客作者:PMIntelligence点击数: 标签:项目管理
一个真正和谐的团队不是大家在一起都是一团和气、没有冲突,而是大家都能朝团队的共同目标 项目的成功交付去努力,大家各尽其职。因此,对于阻碍

  一个真正和谐的团队不是大家在一起都是一团和气、没有冲突,而是大家都能朝团队的共同目标 —— 项目的成功交付去努力,大家各尽其职。因此,对于阻碍这个共同目标的人和事,项目经理要把握不要忘记自己的职责的原则,该严则严,对于给过机会而仍然不思改正的人该处理就处理。

  管理措施的制定要考虑其实施的前提条件和弊端

  任何的管理思想和理论到最后都要体现为具体的管理措施。而管理措施的制定则要考虑其实施的前提条件及其弊端。

  发火有时,起火有日。时者,天之燥也。日者,月在箕、壁、翼、轸也。凡此四宿者,风起之日也。凡火攻,必因五火之变而应之:火发于内,则早应之于外;火发而其兵静者,待而勿攻,极其火力,可从而从之,不可从则上。

  ——《孙子兵法•火攻》

  火攻的优势在于借助自然界的力量造成强大的打击力。但是,真正要发挥火的威力,则要看实施火攻时的天气条件以及火燃烧时敌人的反应情况 —— 一定要借助天气干燥、风力风向、敌方混乱这些外部条件,才能够“趁火打劫”。可见,火攻所可能产生的强大杀伤力是措施制定者所期望的收益,而火攻实施时的天气情况、敌人反应情况则是其实施的必备前提条件。

  相反,管理措施的期望收益自然容易想到的,但是容易忽略的是实施这些措施的前提条件。比如,“重构”(Refactoring)的目的固然是使代码的质量日趋提高,但是容易忽略的是它的实施前提:“重构”要有自动化测试工具支持。否则,“重构”代码所可能带来的对现有功能的破坏会使其无异于自杀。

  软件测试过程中,为了避免同一个测试人员多次测试同一个 Story 容易造成思维定势而导致漏测,很多项目组采用交叉测试来规避这个问题。但是,交叉测试能够达到预期收益的一个重要前提是参与交叉测试的测试人员对当前迭代中所有的 Story 及测试用例都要有所熟悉。这样才能使一个测试人员接手另一个测试人员之前测试过的 Story 时能够对该 Story 的测试用例进行重新审视,从而发现被遗漏的、甚至是错误的测试用例,而不是仅仅拿一个新的 Build 在现有的测试用例下再测试一遍。基于交叉测试实施的这个前提条件的考虑,笔者要求在迭代开发过程中每个测试人员都能够讲解自己对任意一个 Story 的理解。

  其用战也,胜久则钝兵挫锐,攻城则力屈,久暴师则国用不足。夫钝兵挫锐,屈力殚货,则诸侯乘其弊而起,虽有智者不能善其后矣。故兵闻拙速,未睹巧之久也。夫兵久而国利者,未之有也。故不尽知用兵之害者,则不能尽知用兵之利也。

  ——《孙子兵法•作战》

  作战持续时间长了,容易使国力受损,而敌国则容易趁虚而入。所以孙子兵法说不知道用兵的害处,则不能真正知道用兵的好处。

  同样,很多管理措施都是有其利与弊的一端,不知其弊端,则很难发挥其利的一端。比如,为了控制缺陷的数量,在每个 Story 被测试出一定数量或者严重程度的 Bug 后,有的项目组会规定此时对应的开发人员要给全组人员买零食或者请吃饭之类惩罚性措施。但是,这样的措施会不会导致开发人员在缺陷被发现时出现推诿的现象,试图不承认其是缺陷或是由其引入的呢?这是措施落实前所要考虑的措施可能存在的弊端。

  项目经理的思想境界

  是故百战百胜,非善之善也;不战而屈人之兵,善之善者也。

  ——《孙子兵法•谋攻》

  每次打仗都取胜不是战争的最高境界,战争的最高境界是不费兵卒而取得胜利。《孙子兵法》的这个论断,给了笔者很大的启发:项目经理在解决项目管理过程中遇到的问题时要选取一个较高的高度去解决问题。

  敏捷开发得以流行之后,有人把 CMMI 那套“重型”过程全盘抛弃了。取而代之却往往是毫无章法,而又无法对项目的各个维度进行有效控制的开发过程。笔者曾经就接手过一个号称实施敏捷的濒临危险状态的项目。这个项目存在很多问题,虽然这些问题都很常见。诸如严重的返工现象、漏测试现象、人员组织纪律性差以及人员技能水平低等等。所有这些问题当中,笔者当时认为最为重要和迫切的是严重的返工现象所带来的质量问题。而对于质量的改进,笔者当时并不是通过解决漏测试问题,虽然它也会导致一些质量问题。而是从规范开发流程入手,采取缺陷预防的相关措施去控制质量。笔者当时所采取的措施是基于这样的认识:通过各种措施尽可能地发现缺陷并将其修复不是质量管理的最高境界,质量管理的最高境界是通过缺陷预防将缺陷扼杀于摇篮之中!

  应对困境

  昔之善战者,先为不可胜,以待敌之可胜。

  ——《孙子兵法•军形》

  从前的那些善战的人,总是先能做到自己不被敌人战胜,然后等待时机去战胜敌人。

  《孙子兵法》启发我们在面对困境的时候,首先要做的是不被困境中的各种问题击败,即要保证项目的成功交付。然后才是等待时机去将这些问题击败。这种情形,尤其适合在团队中出现某些违背团队目标的人,而一时间你又无法对其进行处理的情形。这时候,作为项目经理其实可以等待时机再处理,只要你们保证项目的成功交付。

  纷纷纭纭,斗乱而不可乱。

  ——《孙子兵法•兵势》

  尤其是在面对困境的时候,项目经理更要能够沉住气,而不能自乱阵脚。这样,整个团队才不会乱。一如两军对战,主帅一乱势必导致其军自乱。面对危急情况,项目经理的表现得沉着冷静,也能够给团队成员一个好的榜样。

  本文转载自:http://blog.jobbole.com/29109/

 

原文转自:http://blog.sina.com.cn/s/blog_c32cbbe20101a5tt.html