15个标志你做得很敏捷

误解和“最佳实践”可能有您的团队旋转轮子,而不是持续搅拌富有成效的代码

这些迹象表明你的敏捷方法是错误的
Arqueos Weiss通过维基百科

很容易跳到带轮上并最终陷入困境。这个Maxim不可能比敏捷开发更明显。大量的组织跳进敏捷,追求其优势 - 易于拥抱变化,减少周期时间,进化建筑,等等 - 只能找到他们的最佳敏捷从业者离开公司,并且无法修复发展的不安的余地进程出错了。

大多数敏捷方法的问题不是敏捷的问题;这是敏捷,大写方法论的问题。敏捷不是一种方法。将其视为一个哲学和文化的过程,这是单程票回瀑布 - 或更糟。

幸运的是,识别出敏捷方法的迹象并不难以出错,并采取措施恢复和谐。在这里,我们检查了15个迹象,你做得很敏捷。甚至其中一个可以严重剥离您的软件开发工作。

做敏捷与敏捷

敏捷始于态度。如果公司强调敏捷而不是存在敏捷,你从一开始就错了。敏捷是一种范式,是你如何进行软件开发的一种思维转变。具体的技术和仪式随后才会出现,它们是最不重要的部分。重点是敏捷;拥抱和雇用敏捷宣言中概述的哲学,您将自动“执行”敏捷。

一定要仔细看宣言;它的措辞并非偶然。想想这意味着什么:丢掉无用的仪式、管理和文书工作;专注于工作代码和快速反馈循环;自我组织,自我检查,自我优化。这就是革命。关于如何实现宣言概述的具体实践还在不断发展。

如果您关注所有团队的单尺寸适合的敏捷“过程”,则您会犯错误。“标准”敏捷过程的概念是矛盾的 - 敏捷意味着持续适应和改善。

要修复这一点,请记住主要目标是提供工作软件,而不是遵循食谱;每个项目和团队都没有始终适用的食谱。因此,让每个团队采用自己的做法,并负责调整和改善它们。

将故事点视为目标

用户故事是Agile的一个关键面,捕获用户的角度来看软件功能要求。故事分配了点值,以估计实现故事所需的努力级别。

这些故事点既不是承诺,也不是目标。它们没有内在的意义或度量。它们是团队成员之间的非正式协议,反映了对项目复杂性和团队能力的共同理解。

你的团队的3点故事可能是另一个团队的5点故事。使用故事点作为成功的衡量标准会破坏它作为一种评估方法的有效性,并导致“操纵系统”看起来成功(达到速度X),而实际上并没有成功(交付工作的、有用的软件)。

修复程序简单:达成一致并测量产品所有者(或更好但用户)的有用目标。不要将估计或遵守的依据误认为是“成功”;成功是交付的价值。

比较团队或个人的速度

痴迷于指标几乎是大多数程序员的第二天性。但是,如果您的团队将速度(在sprint计划中使用的团队级别的每个迭代的描述点的(平均)度量)作为一个比较点,那么您就做错了。

同样,速度是仅用于估计的中性度量。比较团队速度毫无意义,因为每个团队的基本单位(故事点)是“定义”的“定义”。因为团队是独一无二的,速度比较没有价值,这样做可以鼓励负面行为和互通的竞争而不是合作。

弥补团队的个人也是如此。个人对故事点努力的贡献是分数。并且,如上所述,故事点本身不是指标。比较个人的速度,即使在同一支队上也没有意义。重要的度量标准是主观度量:通过工作软件提供的值。

最简单的修复:stop.这是适得其反的浪费和浪费时间。

写作任务而不是故事

敏捷故事模板对于根据特性对特定用户/角色的好处来构建特性非常有用。这提醒我们,我们的目标是将可工作的软件交付给那些希望从使用它中获得具体好处的人。如果您的大多数“故事”是伪装的任务,那么开发过程就变成以任务为中心(做事情),而不是以交付为中心(创造价值)。对于开发团队来说,与用户保持联系非常重要;没有用户的软件是无用的。

解决这个问题的方法是保持平衡:总是会有一些任务类的项目需要完成,但故事的规模应该足够大,能够在一次迭代中完成,所以将其分解成任务是没有任何意义的。一个75%“完成”的故事是没有用的。要么做,要么不做;没有部分信贷。如果一个故事非常复杂,不能在一次迭代中完成,并且它不能自然地划分为子故事,那么就多玩一次(参见下一节)。

从不迭代故事

如果您只是将更大的故事分解成较小的故事,所以它们可以在单个Sprint中完成,您将弄错。这种练习的结果是一套较少的凝聚力,面向任务的“故事”。相反,坚持更大,更自然的故事,让它在多个冲刺中播放。攻击端到端的故事,从功能的最小“走路骨架”开始,使能预期能力,然后在额外的行为和以后的冲刺中的元素中的层。这允许故事保持完整,从步行骨架发展到可用性。

