关于软件开发“隐喻”

作为软件开发人员不可避免的涉足软件过程管理,无论是管理者还是实施者都是过程参与者。当我们要向外行解释软件开发是怎么回事,通常来通过一个比方比如说建房子,这就是“隐喻”,当我们工作中遇到问题的时候,怎么深刻地正确地来理解和认识我们软件工作的本身,你潜意识里认为做开发应该这样,实际上做的事情不符合你的预想,这就是痛苦的根源。

有篇文章“软件开发不可与建筑类比”来表明一个不恰当的软件开发隐喻。值得思考。

这与敏捷开发宣言有些神似。

那些经常用来描述软件的建筑隐喻是错误的。可悲的是,因为有了这层暗示,我们把很多重点放在了错误的地方:

力求把需求预先定义清楚,而不是接受:变化才是常态;

强调架构和架构师的重要性,而不是接受:软件是可适应的,可由团队里的任何人来改变;

假设人员是可替换的,并且时间问题可以通过增加人手来解决,而不是接受:每个人都是独特的;

追求可预测性,而不是接受:我们的领域还没有被很好地认知。

软件与建筑绝无关系!

我们不是在建造,而是在探索!

敏捷开发宣言:

个体和交互胜过过程和工具;

可运行的软件胜过面面俱到的文档;

客户合作胜过遵循合同;

响应变化胜过遵循计划

相关推荐