acm-header
登录

ACM通信

实践

美国职业棒球大联盟SEMAT:为什么高管应该关心?


大联盟SEMAT,插图照片

信贷:雨果·费利克斯;Iwona Usakiewicz / Andrij Borys Associates

回到顶部

在当今竞争日益激烈的世界里,董事会和高管们要求首席信息官和他们的团队“以更少的投入创造更多”。研究表明,没有任何真正令人惊讶的是,没有适合所有软件计划的一刀切的方法,基于实践的方法具有一些轻但有效的秩序和治理程度是大多数软件开发部门的目标。

软件工程方法和理论(SEMAT)是一个协作计划,它的任务是为软件工程提供一个基础,基于一个与实践无关的元素的内核,并由一种语言支持,该语言允许根据需要以尽可能轻或尽可能详细的方式描述最佳实践。然后,这些可以由团队根据他们努力的环境进行选择,从而确保组织既不会陷入一个对所有人开放的实践,也不会将其业务限制在一个过程的紧身衣中。

高管们有理由关心SEMAT。该计划通过在团队和组织级别交付价值来支持“以少取多”的目标。项目将始终停留在理论层面,除非并直到通过实验证明,SEMAT的案例通过实际案例研究得到了强有力的支持。

根据Gartner的“2014年十大CIO业务和技术优先事项”,CIO的任务分为业务实现和效率,反映了CIO在组织的这两个领域的贡献的重要性。1这显然是一个艰巨的挑战,“用更少的钱获得更多”这句话经常在IT高管及其领导团队的对话中听到。可以做些什么来获得真正的效果,以及主要IT组织的软件功能如何做出反应?

为了支持这一挑战,2014年Gartner应用程序架构、开发和集成(AADI)峰会上进行的一项调查的受访者指出,试图通过围绕单一开发过程进行标准化来实现事过其实并不是解决之道。7结果反映出没有找到“银弹”通用方法(这并不奇怪!),软件工作需要基于其特定的环境使用最有效的实践。受访者继续建议,在基础层面上,确保能够度量端到端工作的有效性是所有应用程序开发的关键需求。

该调查承认,虽然敏捷运动帮助加速了开发,但受访者和他们的CIO领导仍然在寻找某种程度的严密性、结构和治理,以便更好地与业务保持一致,行为更可预测,度量和解决风险,最后,更好、更快、更便宜地交付业务价值,让利益相关者更满意(BFCH指标)。

当然,“敏捷”可以说是任何软件努力或任何软件组织的目标(毕竟,谁不想敏捷呢?)然而,同样的一组敏捷实践并不一定适用于所有的项目和团队。实际上,在某些努力中,特定的敏捷技术或实践可能是不可能的。以一家银行的项目组合为例。任何时候,在许多方面都存在巨大的差异:纯开发项目需要不同于维护项目的方法;与新的消费者驱动的图形化前端开发相比,高度规范的软件项目,如财务清算,可能需要更严格的需求文档;而且,简单的独立应用程序可能需要比替换企业应用程序服务器等体系结构更改更快的节奏。因此,这就产生了在单个组织中对多个实践替代方案的需求。

AADI峰会调查的结论是,标准的一刀切的过程不应该是2014年的优先事项,一些秩序和治理是必要的,以防止如果不加以检查,可能成为一个自由的实践,当考虑到一个大型组织的应用程序开发环境的现实时,这当然是有意义的,就像在银行的例子中一样。

SEMAT计划支持AADI峰会调查的结果,以及更一般的CIO目标“以更少的投入获得更多”,通过在组织和团队级别交付价值。

回到顶部

引入胡萝卜

自2010年以来,来自业界和学术界的专家在SEMAT的旗帜下合作,明确地试图“基于可靠的理论、经过验证的原则和最佳实践重新发现软件工程”。作为这一旅程的第一步,他们创建了Essence,这是一种用于改进软件开发方法的内核和语言,很快将被对象管理小组(OMG)批准为标准。5很明显,该标准是行业中各种可用实践的基础——敏捷与否。

SEMAT计划和Essence内核使组织能够建立一个环境,在这个环境中,他们可以为正确的工作和正确的上下文使用正确的实践。实践是建立在独立的、坚实的基础(内核)上的,它包含了轻量级的、但适合业务的顺序和度量级别。这种方法在软件工程中是首创的。

