Architecture 什么类型的特定开发模式支持敏捷开发?

Architecture 什么类型的特定开发模式支持敏捷开发?,architecture,agile,Architecture,Agile,反之亦然:“什么类型的特定开发模式不支持敏捷开发 简而言之:我不是在寻找“方法论”或“理论”,我是在谈论在敏捷的迭代过程中编写代码的特定模式 显然,有些开发模式更倾向于瀑布式开发,而另一些模式则更倾向于敏捷开发 我正在寻找围绕您个人编写代码的经验的细节。这就是为什么这不是主观的原因。迭代开发是敏捷的一个必要(尽管不是充分)部分,而“瀑布”不支持它。迭代开发是敏捷的一个必要(尽管不是充分)部分,而“瀑布”“不支持它。我认为快速应用程序开发、迭代/增量开发,甚至混沌策略都支持敏捷方法 任何需要在需求

反之亦然:“什么类型的特定开发模式不支持敏捷开发

简而言之:我不是在寻找“方法论”或“理论”,我是在谈论在敏捷的迭代过程中编写代码的特定模式

显然,有些开发模式更倾向于瀑布式开发,而另一些模式则更倾向于敏捷开发


我正在寻找围绕您个人编写代码的经验的细节。这就是为什么这不是主观的原因。

迭代开发是敏捷的一个必要(尽管不是充分)部分,而“瀑布”不支持它。

迭代开发是敏捷的一个必要(尽管不是充分)部分,而“瀑布”“不支持它。

我认为快速应用程序开发、迭代/增量开发,甚至混沌策略都支持敏捷方法


任何需要在需求阶段固化一切的东西都不支持敏捷方法,例如瀑布模型、能力成熟度模型(CMMI)、牛仔编码,甚至用例驱动开发。

我认为快速应用程序开发、迭代/增量开发、,甚至混沌策略都支持敏捷方法论


任何需要在需求阶段固化一切的东西都不支持敏捷方法,例如瀑布模型、能力成熟度模型(CMMI)、牛仔编码,甚至用例驱动的开发。

我有一些要分享,但我不确定OP想要列出的是什么:

  • 结对编程——让两名开发人员共同开发任何新功能,以确保知识不会只局限于一个人

  • 测试驱动开发——首先编写测试以确保满足需求,而不是等到实现完成后才添加测试

  • 持续集成—拥有一台自动构建机器,可以验证代码更改是否破坏现有功能


我要指出的是,敏捷并非只有一种方式,因为宣言很容易被解读,可能会被曲解。

我有一些要分享的,但我不确定OP想要列出的是什么:

  • 结对编程——让两名开发人员共同开发任何新功能,以确保知识不会只局限于一个人

  • 测试驱动开发——首先编写测试以确保满足需求,而不是等到实现完成后才添加测试

  • 持续集成—拥有一台自动构建机器,可以验证代码更改是否破坏现有功能


我要指出的是,敏捷并不是只有一种方式,因为该宣言很容易被解读,也可能被曲解。

良好的人际关系:

  • 一个由开发人员组成的团队,他们相互信任,欣赏他们为团队带来的不同技能。-大多数开发人员觉得他们可以公开讲话吗?如果是,那么你有这个
  • 灵活的态度
  • 觉得没有必要证明自己“无所不知”的人
  • 有足够勇气承认错误的人
  • 尝试新事物的意愿-在有限的参数范围内(“让我们试着将其添加15分钟……如果它不起作用,我们将扔掉它。”)
  • 业务部门和开发人员之间相互尊重和热切合作“同一团队”的态度。“我们都在‘信任圈’”;-)
有助于

  • 一个对方法论毫无兴趣的企业相信开发人员会继续使用它,这是一个很大的帮助。(即无干扰)
  • 拥有一个按使用付费的应用程序确实有助于企业衡量软件发布对收入的影响。这使规划游戏非政治化,因为决策基于市场反馈
编程语言方面:

  • 运行时/调试系统,在编辑程序的同时保持程序持续运行(在每个开发步骤之间没有浪费时间和精力的大型构建)
  • 。。。您可以在其中键入一些代码,然后根据正在运行的程序立即对其进行评估。这样就不需要对某些代码的功能进行争论了——只运行它更容易、更准确
  • 。。。在您的签入中可以有微小的代码单元——例如单个方法或一个小类——在某些eliphantine源代码管理系统进行簿记时,绝对不会有等待时间
  • 。。。您只需考虑一种范式,即只考虑对象或函数或其他方面,而不考虑SQL、XML或可编程模板语言或其他非语言的内容。这意味着您可以在重构时将工作从代码库中的一个位置推到另一个位置,而无需支付“复杂性代价”来跨越边界进入SQL、XML或模板或任何其他黑客语言
  • 使用<强>一种语言,它很少有概念集成了CuleLy(SimulalTalk,Lisp,Prolog,露比),而不是由世界上所有语法黑客组成的语言——使得凡人无法理解代码的语义(如C++和Perl)
  • 通过抛出异常或以其他方式响应(而不是崩溃)来容忍失败的语言意味着您可以执行TDD,而无需一直停止、启动和重建

我已经用积极的措辞表达了这些事情,但是你可以想象这些事情的缺失或相反是消极的

良好的人际关系:

  • 一个相互信任的开发团队