广州这几天的天气阴晴不定,上午还是阳光明媚,但到了中午却是滂沱大雨,所以这段时间我都随身携带着GF送我的伞,任它天气变化多端我也不怕。这里要特别说说GF送的伞,这把伞很轻,除了伞的支架是金属的,主轴等其他部分都是非金属的,它放在我的包里几乎感觉不到它的重量,这也是我可以把它随身携带的基本条件,当然,另一个重要的原因就是它是GF送的,带着它有种温暖的感觉,呵呵。
广州不断变化的天气犹如软件项目中不断变化的需求,常常看到许多人都说:“唯一不变的是变化本身”,的确,大多数软件项目的需求在项目初期是不清晰的,所以在以后的开发过程中会不断的变化,但我们能埋怨这些而不去开发软件吗?显然不行,就像我们不能让天气按照我们的意志变化。那怎么办?学我吧,天天带把足够轻的伞,软件开发的伞就是敏捷开发方法(ASD),ASD能使团队轻装上阵,积极响应需求的变化,拥抱变化。也许我把伞和ASD拿来做比喻有些欠妥,但我是想强调我的伞和ASD的共同特点——轻,因为轻,我才能带着这把伞到处走,试想,如果我带着英国绅士的那种带勾的伞,不累死才怪:P,同样,ASD是轻量级的软件开发方法,它更利于在需求频繁变化的软件项目中运用,如果一个只有8个人的开发团队做一个小于10万的项目,动用RUP等方法,光是写文档就能把他们累死:)。
在一个雨天,一个同事忘记带伞,于是我和他共撑着这把伞走去饭堂吃饭,结果我们两个人都给淋了半边湿,因为伞太小了,但没办法,要轻只能小,可见,轻也有其局限性的,如果再挤来一个同事,那么我们三个都会变成落汤鸡。由此可见,ASD也有其局限性的,项目规模一大,开发人员人数就大了,这样沟通的路径就多了,如果还是硬搬ASD那套,这个项目必定不能“干”着走出来。有什么办法不湿?一种方法是用一把大点的伞,也就是用重一点的开发方法;另一种方法就是一人一把伞,在软件开发里就是把项目分给若干个小团队做,小团队里实施ASD,但又会出现问题,就是团队之间沟通问题。由于我没有什么实践经验,也不知道如何实施第二种方法,还是请高手作答吧,呵呵。