如果没有标准和流程改进,应该如何将它们引入组织?


10

我的任务是通过实施过程改进来改进软件开发过程,其中,我们很可能会使用CMMI for Development版本1.3作为准则,并全部或部分采用最佳实践。引入标准和流程改进以最大程度地减少开发者的反推和抵制的最佳方法是什么?


只是好奇,您是否已经知道为什么会有更多的bug通过所需的漏洞?
克里斯·皮特曼

2
@ S.Lott您是否可以提出没有标准就不能减少错误的问题?我对流程和标准的经验极大地减少了消费者在错误中看到的东西……不是因为它们不存在,而是永远不会被客户看到。
钻机2012年

@RobZ:我没问你现在有什么。我仍在尝试理解这个问题。“实施过程的改进”似乎是您所要询问的最准确的描述。我建议“标准”是一个令人困惑的术语,因为它具有正式定义,并且您没有使用该正式定义。
S.Lott 2012年

@Robz:“编码标准”不是“正式标准”。这将澄清问题。再次。“正式标准”是W3C,Posix,ISO,IEEE,ANSI标准。由公认的展位组织起草和批准。如果您在谈论编码标准,请更新问题以删除“正式”一词,并使用“编码”一词。通过这种更改,您的问题就变得很有意义。并且是重复项。
S.Lott

“关于标题中与过程改进相关的“标准”一词,“标准”一词不仅仅适用于某人编写的代码。” 什么?这是一个提示。请不要在没有某种限定词的情况下使用“标准”一词;令人困惑。如果您的意思是“编码标准”,请使用该短语。如果您使用其他“标准”一词,请在“标准”一词中加上限定词,以阐明您的意思。“标准”是含糊不清的。
S.Lott

Answers:


2
  1. 启动软件过程改进(SPI)项目。定义其范围和目标。如果标准化有适用于您的组织的自己的目标和措施,那肯定会有所帮助。
  2. 指派负责采用标准的人员。对于大型组织,也可能是几个人甚至是部门。重要的是,所有负责标准化的人员将是:
    • 足够专业,可以看到整个图片
    • 有足够的影响力以与团队打交道并帮助他们采用/谈判变更
  3. 开发涵盖您要采用的标准及其适用于您的组织的培训。只要没有经过培训的所有人都具有抵御变化的能力,这一点就非常重要。例如,当我在一家大公司工作时,我向所有新进员工指示了质量保证流程,CMMI,ISO和质量管理体系。这种训练是必须的。它有助于提高有关质量管理过程的知识,并提高员工对软件质量这一重要问题的认识。
  4. 协商更改并为您的特定需求量身定制普遍接受的做法。这将有助于避免官僚主义和繁重过程的实施,而这是真正不需要的。
  5. 建立对如何支持实施的流程改进以及它们在组织中是否足够有效的监视

如果您找到组织内真正关心质量的所有人员,这也将有所帮助。这些很有可能是最重要的资源,可帮助您促进变革并建立成熟的实践。


6

敲门学校的一些想法:

1)大多数流程改进计划将其80%的时间用于流程设计,将20%的时间用于教育和社交。翻转这些百分比。遵循的中等标准会击败没有的标准。

2)明确说明您要人们改变工作方式的原因。有什么商业案例?理想情况下,它可以使每个团队分别受益。有时,这只是系统的改进。无论哪种方式,都要使案例可见。

3)先简化然后再标准化,而不是相反。

4)您不能将其完全委派给PMO。需要招募直接经理,而当投诉到来时,业务部门的负责人则需要解除联系。

5)找到友好的早期采用者。人们会抱怨这需要多少时间。您需要可以指向的人说:“只用了15分钟”

6)对于指标,要力求定量而不是定性。否则,直到“上线”的一天之前,您的项目都是绿色的,那时一切都会减少一个月。

7)强调技术而非工具。良好的计划比MS Project更重要。

8)相对于需求进行一定程度的处理。每家餐厅都需要流程,但是Nobu和French Laundry需要的商品与McDonalds不同。与软件公司相同。

祝好运!


1
好的答案-我也将非常小心介绍您引入的过程-确保不要陷入对过程最好的事情,而不是对客户最好的事情的陷阱-即过程必须以客户为中心。另外,要小心测量-根据定义,什么是重要的而没有测量的是不重要的。测量错误的事物(每天的SLOC,错误/ SLOC等),您不会得到改善,但是测量会告诉您您是正确的。
mattnz'2