在开发软件时,精髓内核包括“我们总是拥有的东西”和“我们总是做的东西”。它适用于所有的软件开发参与者,无论是敏捷的还是前敏捷的。SEMAT采用了几个基本的新思想。其中一种叫做α概念,这让团队专注于而不是在描述.团队可以以独立于实践或方法的方式来度量他们工作的进展和健康状况。在任何时候,团队都可以确定它现在在哪里,下一步要去哪里。它使团队以结果为中心,而不是以文档驱动或以活动为中心。alpha概念支持其他一些想法,例如,方法是构建在通用内核之上的实践的组合。由于alpha概念,SEMAT已经能够创建一个健壮的、可扩展的、直观的内核。

关于SEMAT的更完整的描述可以在以前的文章中找到。2,3.

回到顶部

Semat对大型组织的价值

事实上,软件界有大量的方法——也许已经开发了超过10万种方法,尽管许多方法只使用了一次以上。其中一些被品牌或标签所熟知,如Rational统一过程(RUP)、Scrum和极限编程(XP),但大多数都是从教科书或其他资源中获得的想法,在构建它们的单一环境之外没有重用的机会。SEMAT的发展表明,在所有这些方法的下面都有一个共同的基础内核在开发软件时,“我们总是拥有的东西”和“我们总是做的东西”。这些东西构成了软件工程的本质,现在被包含在《本质》中。5

如前所述,大型组织由不同的人员执行不同的项目。如果没有可接受的内核来共享,协调开发工作就会变得不必要地复杂,因为团队必须在每个项目开始时花费有限的时间和精力来决定如何工作。这将导致大量的工作浪费、项目延迟、开发人员的挫败感和客户的不满。所有这些因素都有可能损害CIO最重要的优先事项“以更少的投入获得更多”。效率低下既发生在项目/团队(努力)级别,也发生在组织级别。为了量化这一点,考虑一下如果开发团队不需要提出一种具体的新工作方式,而是可以从一个共同的基础出发,然后添加已经在实践库中发布的、经过充分验证的(可能是敏捷或精益)想法,那么它可能给组织带来的价值。

Essence内核在团队和组织级别都有好处。为了使这个讨论能引起读者的共鸣,让我们介绍两个角色:史密斯,一个项目负责人;戴夫是一家大公司的高管,这家公司一直在努力改进软件开发方式。该公司已经投资并实现了能力成熟度模型集成(CMMI)评级,然后采用了统一过程,最近还对敏捷方法进行了试验,并在一些团队中成功地应用了敏捷方法。

回到顶部

确保团队的成功

在团队层面,目标是确保努力的成功,这是Smith负责的。成功意味着在给定的时间和预算内,以正确的质量交付客户真正想要的东西。成功还意味着他的团队充满动力,有效合作,基本上是一个快乐的团队。这需要四种技能:对合适的工作使用合适的方法;衡量项目进度和健康状况;有效的协作;以及基于中间立场的决策。

对手头的工作使用正确的方法.经验丰富的Smith明白(正如Gartner AADI调查的受访者所理解的那样)没有一种通用的、面向未来的软件开发方法。如前所述,Smith的组织采用了CMMI、统一过程和敏捷方法。史密斯并不反对这些方法中的任何一种,事实上,他认为每一种方法都有优点。问题是,在过去,他的组织在任何时间点都只规定了一种运行开发的方式。

尽管Smith负责小型增强的同事发现Scrum很有用,但Smith发现Scrum本身并不适合他所负责的大型企业开发。Smith还注意到他的组织以前的基于CMMI和统一过程的方法也是不充分的。在每个项目中,史密斯仍然必须对强制性的工作方式进行重大调整,以实现一个合适的方法。实际上,他创造了自己的变体,从而增加了“10万种方法的问题”。做出和建立这样的调整可不是件容易的事,因为史密斯必须与他的团队成员进行沟通,他们都有不同的背景和观点。Smith想让他的队友们有一个更好的方法,可以很快就如何完成每个项目达成一致。

