近日,和队友一起对IBM的SOA大赛的命题思索,感触良多。
需求是软件开发的起点,更是开发成败的关键。我们一拿到题目不禁产生了如下疑问:没有一个真实的,可以调查、访问、咨询的客户,不能与之讨论、协商以明确需求,我们的设计和开发会不会就是一场游戏一场梦呢?如果仅仅是虚幻的南柯一梦,那么大赛是否能够真正地考量出参赛者的架构设计能力呢?没有详尽的需求,这是我们面临最大的挑战。
硬币是两面的,大赛也是。讨论和思索中,我们发现了一些有价值的线索,或许这才是对大赛题目的正确解读。
“或许你并不需要完整的需求,最起码在开始设计的时候”。对于软件开发来说,开发模型的选择或许是至关重要的,是MSF,RUP还是FDD,XP。就本项目而言,项目的规模不应该超过15人月(5名队员,3个月),显而易见我们应当选用某些轻量级的模型,例如:XP。另一面,大赛初赛要求提交的制品显然只是设计而不包括代码实现,考虑到IBM主推的RUP过程,我们有理由认为初赛、复赛就是RUP的Inception和Elaboration两个阶段,而决赛则是Construction和Transition两个阶段。对于RUP来说在Inception和Elaboration的早期我们并不需要完整的需求,更不需要Frozen Requirements。
“做一只骑在大象身上的猴子”,Barry Boehm的话或许是我们在选择本项目的开发模型问题上最好的指导,我们不用纯粹的RUP,也不用某一种固定的XP方法,我们将有针对的来制定本项目的SDP。
最近,EMC的“秘书门”事件网上炒得沸沸扬扬,我并无太多兴趣,倒是记住了EMC的motto,“与客户,合作伙伴和同事建立长久关系的核心要求是做正确的事,永远是”。如果不希望SOA大赛对于我们只是“春梦了无痕”,或许我们需要在这场游戏中从选择正确的开发模型开始。
“做正确的事,永远是”。
王青
2006-4-30