从Agile / XP实现好位?

时间:2011-07-07 14:07:23

标签: project-management agile scrum extreme-programming

我在一家大型组织的一个初出茅庐的软件开发部门工作。在过去的几年里,我和一些(非常)少数人一直在制作相当成功的软件产品,我很乐意报告,非常易于维护。

如果使用任何特定的方法,我会说它是在短期迭代中提供功能性产品的敏捷核心,而不是长时间的客户等待。

我们的发展始于走向客户/用户群,并通过观察,访谈,评估当前工具以及建立对此的要求来评估需求。然后,我们将在迭代(大约一个月)中尽快提供核心需求,其中客户/用户具有与特定迭代中包含的功能一起使用的功能性产品。

我认为对于我个人来说,超级严格的TDD可能有点过分,但我理解正确的单元测试的价值并且理解随着团队规模的扩大它变得越来越重要 - 这是我可能做的事情现在不够重视。很多功能测试已经完成,但我知道我需要实现比现在更多的单元测试,并且随着新开发人员的加入,我不能让我的坏习惯成为常态。

所以我问你们所有的stackoverflow用户,你认为Agile / Scrum / XP /最重要/最有用的方面是什么(在这里插入你最喜欢的方法)

我很幸运能够确定在团队开始成长为合适的软件团队时将会使用哪些流程/方法。

我花了很多时间阅读各种方法并对他们进行谴责,我想对我来说最重要的是:

  • 为我们的组织和客户提供功能性产品的短期迭代,能够向赞助商/投资者/用户展示“真实”的东西并且他们可以动手使用已经走了很长的路,并使长期产品免于死亡在葡萄藤上。
  • 确定任务优先顺序的好方法 - 这对于保持上述工作顺利进行至关重要。
  • 同行评审
  • 单元测试 - 有人可以指向我的参考资料,其中包含有关单元测试的良好信息/示例,提供良好的实用性,而不会过于耗时或乏味(我不确定是否需要测试来确定在我编写接口之前是否存在类/接口,例如)
  • 时间估计 - 我想我正在寻找最好的方法来“猜测”什么时候准备就绪,而不是让团队在一个估计不合理的截止日期之前完成任务。

我知道这个问题很模糊,但感谢你看:D

TLDR :您认为Agile,XP和Scrum的哪些部分“最佳”并为健康产品做出贡献?如果你明天必须提出一个新的软件管理流程,它会包括什么?

5 个答案:

答案 0 :(得分:2)

以下是我们依赖的最佳实践(使用Scrum近5年):

  • 简短的定义迭代(30天是理想的)。
  • 商业价值优先处理用户故事的积压。
  • 所有故事的团队估计是努力(分数),而不是时间。
  • 每天开会15分钟或更短时间以发现障碍等。
  • 精简版,在sprint结束时演示了演示。
  • 一旦sprint / iteration开始,没有终止的故事没有重大改变。非常重要。
  • 团队决定何时/是否接受额外的工作。
  • 基于观察,速度向上/向下追踪。最初它是一个猜测,然后你跟踪和调整。
TDD,结对编程,持续集成等都是很好的做法,但在进入更先进的技术之前,重要的是要掌握基础知识。达到团队一致的速度,稳定的速度,冲刺一次又一次地成功结束,人们对这个过程感到满意。

如果有商务人士/采购订单要求您在“积分”中进行估算而不是时间,询问我们必须花费多少“积分”(即速度)等,您知道您已准备好转移到先进的东西。

答案 1 :(得分:1)

我认为您使用的任何方法都应该有一个专门的产品所有者,他们应该不断努力改进产品积压并设置验收标准。

答案 2 :(得分:1)

自动验收测试

根据Kent Beck的USENIX谈话“软件G力量” http://www.youtube.com/watch?v=KIkUWG5ACFY 关于提高发布频率所需的技术,自动验收测试是从年度到季度可靠获取的基本技术之一。

此外,Gojko Adzic的书“按示例规范”还有许多实际例子,说明敏捷团队如何开发和使用大套自动验收测试,形成一系列生动文档。

即使您不进行TDD,构建可以运行的自动验收测试体系以及随时看到的结果,也非常适合建立信任并改善开发团队与客户之间的沟通。他们证明你正在建设的是正确的。

答案 3 :(得分:0)

我认为你在公司上做得非常好,而且你正在寻找更高级的东西。

从技术上讲,我会看一下Continuous Delivery

该技术旨在能够在一天中的任何时间将软件运送到生产中。例如,Flickr,uses it(“在上周,共有35个部署,由18个人进行了331次更改。”)。

为此,您必须:

  • 坚固的测试工具,从单元测试到功能测试。
  • 熟悉您的部署基础架构。你必须避免停机。
  • 您的部署必须更加自动化。
  • 等。

在方法方面,我会看一下Kanban和其他Lean principles。它旨在缩短您的上市时间:从创意到生产状态。

玩得开心!

答案 4 :(得分:0)

我最重要的做法之一肯定是TDD。我不会在这方面吝啬。当我说TDD时,我也指的是真正的TDD,其中包括重构。它对我的生产力和质量贡献最大。

另一种是简单设计。努力保持事情的清洁和简单也带来了好处。