轻量级内核及其对系统地结合实践以创建各种“刚刚好”的方法的支持(都基于相同的公共内核),允许组织为开发团队提供正确的方法来承担手头的每项工作,支持每个组织的特定文化、标准和强制实践。

能够准确度量项目进度和运行状况.如果说Smith学到了什么,那就是软件开发是一项复杂的工作,项目的进展和健康状况必须从多个角度考虑,例如,涉众的满意度;需求(需求随着软件系统的发展而增长);软件系统;等等。然而,问题在于史密斯的公司没有能够全面帮助每个团队评估进展和健康状况的治理程序。事实上,以前没有一个普遍接受的框架能够做到这一点。


SEMAT计划和Essence内核使组织能够建立一个环境,在这个环境中,他们可以为正确的工作和正确的上下文使用正确的实践。


每个alpha(即机会、涉众、需求、软件系统、团队、工作和工作方式)涵盖一个维度,为每个alpha定义的状态提供了进度和健康状况的指示.例如,Essence将软件系统的状态标识为已选择的体系结构、可演示的、可用的、准备好的、可操作的和退役的。这些状态中的每一个都指示了软件系统的开发已经进行了多远,以及团队接下来应该做什么来推动软件系统的进展和健康发展。现代方法也推荐了类似的思维方式,但只在单一维度上(例如,看板关注的是工作alpha)。另一方面,本质更全面、更全面,因为它是多维的(也就是说,它关注所有的阿尔法),因此能更准确地描绘进步和健康。更重要的是,与之前的尝试(如在CMMI和统一过程中)不同,Essence以轻量级的方式实现了这一点。

使团队成员有效合作的能力.每次Smith开始一个项目时,他必须组建一个由来自组织不同部分的成员组成的团队,甚至可能来自不同的承包商组织。团队成员需要就如何合作达成一致。例如,他们需要就使用哪些实践达成一致。因为他们有不同的背景和经历,这往往不是小事。准备团队成员可能和重组工作一样复杂。作为进一步的证据,在过去20年里发表的许多关于项目失败原因的文献中,团队成员之间缺乏沟通经常排在第一位。6

来自不同组织的个人有一个共同的起点。这有助于团队更有效地沟通,从而更快地提高生产力,即使他们的原生或喜爱的工作方式有显著不同

基于中间立场的决策.决策的基础应该是快速的健康检查,而不是不灵活的过程或什么都不做。Smith的工作中一个不可或缺的部分就是与他的队友们一起决定在哪里投入他们的努力来取得进展并处理项目风险。有些需求可能很模糊,需要与客户代表进一步探讨;一些技术问题可能需要调查;有些缺陷可能需要引起注意。然而,在此之前,Smith必须在规定的治理程序中工作,该程序要求在项目的特定里程碑上生成特定的文档,并以特定的顺序进行特定的活动。这是一个重量级的、无效的方法,没有帮助史密斯和他的队友做出相关的决定。然而,对于Essence,重点是生成的结果和在项目环境中处理风险。

Essence提供了一个框架,它支持更快、更有效、更自主的决策,并可以帮助组织发展其当前的治理实践,以满足当前挑战的需要.关于Essence如何完成这一点的一个例子是通过alpha、alpha状态和检查列表,根据当前的项目上下文,使团队专注于项目中任何点上最重要的东西。这为团队在实现预期结果方面的表现提供了独立的检查。无论团队使用什么方法和实践,都可以应用此检查。今天,当涉及到有效管理成本和性能时,我们更好地理解了每个项目上下文的重要性。这就是Essence与之前方法的区别所在,因为它有助于基于当前状态和目标目标状态在正确的时间提出正确的问题。


想象一个可互换实践的库,使用一种可以根据情况需要轻松或正式的语言编写,并围绕这样一个事实构建:基于某些关键元素的进展,所有软件努力都是成功的。


总之,使用SEMAT内核在团队级别提供了许多好处。想象一个可互换实践的库,使用一种可以根据情况需要随意或正式的语言编写,并围绕一个不可改变的事实构建,即基于某些关键元素的进展,所有软件努力都是成功的。团队可以根据工作的需要从该库中进行选择组成他们的工作方式而不是创建它。他们可以根据自己的情况建立最佳的方式。他们可以使用独立于实践和方法的标准度量标准来衡量项目的进展和健康状况,而这些实践和方法是团队可以避免的发明和干扰。团队的新成员不需要从头开始学习所有的东西。所有这些因素都有助于提高团队的时间效率。减少这种浪费的时间和精力,除了帮助团队实现其目标外,显然对整个组织有累积的好处,从而帮助CIO实现“以少做多”的目标。