一旦行走骨架就位,它的结构和行为可能意味着子故事,或者您可能会发现在下一个sprint中优先级发生了变化,在这种情况下,行走骨架可以放在一边。但是,如果您将故事分解为任务,因为将一个任务作为“故事”来完成似乎更容易,那么最终的软件将没有可识别的附加价值,因为任务倾向于关注断开的组件,而不是连接的价值流。

史蒂玛的错误克拉姆

Scrum是一种过程管理技术,而不是软件开发技术。寻呼的同意。没有强烈的敏捷原则的Scrum和Kanban最终恢复到瀑布。这在许多企业环境中加剧了巨大的初始积压(邀请瀑布设计而不是增量演变)和“标准化”敏捷实践。

巨大的积压

如果你担心特征越卖时间 - 从概念到生产的想法需要多长时间 - 杀死它的最佳方式是有大队列。不幸的是,许多组织仍然计划,授权和在大块中执行软件开发项目,从而导致Get-Go的巨大积压,保证队列结束时的功能将具有可怕的交货时间。

假设你要去跑去找到你听过的隐藏湖。你会用你拥有的所有东西加载背包,或者只打包你需要的东西,以便你能保持一个好的步伐?巨大的积压就像这样;您希望尽快发现/验证功能值,但您的背包从一开始就过载。

项目并不真正存在;他们是一个心理模型,而不是实际的东西。我们发明了项目,以便我们可以谈谈一个模糊的工作流,就像他们是单一的时间和努力一样。没有项目;只有产品。关键是削弱。组织围绕一组初始功能的项目,可以提供可测量的值,然后是“波浪”的小,可测量的增强。

切勿配对(或始终配对)

对编程被一些人所爱,由他人鄙视。这是一个工具,人们,而不是宗教。应该使用它适当的地方 - 是的,这几乎总是适合。

配对传播对团队的系统,工具,技术,技巧等的知识;加强人的联系;支持相互指导;在许多情况下,可以比单独工作的开发人员更快地生产更高质量的软件。如果你看一个故事并思考“两个头比这一点更好,”然后配对是一个明显的选择。如果团队中的任何人可以实施故事,那么配对可能不会有帮助。像每个敏捷的练习一样,配对是一种工具;在它有效的时候使用它。

不重构

重构不仅有助于提高代码的机械质量;它还可以帮助您从代码中学习。当重构时,您会收敛于更好的模型。现在,您的代码可以工作,但它可能感觉紧张,甚至有点脆弱。重构揭示了隐式模型,它告诉您对域的理解。在红绿重构的测试驱动开发周期中,“重构”不是可选的,以免积累技术债务,无法从编码经验中学习。

站立,但不结束

它很容易对站起来,这应该是简短的团队分享仪式,转向延长会议。将谈话限制在整个团队应该知道的事情上的简单陈述 - 你昨天做了什么,你今天做了什么,以及任何障碍或帮助所需的人。此外,您所学到的句子或两句话可能会有所帮助。就是这样。你可以做这个圆罗宾,你可以通过“走路故事墙”来做这件事,或者你的团队更喜欢。

站立不是技术讨论的场所,做出决策,提出设计,交换战争故事,重组冲刺,或者做任何事情,而不是传达群体协调所需的内容。准备好了,所以你可以听取别人所做的事情,正在做什么,并决定它是否与你有关,而不是考虑你要说的话。在相互状态更新之外的任何东西都应推迟到杂交或电子邮件。每个团队成员的立场应不超过15到30秒。

没有回雷

敏捷团队应该自我组织,选择适合他们集体行为的实践和仪式。这也应该定期检查,让每个人都参与确定改进过程的方法并采取相应的行动。这通常被称为“回顾”,是一种中立的方法,用于修正过程,而不会浪费时间指责他人。

例如,一个团队成员可能已经注意到生产用户的反馈即将到来,这表明较短的冲刺可能有所帮助。该团队同意,尝试较短的Sprint时间,并在下一个复古中重新调整,看看它是否有帮助。通过这种方式,团队的流程是不断微调的。

单尺寸适合 - 所有的“敏捷”通常会导致团队跳过回顾或减少他们没有可操作学习的仪式。如果你已经注意到你的团队进程的问题,但害怕在回顾中将它带起来,那么减速火箭已经减少到死记硬背。无法改善未审查的过程,团队成员必须感到安全,并鼓励这样做。

手动测试(或无测试)

测试对于生产操作软件至关重要,如果您尚未自动化测试,则会以显着的效率和准确性丢失。轻量级测试规范技术,如行为驱动的开发(BDD)为敏捷故事制作了优秀的伴侣。在瀑布术语中,BDD描述定义了用例,指定要求,并以一个非常紧凑的形式验收测试。

自动化这些测试用例 - 以及其余的“测试金字塔”(技术单元测试,功能集成测试,界面合同测试,用户验收测试) - 提供了一种有效且可靠的选择,以验证代码更改是否按预期工作没有打破任何东西。自动化测试是安全网,提供了信心和勇气的团队。

有关的:
12 4.
第1页,共2页
SD-WAN买家指南:向供应商(和您自己)提出的关键问题