构架师是一个为IT系统的承担技术风险责任和系统生命周期担当的角色。职责包括需求,分析做出决定运营模型和组建模型。
首先,软件构架师肯定是一个项目的技术主管,这意味这他必须有丰富的知识背景以及很好的领导才能,所以,一个软件构架师的技术要求十分广泛,并且在特定的领域有一定的技术深度。相比较与项目经理管理项目的资源,时间进度以及花费(他要确定工作被完成了),软件构架师则是需要确定工作是否被正确的完成。软件构架师要把握整个团队的能力,将整个团队组织在构架周围,并且积极地进行计划中的活动。因为要把构架转化为完成任务的先后顺序,因此,构架师需要了解小组的各个成员的技能。
构架师也是需要参与到团队的工作中的,并且根据实际情况来做出领导的决定,并在决定过程中展现出足够的自信,带领整个团队完成项目。
构架师做出的决定一定是要在团队里有着绝对执行的执行力,来确保做出来的决定被正确执行。
一个好的构架师将会在软件开发和商业领域的知识上面做出权衡。如果有个构架师具有很好的软件开发经验但是不了解商业领域,那么他的解决方案可能不会解决实际的问题,而仅仅只能反映出构架师是多么的精通他的专业。构架师需要精通商业领域知识的原因是,构架师要能够预见软件构架随时可能出现的变化。由于软件构造受它被配置的影响非常大,所以对商业领域有很正确理解的构架师,可以从软件构造的角度,对不断变化的情况做出更加的有远见的决策。
软件构架师需要有一个特定方面有一定的专业知识,因为一个构架师必须具备一定水平的知识才能够胜任他的工作。当然构架师不必要拥有更高的知识,他不必成为技术专家。事实上,软件构架师只需要对宏观上的问题有所了解,而不必关心细节的事情。但是构架师要随时与这些变化保持同步。
软件构架师需要拥有很好的程序设计技巧,开发人员是整个项目开发过程中最重要的一个小组之一,构架师要随时和他们保持联系。构架师需要和开发人员之间有很好的交流,有时候,构架师还会投身开发组,进行一定程度的编程。即便构架师不精通开发,但是基本的知识也是要具有的。
构架师是很好的沟通人员,因为作为一个构架师,他必须具备很好的沟通能力例如,一定的语言能力,写和演讲能力。由于沟通是双向的,有时候构架师还需要作为一个很好的聆听着和观察者存在。同时,软件构架师需要具备一定的谈判技巧,为了了解软件构架的很多尺度问题,构架师需要随时和投资人沟通。这种沟通就需要具备一定的谈判技巧了。
一个好的软件构架师不会只是关心技术上面的问题,他们还会关心组织的权利动向,时刻了解团队的决定权在哪。这可以保证他们在和正切的人讨论项目的决策问题。现实中,团队经常会强迫项目小组在规定时间内交付系统,这需要构架师正确的评估这个个时间。
其实构架师可能会由不止一个人组成,一个人可以扮演不同的角色,反之亦然,一个角色可以由很多人扮演。构架师的角色就需要很广泛的技术,这就是为什么构架师的角色经常都是由很多人同时担当,这样做可以带来很多好处。每一个人都可以将他的个人经验带到工作中,可以进行头脑风暴等活动来使构架师的这个角色更加的发挥作用。
综上,我们可以写出软件构架师的几个特点:1、构架师是由一个人或者一个开发小组来完成的。2、构架师应该理解软件开发过程。3、软件构架师需要有商业领域的知识。4、软件构架师应该拥有技术知识。5、软件构架师应该有很好的谈判技巧。6、软件构架师需要拥有很好的程序设计技巧。7、构架师是一个很好的沟通员。8、构架师需要作出决策。8、软件构架师需要觉察组织的政策。9、软件构架师是一个谈判代表。