回到顶部

组织水平增长与竞争力意味着“以更少的投入获得更多”

正如本文开头所讨论的,在组织级别,目标是业务增长。在我们的场景中,这是Dave负责的。他知道,只有当他的客户满意并不断回头客,为组织提供更多的商业机会时,他的业务才会增长。他知道,通过拥有一个高度积极和驱动的团队,可以提高上市速度和相关性。他也知道他需要管理一个严格的组织。因此,Dave希望引入一些机制来培养一种持续学习和鼓舞人心的文化。Dave不仅希望他的团队互相学习,还希望他们向行业内的其他团队学习。这需要一些改变。

共同的词汇和知识体系.有人可能会认为Dave的团队会使用相同的词汇,因为他们在同一家公司工作,但事实并非如此。在他的组织中,许多团队使用不同的术语,并且通常相同的词具有不同的含义。为了让一个团队从另一个团队学习成功的实践,它必须跨越这个不必要的语言障碍。

通过使用内核这个单一词汇表来描述实践,本质打破了这种语言障碍。此外,Essence提供了组织实践的结构,以便能够快速地发现、评估和应用实践。

团队还可以将他们所学到的回馈给这些实践,从而构建一个结构化的知识库。这也为组织中的个人提供了学习路线图。他们从图书馆中掌握的练习越多,他们就越有能力。公共实践库的好处超越了单个项目。例如,它可以在很大程度上帮助许多失败的it项目中记录的通信问题。6

授权团队改变他们安全工作的方式.这不仅要从小事做起,而且要从大事做起。戴夫想鼓励他的团队创新,但同时他又担心他们可能会陷入混乱。因此,他的方法倾向于保守,给像史密斯这样的团队领导的灵活性是相当有限的。然而,有了Essence和在内核之上的实践层,组织就有了一个经过验证的框架,他们可以从这个框架中改变安全工作的方式。这允许Dave专注于指定最少数量的具体练习,即他需要团队以一致的方式“练习”的练习。同时,他还可以授权团队在方法的其他领域进行创新,在适当的时候添加和替换实践。

团队获得了一种可控制的、直观的方法来替换现有的实践或添加新的实践。这使团队能够在适当的情况下安全地以主要的方式正确地确定方法的大小。

持续的绩效提升/真正的学习型组织.正如前面提到的,Dave的组织已经采用了CMMI,统一过程,以及最近的敏捷实践,每一个都提供了不同的重点。然而,当采用一种新的方法时,他的组织不幸地抛弃了他们过去学到的许多好的实践,以及他们想要摆脱的部分。这对该组织来说是一个巨大的损失。事实上,它导致了重大而昂贵的变革。例如,当他们引入敏捷实践时,他们必须彻底改变架构工作的完成方式。通过采用Essence内核并使用实践而不是单一方法,Dave的组织成为了一个真正的学习型组织,不断增长和改进他们使用的实践集,并提高他们的开发能力。

团队可以很容易地理解什么是有效的,以及他们需要在哪里调整他们的实践——删除或改进不成功的实践,并添加适当的新实践,以解决开发组织不断变化的需求。

其结果是,软件开发部门不仅被允许,而且被鼓励去探索行业中新技术和实践所呈现的可能性。成功的实践(好的想法)可以插入到轻量级的Essence框架中,并迅速并入到组织的工作方式中。这样的自由在知识工作者的环境中是高度激励的,激励是吸引和保留行业中最好的员工的关键,因此是软件组织中提高效率的关键。

组织也从SEMAT中受益,不仅仅是因为来自团队的累积收益。工作方式或方法的基于实践的方法意味着组织在这个层次上进行投资,有更大的重用机会,而不是创建特定于项目的方法的定制描述。资源组掌握的是实践而不是方法,使他们能够更容易地在团队之间移动,并在工作中给予CIO更大的灵活性。这种更高效的实践管理,结合人的更高适应性和有效性,支持了业务强加的“以少取多”的要求。

