软件架构中的利益相关者

排版 / 以码为梯

文章字数 / 3740

如何成为架构师系列文章(译文)的第二篇,欢迎转发评论收藏

这篇文章我们继续探讨软件架构师的成长路径。在阅读之前,我推荐你阅读此系列文章中的前一篇文章,成为软件架构师的路径

这次我们将讨论项目开发的目的。让我们谈谈为谁完成这项工作以及谁可以影响项目。

全文较长,下面三张图是全文的精华,描述了利益相关者的类型、如何确定利益相关者、对利益相关者进行分析三个关键步骤的活动。

利益相关者类型

确认利益相关者需要提问的问题

如何分析利益相关者

谁是利益相关者?

项目的利益相关者永远比你知道的要多;你所知道的利益相关者存在你所不知道的需求。Tom Gilb

代码本身,无论多完美,都是一文不值的。最关键的是要看代码实现了什么样的业务功能。更确切地说,谁会为软件带来的业务能买单(因为功能解决了他们的问题或给他们带来娱乐)。开发者,架构师,管理者这些人都是利益相关者。项目开发完全取决于其利益相关者,开发者本身也属于利益相关者。

有趣的一点是,通常在决策阶段之前利益相关者不会出现。但一旦决定已经确认,或者在宣布和实施决定时,受此决定影响的每个人都会发表意见。为了使项目免受潜在伤害,建议您首先回答为什么做这个项目和给谁做这个项目这两个问题,然后才回答项目如何做。

利益相关者类型

项目是为谁而创建的?一个满意的答案是,为最终用户而创建的。最终用户同时也是项目的利益相关者。然而,他们可能不是最重要的一个。因此,在软件开发中,值得关注的不是最终用户,而是利益相关者。

列举完整的利益相关者类型列表是不可能的,因为对于不同的系统,它们可能会有很大差异。让我们重点介绍以下最常见的利益相关者以及我们在忽略他们的利益时的后果:

