排版 / 以码为梯
文章字数 / 3740
如何成为架构师系列文章(译文)的第二篇,欢迎转发、评论、收藏
这篇文章我们继续探讨软件架构师的成长路径。在阅读之前,我推荐你阅读此系列文章中的前一篇文章,成为软件架构师的路径
这次我们将讨论项目开发的目的。让我们谈谈为谁完成这项工作以及谁可以影响项目。
全文较长,下面三张图是全文的精华,描述了利益相关者的类型、如何确定利益相关者、对利益相关者进行分析三个关键步骤的活动。
利益相关者类型
确认利益相关者需要提问的问题
如何分析利益相关者
谁是利益相关者?
项目的利益相关者永远比你知道的要多;你所知道的利益相关者存在你所不知道的需求。Tom Gilb
代码本身,无论多完美,都是一文不值的。最关键的是要看代码实现了什么样的业务功能。更确切地说,谁会为软件带来的业务能买单(因为功能解决了他们的问题或给他们带来娱乐)。开发者,架构师,管理者这些人都是利益相关者。项目开发完全取决于其利益相关者,开发者本身也属于利益相关者。
有趣的一点是,通常在决策阶段之前利益相关者不会出现。但一旦决定已经确认,或者在宣布和实施决定时,受此决定影响的每个人都会发表意见。为了使项目免受潜在伤害,建议您首先回答为什么做这个项目和给谁做这个项目这两个问题,然后才回答项目如何做。
利益相关者类型
项目是为谁而创建的?一个满意的答案是,为最终用户而创建的。最终用户同时也是项目的利益相关者。然而,他们可能不是最重要的一个。因此,在软件开发中,值得关注的不是最终用户,而是利益相关者。
列举完整的利益相关者类型列表是不可能的,因为对于不同的系统,它们可能会有很大差异。让我们重点介绍以下最常见的利益相关者以及我们在忽略他们的利益时的后果:
参与该项目并致力于该项目的人
受项目影响以及将使用其功能的人员
虽然没有直接参与项目,但是因为他们的地位和行为却可以影响项目的人
但是需要知道的是,利益相关者对系统不是只有积极作用,利益相关者有时候也会对系统设计起到消极作用。因此,我们需要考虑针对一个特定的系统,如何定义其利益相关者。
利益相关者管理理论
利益相关者管理第一次提出是在Edward Freeman的《Strategic Management: A Stakeholder Approach》书中。他提出对可以影响一个商业项目或特定项目的人进行理解和分类,可能有助于对管理流程进行结构化和优化。虽然这个过程跟管理领域更相关,但是别忘记我们不仅仅是敲代码的,我们是架构师,这对我们也适用。在他的理念中,Edward Freeman将利益相关者的分析和管理这个过程拆分为六个阶段:
Image 2. Process of stakeholder analysis
接下来我们针对每个阶段做详细的解释。
确定所有的利益相关者(Identifying all stakeholders)
因为利益相关者会影响项目,所以在开始设计之前所有的利益相关者都需要被确定并认真研究。这件事情可以由商业分析师或者架构师来完成。利益相关者的信息应该在项目管理者做商业分析阶段,创建架构期间以及实现设计的方案时被使用。
不仅要确认利益相关者,还要找到影响他们的方法,这样以后就更容易就各种问题达成一致,这一点很重要。
沟通是影响利益相关者的主要方式,应该被优先使用。这样可以让你知道他们以某种方式行事的动机。
为了跟利益相关者进行有效的沟通,你需要对他们非常了解。否则,就不可能有效地工作。
对利益相关者的分析是从识别出项目的所有利益相关者开始的。使用头脑风暴对确定所有的利益相关者很有用。下面的这些问题可以帮助确定利益相关者:
利益相关者分析包含以下事项:
请记住,设计的架构解决方案必须通过利益相关者的多个工作阶段才能被认为是成功的。
根据OMG原则,我们可以根据对利益相关者的解释、参与和满足来区分六种项目状态:
在确定了利益相关者列表之后,需要理解他们的立场。他们的重要性和影响力允许我们确认主要的需求并忽略不必要的需求。
为此,您可以使用以下通常用于项目管理的利益相关者管理策略:
Image 3. Influence-importance map
利益相关者地图(四象图)是一个双轴图表,其中包含影响轴和重要性轴。
影响力是指利益相关者在项目管理中的权力。利益相关者的权力在于影响项目投资的水平,参与项目预算,并影响在项目过程中就关键问题做出决策的人。
重要性在于利益相关者对项目结果的贡献。重要性取决于如何满足需求,解决问题以及每个利益相关者的利益如何影响项目结果。例如,重要性是利益相关者的特殊知识或技能,以及项目成功必须满足的需求。
四象图被分为四块,分别代表了利益相关者的分组。对不同的分组应该采用不同的方法。
第一类(影响力高、重要性高)—好的关系(Good relations)。有必要与这些利益相关者建立密切的工作关系,因为对他们而言,项目至关重要。他们参与实施并积极影响过程和结果。
第三类(影响力低、重要性高)—保护(Protection)。他们需要特别的举措来保护他们的利益,因为该项目对他们来说非常重要,但他们对项目实施的影响微不足道(或者他们无法影响)。
第四类(影响力低、重要性低)—低优先级(Low priority)。这组利益相关者参与其中并且相对感兴趣,但不是那么多。因此,从注意力分配的角度来看,这个群体的优先级较低。
应用利益相关者知识
在找出利益相关者列表,画出重要性-影响力四象图并创建了需求列表并被关键利益相关者认同后,就可以开始设计系统。此外,项目经理应与关键利益相关者合作,并在项目的整个生命周期中跟他们保持密切联系。项目经理必须确保利益相关者的要求在开发过程中得到实现,如果需求或利益相关者本身突然发生变化,项目经理应该通知架构师对此做出响应。
要记住的重要的一点是,如果架构师没有提出最佳算法,这可能会导致项目变得更加昂贵,并产生不同的后果。如果架构师未能确定关键的利益相关者之一,他可能会因此失去职业生涯。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!