回到顶部

胡萝卜的成功故事

毫无疑问,本质是一个强大的工具,但它必须被恰当地使用。SEMAT方法多年来帮助了许多大型组织和开发工作,无论是在一般情况下还是在特定场景中。4

离岸开发.安信背后的理念已被应用于一项重大举措,涉及一家知名的大型日本消费电子公司,该公司将开发外包给了中国的一家供应商。这个客户从来没有外包过,也不了解即将到来的风险,也没有看到用例和测试驱动方式迭代开发的价值。这家中国外包商习惯于遵循客户指示的方法。这些方法往往是传统的瀑布方法。因此,以良好的沟通和清晰的愿景开始是一个巨大的挑战。解决方案是从使用Essence内核alpha开始的,以就团队应该如何组织和组成达成一致。字母状态卡的轻量级直观特性能够帮助客户和供应商团队领导可视化他们可以一起工作的方式。

从8名客户员工开始,逐渐发展到10名客户员工/20名供应商员工,然后发展到30名客户员工/50名供应商员工。在努力的最后,有80名客户员工和200名供应商员工参与其中。

当成员加入开发团队时,他们得到了关于内核和新实践(迭代开发、用例驱动开发、测试驱动开发)的简短介绍。项目经理监视开发的状态和团队的规模。当一个团队变得太大时,它就会被拆分,新的团队领导接受内核培训,以理解作用在团队上的力量。显然,每个团队和个人的参与都不是一成不变的,即使是在这一重大努力中。Essence不仅能够帮助这些团队起步,还帮助他们成长。

协作式全球软件开发.在Essence内核提供的基础上,一家主要的全球再保险公司建立了一个协作模型家族,覆盖了软件和应用程序开发工作的整个范围。四个协作模型建立在同一内核上,来自同一组12个实践。这些模型是探索性的、标准的、维护的和支持的。每个都定义了适合于所承担的工作类型的轻量级治理过程,并为团队提供了足够的实践以开始。

这对组织和当地都有许多好处,包括:

  • 在服务机构工作的人的统一.应用程序开发组被组织成许多独立的服务。团队是通过在需要的时候利用不同服务部门的成员而形成的。内核的使用提供了一个公共基础,允许这些团队快速聚集在一起,并确保所有人使用相同的语言。
  • 启用灵活的采购政策.采用基于内核的方法还允许各种服务通过利用外部资源和供应商安全地伸缩其容量。使用内核可以让每个人快速了解工作方式,并容易理解他或她的角色和职责。
  • 增加了敏捷性和改进了项目性能.通过关注将开发好的软件所需的服务和团队工作结合起来的实践,组织已经能够授权团队和他们所利用的服务持续地检查和适应,并在他们的日常工作中安全地采用敏捷和精益思想。
  • 全球合作.该公司的应用程序开发团队遍布世界各地。通过提供一种标准的、轻量级的工作方式,实现了更大的全球协作,在某些情况下还实现了全球采购模式。

回到顶部

标准应用程序生命周期管理工具

许多公司已经使用了Essence方法来帮助建立与实践无关的工具和应用程序生命周期管理框架,包括:

  • 一个主要的系统集成商组装了一个开源的、低成本的工具环境,以支持围绕Essence内核工作的分布式团队,以及它对实践组合和执行的支持。该环境作为组织服务运行,并已成功地用于各种项目。本质中固有的灵活性允许使用相同的工具和实践来支持敏捷和瀑布式的工作方式。
  • 一个主要的英国政府部门引入了一个基于内核的敏捷工具集,以独立于实践的方式实现严格的敏捷性和跟踪项目进度和运行状况。这允许团队在一致的、有效的、轻量级的治理框架中采用他们所选择的敏捷实践。它还帮助团队保持正轨,避免向敏捷工作方式过渡时可能出现的一些陷阱。

在这两种情况下,内核提供的公共基础和alpha的结果焦点使工具得到广泛采用,而不影响团队的自主权和授权。

回到顶部

变得更好、更快、更便宜、更快乐