参与该项目并致力于该项目的人

  • 项目团队。想象一下,你提出使用.NET开发的技术栈。但问题是,团队里面有20个JAVA程序员但是没有一个.NET程序员,很明显这是一个非常糟糕的决定。这是一个非常简单的例子。你需要了解团队才能了解他们熟悉的技术,而不是因为某项技术是趋势就贸然地使用它。
  • 管理团队。假设你在做决定之前忘记询问你的项目经理一些重要的事情,但是很可能这些重要的事情会影响到你甚至影响到你设计的解决方案达到最终的结果。一个团队的管理者掌握着更多的信息,听取他们的意见是很有用的。
  • 第三方公司。在集成第三方公司提供的解决方案时会遇到各种各样的问题,包括集成的复杂性和集成方案的确定等等。
  • 支持团队(Supporting team)。支持团队指的是在系统的生命周期的一个或多个阶段支持系统的人或者组织。如果说一个架构师忘记提出一个支持系统,那会让人感觉这个项目只是一个儿戏。
  • 受项目影响以及将使用其功能的人员

  • 消费者(Customers)。消费者是最关键的利益相关者之一。如果你是一名架构师,那么有一个关键的问题将会被问起。你怎么能忘记跟为项目的开发付钱的人讨论你的决定?我将以我自己的例子来回答这个问题,在我的实践中,我为实时数据处理和同步创建了一个极好的技术解决方案。这个决定是市场上最先进的决定之一,考虑了最新的技术趋势。这个技术方案经过精心设计、实现、测试后,最终展示给用户。但是结果却是,客户想要的是另外一件事情。更准确地说是,客户需要的是一个完全不同的解决方案,他们根本不需要完全的同步。
  • 最终用户。我们希望最终用户能对项目起到关键影响,但是在实际项目中,通常不能做到这一点。
  • 虽然没有直接参与项目,但是因为他们的地位和行为却可以影响项目的人

  • 公司高层管理人员。公司的效益、成功和地位以及项目的成功与否对于他们来说都是至关重要的,我们需要将他们考虑进来。
  • 公司的拥有人。这些人在听到“项目”和“风险”在一起时,他们会感到沮丧,在设计项目时需要尽量减少他们的参与。
  • 股东和债权人。公司的效益对这些人来说是很重要的,而且他们还希望稳定快速地获取收益。如果你设计了一个在五年内完成的解决方案,尽管你可以将其分成多个迭代并在明天就开始赚钱,但这仍然是一个可能让你的职业生涯终止的错误决定。
  • 监管机构。你设计了一个系统,但是这个系统不符合法律或者标准要求,那么这个设计绝不是对的设计。
  • 但是需要知道的是,利益相关者对系统不是只有积极作用,利益相关者有时候也会对系统设计起到消极作用。因此,我们需要考虑针对一个特定的系统,如何定义其利益相关者。

    利益相关者管理理论

    利益相关者管理第一次提出是在Edward Freeman的《Strategic Management: A Stakeholder Approach》书中。他提出对可以影响一个商业项目或特定项目的人进行理解和分类,可能有助于对管理流程进行结构化和优化。虽然这个过程跟管理领域更相关,但是别忘记我们不仅仅是敲代码的,我们是架构师,这对我们也适用。在他的理念中,Edward Freeman将利益相关者的分析和管理这个过程拆分为六个阶段:

    Image 2. Process of stakeholder analysis

    接下来我们针对每个阶段做详细的解释。

    确定所有的利益相关者(Identifying all stakeholders)

    因为利益相关者会影响项目,所以在开始设计之前所有的利益相关者都需要被确定并认真研究。这件事情可以由商业分析师或者架构师来完成。利益相关者的信息应该在项目管理者做商业分析阶段,创建架构期间以及实现设计的方案时被使用。

    不仅要确认利益相关者,还要找到影响他们的方法,这样以后就更容易就各种问题达成一致,这一点很重要。

    沟通是影响利益相关者的主要方式,应该被优先使用。这样可以让你知道他们以某种方式行事的动机。

    为了跟利益相关者进行有效的沟通,你需要对他们非常了解。否则,就不可能有效地工作。

    对利益相关者的分析是从识别出项目的所有利益相关者开始的。使用头脑风暴对确定所有的利益相关者很有用。下面的这些问题可以帮助确定利益相关者:

  • 谁的行为会导致项目不能达到预期的目标?
  • 谁对开发这个项目最感兴趣?
  • 之前是否有类似的项目?如果有,它是否成功了?
  • 所有的部门是否有必要全部参与到这个项目中?
  • 项目过程中需要解决那些事项?
  • 谁比其他人更了解数据并且可以独立设计这个系统?
  • 利益相关者分析包含以下事项:

  • 确定可能影响到该项目的利益相关者的利益
  • 确定可能会中断项目或降低项目成功的可能性的潜在难点
  • 确定需要告知项目进度的关键人物
  • 确定需要参与项目每个阶段的人员组
  • 评估整个项目中沟通的方式、规则和原则
  • 规划行动以减少利益相关者对项目过程的负面影响。
  • 请记住,设计的架构解决方案必须通过利益相关者的多个工作阶段才能被认为是成功的。

    根据OMG原则,我们可以根据对利益相关者的解释、参与和满足来区分六种项目状态:

  • Recognized:确定利益相关者。
  • Represented:确定了利益相关者参与项目的方法,并且指定了每组利益相关者的代表。
  • Involved:利益相关者代表积极参与项目,履行职责。
  • In agreement:利益相关者代表都同意。
  • Satisfied for deployment:达到利益相关者代表的最低期望。
  • Satisfied in use:该系统达到或超过利益相关者的最低期望。
  • 在确定了利益相关者列表之后,需要理解他们的立场。他们的重要性和影响力允许我们确认主要的需求并忽略不必要的需求。

    为此,您可以使用以下通常用于项目管理的利益相关者管理策略:

    Image 3. Influence-importance map

    利益相关者地图(四象图)是一个双轴图表,其中包含影响轴和重要性轴。

    影响力是指利益相关者在项目管理中的权力。利益相关者的权力在于影响项目投资的水平,参与项目预算,并影响在项目过程中就关键问题做出决策的人。

    重要性在于利益相关者对项目结果的贡献。重要性取决于如何满足需求,解决问题以及每个利益相关者的利益如何影响项目结果。例如,重要性是利益相关者的特殊知识或技能,以及项目成功必须满足的需求。

    四象图被分为四块,分别代表了利益相关者的分组。对不同的分组应该采用不同的方法。

    第一类(影响力高、重要性高)好的关系(Good relations)。有必要与这些利益相关者建立密切的工作关系,因为对他们而言,项目至关重要。他们参与实施并积极影响过程和结果。

    第三类(影响力低、重要性高)—保护(Protection)。他们需要特别的举措来保护他们的利益,因为该项目对他们来说非常重要,但他们对项目实施的影响微不足道(或者他们无法影响)。

    第四类(影响力低、重要性低)—低优先级(Low priority)。这组利益相关者参与其中并且相对感兴趣,但不是那么多。因此,从注意力分配的角度来看,这个群体的优先级较低。

    应用利益相关者知识

    在找出利益相关者列表,画出重要性-影响力四象图并创建了需求列表并被关键利益相关者认同后,就可以开始设计系统。此外,项目经理应与关键利益相关者合作,并在项目的整个生命周期中跟他们保持密切联系。项目经理必须确保利益相关者的要求在开发过程中得到实现,如果需求或利益相关者本身突然发生变化,项目经理应该通知架构师对此做出响应。

    要记住的重要的一点是,如果架构师没有提出最佳算法,这可能会导致项目变得更加昂贵,并产生不同的后果。如果架构师未能确定关键的利益相关者之一,他可能会因此失去职业生涯。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年10月22日
    下一篇 2022年10月22日

    相关推荐