本节书摘来自华章计算机《需求设计:构建用户想要和需要的产品》一书中的第1章,第1.4节,作者:[英] 克里斯·布里顿(Chris Britton) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.4 重视IT架构
笔者在本章开头说了三项目标,那么现在就来谈谈第三项,也就是为IT架构提供支持。
这里必须先解释一些术语。笔者用IT架构这个词,来泛指IT开发领域中的各种架构,如企业架构、信息架构和技术架构等。所谓重视IT架构,是说我们要从整个企业的IT资源着眼,而不是只关注某个应用程序。我们要发挥多个应用程序之间的协同能力,要使数据在整个组织中保持一致,而且要创建一整套易于扩展的IT应用程序,以便为新的功能提供支持。重视IT架构,就是要在关注应用程序自身的同时,还顾及应用程序之间的集成。
如果IT应用程序采用工程学的办法来开发,那么就其本身来说,这样的程序未必会给整个IT架构提供支持。建筑领域也是如此,建筑师参与设计一栋楼,并不意味着这栋楼一定会和周边环境相协调。
架构因素对设计中的很多领域来说都是特别重要的。技术设计(technology design)就属于这样一个领域。对于大多数项目来说,市面上都有很多技术产品可供选择,因此,我们必须在其中挑出自己所要使用的那些技术。我们所选的技术,应该是本企业所擅长的技术,而且要能够较为容易地与现有的应用程序相集成。此外,技术设计还必须帮助我们决定应用程序的结构,以及应用程序与企业的系统管理和安全服务之间的集成方式。在做技术设计的时候,我们可以发现一些对原有的想法或技术进行复用的契机,有时还可以在多个程序之间复用已经编好的代码。
还有一个领域是数据库设计(database design)。在这个领域,我们要关心的是数据能不能在整个企业内保持一致,我们可以把每位用户的数据都只存放一份,也可以把数据存放多份,同时确保这些数据所包含的信息是相同的。新的应用程序应该使用现有的这份数据来运作,如果程序需要复制一份新的数据,那么至少应该与其他程序相互协调,以确保这些数据的内容是彼此一致的。
然而,要想确保各种架构因素都能得到重视,我们就必须在设计之初做出一些决策,把需要保留和需要替换的应用程序及服务定下来,并且确定我们应该在项目里面实现哪些可供其他程序复用的服务。笔者把这叫做集成设计(integration design),由于刚才那些决策对项目的开发范围起着很重要的作用,因此,在设计体系中,集成设计应该摆在较高的位置上面。