一种方法的有效性应该通过您开发的软件有多好、多快、多便宜以及您的客户和员工有多高兴来衡量。更好的方法可以改善所有这些因素。更好的软件意味着提高产品的竞争力。更快的速度是产品进入市场的关键。更便宜通常是更快的副作用,但也来自自动化。更快乐的客户有很多来源,其中之一就是创造更好的用户体验。

更好、更快、更便宜、更快乐都是CIO优先考虑的因素(也就是说,用更少的钱获得更多)。SEMAT提供了一个基础,允许大型组织的应用程序开发部门对所有这些元素进行改进,从而形成一个由积极的专业人员组成的更有效的团队,真正为组织的竞争力做出贡献。

组织不需要等待才能从Essence内核中受益。团队和部门可以从今天开始受益。本质带来的主要价值是防止对已知事物进行昂贵的再创造和不必要的再学习。

Essence可以帮助您的组织到达您知道您需要去的地方,并且它将帮助您更快、更便宜地到达那里,因此您可以为未来带来的任何事情做好准备。

ACM队列的q戳相关文章
queue.acm.org

软件工程的本质:SEMAT内核
Ivar Jacobson, Pan-Wei Ng, Paul McMahon, Ian Spence和Svante Lidman
http://queue.acm.org/detail.cfm?id=2389616

与史蒂夫·伯恩、埃里克·奥尔曼和布莱恩·坎特里尔的对话
http://queue.acm.org/detail.cfm?id=1454460

敏捷Memeplex中的航行
Philippe Kruchten
http://queue.acm.org/detail.cfm?id=1281893

回到顶部

参考文献

1.Gartner Inc .。2014年CIO的十大业务和技术优先事项;www.gartnerinfo.com/sym23/evtm_219_CIOtop10%5B3%5D.pdf

2.雅各布森,我,吴,p - w。,McMahon, P., Spence, I., Lidman, S. 2012. The essence of software engineering: the SEMAT kernel.ACM队列1010 (2012);http://queue.acm.org/detail.cfm?id=2389616

3.雅各布森,我,吴,p - w。,McMahon, P. E., Spence, I., Lidman, S.软件工程的本质:应用SEMAT内核.addison - wesley, 2014年。

4.雅各布森,我,吴,p - w。,Spence, I. The essential unified process.象博士的杂志(2006年8月)。

5.对象管理组织。本质:软件工程方法的内核和语言;http://semat.org/wp-content/uploads/2014/02/Essence_final_submission_18Feb13.pdf

6.Rosencrance, L.调查:糟糕的沟通导致大多数IT项目失败;《计算机世界》, 2007;http://www.computerworld.com/s/article/9012758/Survey_Poor_communication_causes_most_IT_project_failures

7.Serena Software Inc. 2014年IT优先级调查:应用开发开始关注业务。在Gartner应用架构、开发与集成(AADI)峰会上进行;http://www.serena.com/index.php/en/solutions/app-dev-delivery/infographic-application-development-priorities-2014/

回到顶部

作者

Ivar JacobsonIvar Jacobson International的主席,是组件和组件体系结构、用例、统一建模语言和Rational统一过程之父。他对现代业务建模和面向方面的软件开发做出了贡献。

潘维Ng指导大型系统开发,每个版本涉及数百万行代码和数百人,帮助他们过渡到精益和敏捷的工作方式,不忘记改进他们的代码和架构,并通过用例和方面进行测试。

伊恩·斯宾塞是Ivar Jacobson International公司的CTO,也是SEMAT内核开发团队的领导。作为一名经验丰富的教练,他为数百个项目引入了迭代和敏捷实践。

保罗·e·麦克马洪pemcmahon@acm.org)是一个独立的顾问,专注于指导项目经理、团队领导和软件专业人员在受限环境中精益和敏捷技术的实际使用。


©2014 0001 - 0782/14/04 ACM

允许为个人或课堂使用部分或全部作品制作数字或硬拷贝,但不得为盈利或商业利益而复制或分发,且副本在首页上附有本通知和完整的引用。除ACM外,本作品的其他组件的版权必须受到尊重。允许有信用的文摘。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,都需要事先获得特定的许可和/或费用。请求发布的权限permissions@acm.org传真(212)869-0481。

数字图书馆是由计算机协会出版的。版权所有©2014 ACM, Inc.


没有发现记录

Baidu
map