Posted on 2008-09-13 18:20
非鱼 阅读(1848)
评论(2) 编辑 收藏 所属分类:
面向对象设计
Before your software dies, it's valuable. Remember this.
凡人造物(Artifact),皆有价值。有些也有坏处,但这并不掩盖其价值。软件亦如此。所谓价值,通俗来说就是对人有益。很多软件不入人法眼,并非没有价值,而是因为还有些软件更有价值。
现在忘记怎么做的问题,我们来看看做什么:软件开发,就是使“软件”更有价值的活动。一个软件企业,不是要做软件,而是要做好软件,做更有价值的软件。
这和架构有什么关系?
软件有其形式,软件通过形式让人得益;软件有其灵魂,软件的灵魂就是架构。架构定义多个人群可以从软件中得益的最大与最小值,并贯穿软件生产和改进的过程,控制和保证不同人群利益的实现。
简单的说就是:架构规定并保证了软件的价值。
为什么要“以架构为中心的开发”?
因为要保证并提升软件的价值,就是要比其他同类更有价值。可惜的是并不是所有人都知道这个道理。老总说:“架构很重要。”销售也这样说。但是为什么?他们不知道,所以也并不会和架构师就此问题产生共鸣。于是“架构”和质量一样,成了企业的一个口号。
其实相当多的架构师也不知道,就像QA/QC其实并不一定真正理解什么是质量一样。所以最初的架构师关注组件和连接器,进而关注原则和约束,关注风格和过程,直到最后,才想到要关注软件的价值。
从知到用
这是一个理念,这是一个原则,这是架构设计的出发点。它并不能直接应用在架构设计、维护和改进的过程。但它可以做为一把尺子,用来度量一个架构的好坏。在任何一个架构决策确定之前,也要考虑它。
这可不是一件简单的事。通常我们需要从受益者(stockholder)出发,来定义一个列表,记录受益人对价值的看法,包括期望的效果、付出的代价、忍耐的程度等底线、阀值,这是超出用户需求的东西。这些也并非一成不变的东西,然而每次细微的调整,都极可能带来架构的巨大变化。慎之!
最容易想到的受益人是用户、客户,以及第三方合作伙伴、潜在的客户等。最容易忽略、最容易被损害的是开发组织自身的利益。知易行难。
最大的挑战,是时间。人很容易动摇,遗忘了价值。而对于一个组织来说,对付时间最有效的武器,是管理。
希望这个小文,对大家有所帮助。谢谢!
Technorati 标签:
软件架构,
软件价值,
架构设计