
软件战场的特点(中篇)
|
特点四—— 后果的输出连带性 一个工人做错了会影响到他所工作的生产线,但多数情况下不会影响到全部生产线;一个士兵在战场上,他的行动会影响到其他士兵,但他的个人成败极少会影响到整个战役的成败;而一个足球运动员在比赛的时候,他要与人配合,因此他的行动(尤其是在控制球时)往住会影响到整队的行动,而他个人的成败也会直接影响到整队的成败。 在一个软件开发战场,绝大部分的工作,如写需求、设计及编码,都可以自由发挥。而一个表面看来简单的需求,可使整个设计及编码改变。一个人看不准或不小心所写出来的软件,可使整个系统变慢、停顿甚至崩溃。 软件战场是一个团队工作,如果足球队不是由11个人组成而是由1100人组成,传球不是用脚而是用智力,球也是无形的,那要怎样去管理? 特点五——长期维护和改进 一般软件都有暗藏着的毛病(bugs,是虫的意思),这些暗藏的毛病有多少、在什么情况下会浮现出来以及浮现时的破坏程度严不严重,都存在不确定性。 由于软件需要长期维护,而维护工作也需要原作者的知识,便引出以下的管理问题: 1. 软件商如何管理由原作者到维护者的知识移交,需要什么及多少文件,需要的时间及资源是多少,与现时商业的限制符不符合,怎样才知道移交成功与否(因为不成功是会严重影响客户的)。 2. 原作者及维护者的自行管理。需要什么及多少文件,需要什么形式及多少的培训,需要的时间及资源是多少,与现时公司的限制符不符合,怎样才知道移交成功与否(因为不成功是会严重影响到两人日后的工作)。 3. 如果是重要任务系统,买家要在选择软件商时确定它有足够的知识和经验去维护以及它过去有一定的维护声誉。如果那重要任务系统是特别为顾客而造的(不是大众产品),在签约的时候要确定原作者会维护一个时期或起码做维护者的顾问等等。 4. 软件商如何管理客户报告的毛病,怎样才知道客户的报告所指出的东西是否真正是毛病,损害的严重性有多大,什么时侯通知客户及怎样和客户在解决问题上达成共识,怎样把问题通知其它有可能遇到相似问题的客户,需要的时间及资源是多少才可把问题解决,怎样把修补软件送到客户手中。 5. 维护者应在侦查问题、提议解决方案及解诀问题的时候,都要有一定的自律及自行管理。 特点六——浓雾中打球,责任不清
软件生产的可见性极低,导致了成果无法预期,也无法保证百分之百的正确性。这就类似在浓雾中打球。 如果你主持一个高尔夫球比赛,规则是每人打一球,打得最远者得奖金1000元;规则是无论天气怎样恶劣,都不可改期,但如果到场的全部参赛者都同意取消(即无人可得奖金),比赛就可以取消,不再举行。如果你有主持这类比赛的经验,你极可能一早便叫人在比赛前把地上的球都清除了,比赛的时候派给每位参赛者一个可以识别的球,以便在有争议的时候可在地上找回有标识的球来量度距离。在一般情况下,只要你做好以上的一点准备工夫,管理这个比赛并不困难,因为每个参赛者发挥的成果的可见性及可量度性都很高,无论谁得奖,都不会有人不服。 但如果比赛那天有浓雾,而规则是无论天气怎样也不可改期,你管理这个比赛的难度就突然提升了许多,当无法判断球的远近时,会有人提议用打球的姿势来裁定胜负。因为由姿势来决定球的远近是很不容易的,谁有这个资格及能力来评判是一个问题,如果胜出者是裁判的亲友又是一个问题。如果你明白可见性程度转变会影响管理方法,你会先向参赛者解释上述的困难,让他们明白。然后和他们商讨以决定:(1)取消比赛,无人得奖或(2)推举一裁判,接受他的裁定。其实在软件活动或其他智力工作中,浓雾中打球的例子每天都在发生。
|
一共有 0 条评论