我在一家大型组织的一个初出茅庐的软件开发部门工作。在过去的几年里,我和一些(非常)少数人一直在制作相当成功的软件产品,我很乐意报告,非常易于维护。
如果使用任何特定的方法,我会说它是在短期迭代中提供功能性产品的敏捷核心,而不是长时间的客户等待。
我们的发展始于走向客户/用户群,并通过观察,访谈,评估当前工具以及建立对此的要求来评估需求。然后,我们将在迭代(大约一个月)中尽快提供核心需求,其中客户/用户具有与特定迭代中包含的功能一起使用的功能性产品。
我认为对于我个人来说,超级严格的TDD可能有点过分,但我理解正确的单元测试的价值并且理解随着团队规模的扩大它变得越来越重要 - 这是我可能做的事情现在不够重视。很多功能测试已经完成,但我知道我需要实现比现在更多的单元测试,并且随着新开发人员的加入,我不能让我的坏习惯成为常态。
所以我问你们所有的stackoverflow用户,你认为Agile / Scrum / XP /最重要/最有用的方面是什么(在这里插入你最喜欢的方法)
我很幸运能够确定在团队开始成长为合适的软件团队时将会使用哪些流程/方法。
我花了很多时间阅读各种方法并对他们进行谴责,我想对我来说最重要的是:
我知道这个问题很模糊,但感谢你看:D
TLDR :您认为Agile,XP和Scrum的哪些部分“最佳”并为健康产品做出贡献?如果你明天必须提出一个新的软件管理流程,它会包括什么?
答案 0 :(得分:2)
以下是我们依赖的最佳实践(使用Scrum近5年):
如果有商务人士/采购订单要求您在“积分”中进行估算而不是时间,询问我们必须花费多少“积分”(即速度)等,您知道您已准备好转移到先进的东西。
答案 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,其中包括重构。它对我的生产力和质量贡献最大。
另一种是简单设计。努力保持事情的清洁和简单也带来了好处。