Process 小巧玲珑:最划算

Process 小巧玲珑:最划算,process,agile,Process,Agile,我们应该首先实施敏捷开发的哪个方面来改进我们的开发过程,为什么 我现在的处境要求我“调整”我的流程,而不是重新设计,而“敏捷”似乎是当今的口头禅。如果我们只能做出一项改变来改善某些东西——质量、上市时间、文档、透明度等等,那么什么会产生最明显、最积极的影响 如果我们选择正确,我们将能够做出第二个选择。:-) 更新:您当前的SDLC是什么? 环境:本质上是“重启”,一小部分开发者;在全球部署了10^5-10^6 LOC和数万个LOC的传统产品;产品相互依赖性强;多年来增加的重要功能,包括许多一次性

我们应该首先实施敏捷开发的哪个方面来改进我们的开发过程,为什么

我现在的处境要求我“调整”我的流程,而不是重新设计,而“敏捷”似乎是当今的口头禅。如果我们只能做出一项改变来改善某些东西——质量、上市时间、文档、透明度等等,那么什么会产生最明显、最积极的影响

如果我们选择正确,我们将能够做出第二个选择。:-)

更新:您当前的SDLC是什么?
环境:本质上是“重启”,一小部分开发者;在全球部署了10^5-10^6 LOC和数万个LOC的传统产品;产品相互依赖性强;多年来增加的重要功能,包括许多一次性的、不重构的功能;紧凑的时间表;表面质量保证;没有验尸报告或“流程大师”

典型过程:

  • 由所有利益相关者进行设计/规范审查
  • 对一个或多个功能/修复进行编码
  • 修改设计/规格以考虑意外情况
  • 测试特征,记录缺陷
  • 确定新任务和剩余任务的优先级
  • 修改设计/规范/进度表
  • 根据需要返回到步骤2
  • 发布测试版,记录反馈
  • 根据需要返回到步骤2
  • 正式发布

  • 感谢您提供了这么多有用的建议和见解

    组建一个跨职能团队,由程序员、测试人员、技术编写人员以及可能的销售/服务人员组成。让他们认识到“完成”的概念,即要完成的事情是编写、测试、记录、安装、部署并准备好供客户使用的事情


    这一点很重要,因为除非来自不同职能领域的每个人都聚在一起,专注于为客户提供服务的单一目标,否则您无法实现敏捷框架的任何其他方面。

    迭代开发。在小迭代中工作(比如说2周),在每次迭代结束前准备好应用程序,也就是说,您的测试人员应该乐于向您的客户发布结果


    这是核心。你可以在此基础上继续努力。

    敏捷现在是一个流行语,但请记住它不是一个;它不会像那样修复您的开发过程。您可能想阅读有关敏捷开发的文章,以平衡宣传

    如果你没有掌握敏捷的核心,那么敏捷开发的某些方面可能会很困难。敏捷比任何东西都重要一种思维方式:要灵活,接受事情会改变,在短时间内编写代码,专注于完成一个或几个功能。与获得单一、完整、单一的规范相反,编写所有代码、文档,然后发布


    如果你想证明敏捷开发是有效的,我可能会投票支持使用sprint来展示“尽早发布,经常发布”的含义。

    迭代构建

    当我们开始在一致的基础上构建时(在我们的案例中,每周或每周两次),我们看到了最大的改进

    当每一个构建产生时,我们与开发团队、QA团队和产品管理团队坐下来,创建了一个包含在新构建中的工作列表

    然后,每个人都帮助回答了下一个构建中应该包含什么的问题


    从那以后,我们增加了敏捷开发的许多其他特性(包括试图不折不扣地实现scrum),但没有什么比迭代构建更能给我们带来“划算”的效果了。

    如果您还没有进行单元测试,请从单元测试开始。如果您正在进行单元测试,请切换到测试驱动开发。这些都很容易添加到现有流程中,并将立即产生回报。当您准备好处理流程变更时,引入迭代开发。如果您当前的流程已经是迭代的,那么就开始频繁地向客户发布迭代,以获得反馈

    如果我必须总结一下“敏捷”方式,我会说尽早并经常交付高质量的业务价值。上述实践将使您在这条道路上走很长的路

    [编辑]我想我的建议是采取一种敏捷的方法来采用敏捷方法,并从能够立即提供大量价值的简单事情开始。

    参见

    我的建议是先从TDD开始。这很容易做到,对质量有着深远的影响

    这有几个部分

  • 每个人都必须获得这些工具(JUnit或其他——在某些文化中,这可能很难做到)

  • 管理者必须要求完成测试。他们绝不能绕过单元测试。一旦有人说“这些测试不重要,无论如何都要发货”,你就已经从TDD中撤销了所有的好处

  • 您必须通过测试用例进行管理:编写了多少,通过了多少。您必须通过测试用例定义功能:功能[X]有[n]个测试用例,其中一些已经完成,一些正在进行中


  • 这完全取决于您现有的流程,但我要告诉您,我们采取的最好措施之一是了解项目积压和每日三个问题的概念(自上次见面以来,您在做什么?今天您打算做什么?阻碍您前进的障碍是什么?)早上开会,看看我们在哪里,以及我们可以做些什么来朝着我们的短期迭代周期终点前进

    能够看到要做的工作的动态积压,现在正在做什么,以及下一次迭代将要做什么,这是很好的。能够了解单个开发人员的位置并帮助他们消除前进中的任何障碍是很好的。它使开发人员不必担心

    无论如何,这是我的想法。它为我们工作。

    自动测试
    -----> [Stress] <--o-- / --o--> [RunTests]
    
    [TestFirst] <--o-- / --o--> [Stress]