开来。小组所作的结果,需要被
"平衡。" 贯穿整个文章的术语"构架师",是指的
一个人或者整个小组的成员。
[一个小组]是一些拥有各种技术的人的集合,他们之间有共同需要完成的
目标,并且之间相互负责任。如果一个小组来担当构架师的角色,那么就需要有
一个人作为这些构架师的领导,他要拥有整体的前景,并且需要调节构架师小
组之间的问题。如果没有这种调节,构架师小组成员之间就会存在危险,他们可
能不会建立出一个紧密地构架或者决策不会被成功的完成。
现在有一个新的概念在构架师小组中被提出:为了使成员之间达到共同的
目的和目标,团队为构架师小组建立并发布了一个章程。 好的构架师知道自己
的强项和弱点在哪里。无论构架师的角色被一个人还是一个小组担当,他们背后
都有
"值得信赖的顾问"的支持。他们可以通过和其他构架师协同工作来弥补自身
在某些技术方面的不足。最好的构架通常是被一个构架师小组建立的,而不是一
个人。原因很简单,一个小组的力量总要比一个人的知识丰富的多。
构架师小组的概念有一个缺陷,他们有时被团队中的其他人认为是在
"象牙
塔
"里工作,因为他们的产品经常是很有智慧的但却没有使用价值。这种误解可
以从开始就把它减到最小:
1)确保所有的涉众都能积极地协商,2)不断的交流
构架和它的价值,
3)
在执行过程中要有组织策略的意识。
构架师应该理解软件开发过程
构架师应该对软件开发过程有正确的估计,因为这个过程确保小组中的所
有成员使用同等的方式工作。一个好的过程需要定义各个角色的工作承担责任,
产品的建立,不同角色之间的协同工作等等。由于构架师每天的工作都需要和很
多小组成员打交道,所以对于他们来说了解工作的职责是非常重要的。在每天的
工作中,开发小组经常要找到构架师,了解该做什么工作以及怎么去做。这就是
软件构架师和项目经理之间的细微差别。
软件构架师需要有商业领域的知识
尽管拥有了丰富的软件开发经验,但是我们还期望(或者是要求)构架师
拥有一定商业领域的知识。
[一个领域]是在一个范围内工作的从业人员使用一系
列特定的概念和术语来表达这个领域内的知识。
这种知识将会使构架师更好的理解系统的需求,并把精力投身于其中,确
——
保系统的需求是合适的
例如,从构架师领域的角度出发,需求是要被准确
捕获的。经常会出现这样的情况,一个特定系列的构架样式可以被应用到与它相
联系的一个特定的领域中。如果构架师知道这种映射关系,那么对他的工作将是
很大的帮助。