1
@mattnz-我不知道,如果正确应用错误/ SLOC可能是一个有用的指标。如果有人说他们平均1错误/ 10 SLOC,我可能会担心。诀窍是您必须知道标杆的位置,这可能很难。
rjzii 2012年

好点子。人们根据自己的指标进行优化。如果您首先生成财务指标,那么人们将为此进行优化,而会牺牲功能或客户服务。这都是关于平衡和优先事项。
MathAttack 2012年

1
用错误/ SLOC,SLOC /天来衡量我,您会惊讶于我在不添加任何有用信息的情况下编写源代码的冗长程度。例如,总是在新行上放置大括号-行越多,统计信息就越少,我马上就变得更好。给我任何量度,我将向您展示如何进行该量度使我看起来更好。
mattnz'2

1
@mattnz-这就是代码审查的目的,如果有人不必要地使他们的代码冗长,以掩盖其上充斥着错误的事实,那么奇怪的是,他们不应该开始编写代码。您还可以查看每个功能点的缺陷,这很难伪造,因为您看到的是功能数量下降的数字说明(坏符号),或者随着代码变得更好而数字开始下降(好的提示)。标志)。
rjzii 2012年

2

即使您不进行评估并得到正式的审核和评估,将您的工作基于CMMI可能也是一个好主意。关于CMMI,CMMI和其他过程改进技术(如精益和六西格玛)以及CMMI和敏捷软件开发,有大量文献可用。该SEI拥有资源的整个集合,一些免费提供的,关于CMMI的不同方面和指导不同类型的组织。

我建议深入研究实现CMMI的连续方法,而不要分阶段进行。它使我印象深刻,因为它是一种更准确地确定您的组织现在所处位置并在增加最大业务价值的领域中进行改进的有效方法。这不仅使您可以将改进工作与业务目标保持一致,而且可以快速实现进度里程碑并展示改进的效果,从而增加各个层次的支持。

但是要记住的一点是,在基层努力的情况下,流程改进通常会更加成功。当流程的变更是从上而下进行的时,人们可能会认为“处于困境中的开发人员”与沟槽中的工作方式脱节了,即使这个想法是一个好主意,也可能会有退缩。为此做好准备。

某些类型的工程过程组也可能是有益的。将受改进影响的各个组织组成部分和团队的代表召集在一起,以便听到每个人的声音。这不仅包括每个角色的代表,还可能包括各种产品开发团队。不知道您的组织结构如何,我无法确切地说出您想看谁,而是将组织中各个层次的人员都包括在内。另外,使该小组进行的讨论和决策可供组织使用,以征询意见并提出任何问题。


由于几乎没有项目团队将任何流程形式化,因此不确定推动基层工作的效果如何,这就是为什么这将是自上而下的过程。尽管如此,每个人都在关注使事情变得尽可能温和,以防止由于缺乏实际的实现而导致工作失败。
rjzii 2012年

@RobZ根据定义,您不能推动基层的努力-它必须自然而然地自下而上。除非项目团队意识到存在真正的问题,否则趋势是不进行更改并以某种方式反对被认为是不好的更改(例如使工作变得更加复杂或困难,这通常与流程改进相关,并非如此)。
Thomas Owens

正是这就是管理层将事情形式化的原因。某些软件出现了问题,他们正在寻求改变公司文化,并确保不良产品不会再次出现。
rjzii 2012年

@RobZ当管理人员介入并指示行动时,开发人员会抗拒。您不能要求文化变革,而期望它简单而安静地发生。这是一个漫长而痛苦的过程。
汤玛斯·欧文斯

没有人真的期望如此,而且我们已经遇到阻力,在这一点上,我们正在寻找使阻力最小化的方法。
rjzii 2012年

0

对于每次更改:

  • 指出1个变更及其将如何改善开发。
  • 实施更改。
  • 表现出改善
  • 删除未显示出改进的更改

显然,分析需要随着时间的流逝而进行,但是在证明其有效之前,不应接受任何更改。这就是为什么我每个周期执行不超过2-3次更改的原因,否则您通常无法衡量是否有所改善。

如果不做分析就表明对您的环境实际上是最佳实践,那么盲目地遵循最佳实践就是什么。一个最好的做法,不表明改善是最好的浪费,在最坏的情况损坏。

您的过程中的所有步骤以及方法学中的所有实践都应进行分析,并证明是有益的。如果不是,则应将其删除。 无论添加或删除步骤或实践如何,均应持续进行此分析。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.