有许多Agile software development种方法。您在实践中使用了哪些成功项目,以及该方法如何为成功做出贡献?
答案 0 :(得分:7)
我参与了很多声称以“敏捷”方式工作的组织,他们的处理通常似乎是基于XP(极端编程),但他们都没有跟随所有实践
那就是说,我可以评论一些XP实践
单元测试似乎证明非常有用,如果从项目开始就完成,但似乎很难进入现有的代码库并开始尝试添加单元测试。如果您有机会从头开始,测试驱动开发是一个真正的帮助。
持续整合似乎是一件非常好的事情(或者说,缺乏它真的很糟糕)。也就是说,我见过的组织通常都很小,以至于任何其他方法都显得愚蠢。
用户故事卡非常好,因为有一个物理对象可以用来确定优先级,但除非您的开发人员真正了解域名,否则它们不够详细,或者你有一个现场客户(我从未见过)。
站立式会议往往对新团队成员了解每个人以及他们的工作非常有用。老手很快就松了一口气,只是说“我还在做X”,这是他们过去一周一直在做的事情 - 需要一位强有力的领导来迫使他们深入研究细节。
重构现在是一个非常误用的术语,但是当你有足够的单元测试时,从概念上分离“改变现有代码的设计而不改变”的活动真的很有用。功能'来自'添加新功能'
答案 1 :(得分:6)
Scrum因为它显示了懒虫所在的位置。它还可以更快地识别出业务部门通常不知道他们真正希望交付的内容
答案 2 :(得分:4)
的Scrum。
每日站立会议是确保事情保持正常并取得进展的好方法。我认为让产品/市场人员以真实,有意义的方式参与这一过程至关重要。它将创建一个更加协作的环境,并消除当产品团队和开发团队分开的“孤岛”时出现的大量对抗性垃圾。
答案 3 :(得分:2)
定期回顾是帮助团队变得更有效/敏捷的好方法。 这种做法不仅坚持敏捷的特定风格,还可以帮助团队确定哪些方面运作良好,并适应不断变化的环境。
确保运行回顾展的人知道他/她正在做什么,否则它可能退化为抱怨会话。
您可以通过一系列练习来帮助他们反思并从回顾中提取价值。我建议听一下软件工程无线电的Linda Rising采访,以获得一个很好的介绍。
Google搜索“Heartbeat retrospectives”以获取更多信息。
答案 4 :(得分:1)
我一直在与一个使用XP和Scrum实践的团队合作。它非常高效。
每日站立 - 帮助我们全面了解每个人的工作内容和地点。
结对编程 - 改进了我们的代码库,并帮助消除了引入系统的“愚蠢”错误。
迭代开发 - 使用1周的迭代通过设置更直接的目标来帮助提高我们的速度,这也有助于我们确定需求量
TDD - 帮助我改变了我的编程方式,现在我没有编写任何不修复破坏测试的代码而且我没有编写任何没有测试的代码一个明确定义的要求。我们也一直在使用可执行要求,这些要求确实帮助开发人员和BA达到了要求的理解。
看板 - 实时显示我们的位置。我们有一个用于里程碑以及当前的迭代。一眼就能看出剩下要做的事情,做了什么以及做了什么和接受了什么。如果你没有在每日站立时报告一些与你解释要做的事情有关的事情。
共处一地的团队 - 每个人都可以快速掌握其他人正在做的事情。沟通是及时的,非常有成效的,我根本不会错过我的立方体。