潜鱼在渊

Concentrating on Architectures.

posts - 77, comments - 309, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

软件架构:架构与价值

Posted on 2008-09-13 18:20 非鱼 阅读(1487) 评论(2)  编辑  收藏 所属分类: 面向对象设计
Before your software dies, it's valuable. Remember this.

凡人造物(Artifact),皆有价值。有些也有坏处,但这并不掩盖其价值。软件亦如此。所谓价值,通俗来说就是对人有益。很多软件不入人法眼,并非没有价值,而是因为还有些软件更有价值。

现在忘记怎么做的问题,我们来看看做什么:软件开发,就是使“软件”更有价值的活动。一个软件企业,不是要做软件,而是要做好软件,做更有价值的软件。

这和架构有什么关系?

软件有其形式,软件通过形式让人得益;软件有其灵魂,软件的灵魂就是架构。架构定义多个人群可以从软件中得益的最大与最小值,并贯穿软件生产和改进的过程,控制和保证不同人群利益的实现。

简单的说就是:架构规定并保证了软件的价值。

为什么要“以架构为中心的开发”?

因为要保证并提升软件的价值,就是要比其他同类更有价值。可惜的是并不是所有人都知道这个道理。老总说:“架构很重要。”销售也这样说。但是为什么?他们不知道,所以也并不会和架构师就此问题产生共鸣。于是“架构”和质量一样,成了企业的一个口号。

其实相当多的架构师也不知道,就像QA/QC其实并不一定真正理解什么是质量一样。所以最初的架构师关注组件和连接器,进而关注原则和约束,关注风格和过程,直到最后,才想到要关注软件的价值。

从知到用

这是一个理念,这是一个原则,这是架构设计的出发点。它并不能直接应用在架构设计、维护和改进的过程。但它可以做为一把尺子,用来度量一个架构的好坏。在任何一个架构决策确定之前,也要考虑它。

这可不是一件简单的事。通常我们需要从受益者(stockholder)出发,来定义一个列表,记录受益人对价值的看法,包括期望的效果、付出的代价、忍耐的程度等底线、阀值,这是超出用户需求的东西。这些也并非一成不变的东西,然而每次细微的调整,都极可能带来架构的巨大变化。慎之!

最容易想到的受益人是用户、客户,以及第三方合作伙伴、潜在的客户等。最容易忽略、最容易被损害的是开发组织自身的利益。知易行难。

最大的挑战,是时间。人很容易动摇,遗忘了价值。而对于一个组织来说,对付时间最有效的武器,是管理。

希望这个小文,对大家有所帮助。谢谢!

Technorati 标签: , ,

评论

# re: 软件架构与软件价值  回复  更多评论   

2008-09-13 21:36 by Jack.Wang
说的很好!
最初的架构师关注组件和连接器,进而关注原则和约束,关注风格和过程,直到最后,才想到要关注软件的价值。这种架构师还不是合格的架构师。
其实架构就是一系列决策,包括商业运维,也包括技术架构,譬如:分层,功能分割,风格组合等等。

# re: 软件架构与软件价值  回复  更多评论   

2008-09-19 11:25 by duan
楼上和楼主都是高人,我也就只有学习的份,本来实在没有发言的份,只因你们说的太好了。

只有注册用户登录后才能发表评论。


网站导航: