哪种类型的特定开发模式支持敏捷开发?

时间:2009-05-04 16:31:47

标签: architecture agile

反过来说:“什么类型的特定开发模式不支持敏捷开发?

更简洁:我不是在寻找“方法论”或“理论”。我正在讨论在敏捷的迭代过程中编写代码的特定模式。

显然,一些开发模式更适合瀑布。其他人,敏捷。

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

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

良好的人际关系方面:

  • 一支由开发人员组成的团队,彼此互相信任并欣赏他们为团队带来的不同技能。 - 大多数开发者都觉得他们可以公开发言吗?如果是,那么你有这个。
  • 灵活的态度
  • 认为不需要证明他们'知道所有'的人
  • 有足够勇气的人承认他们错了。
  • 愿意尝试新的东西 - 在有限的参数范围内(“让我们试着将它加标15分钟......如果它无处可去,我们会扔掉它。”)
  • 企业与开发者之间的相互尊重和热切合作 - 一种“同一团队”的态度。 “我们都在'信任圈'里面'”; - )

帮助的业务条件

  • 对方法论没有兴趣的业务,信任开发人员继续使用它是一个很大的帮助。 (即没有干扰)
  • 拥有按使用付费的应用程序确实可以帮助企业衡量软件版本对收入的影响。这使计划游戏非政治化,因为决策是基于市场反馈。

编程语言方面:

  • 运行时/调试系统在您编辑时让程序连续运行(没有时间浪费,在每个开发步骤之间吸收大量的构建。)
  • ...您可以输入一些代码,然后立即根据正在运行的程序对其进行评估。这样就无需讨论某些代码会做什么 - 运行它会更容易,更准确!
  • ...您可以在办理登机手续中微小的代码单元 - 例如个别方法或小班 - 当一些eliphantine源控制系统进行簿记时,肯定没有等待分钟
  • ...你只需要在一个范例中思考 - 即只在对象或函数或其他任何方面 - 没有SQL,XML或可编程模板语言或其他语言上的黑客入侵。这意味着当你进行重构时,你可以在代码库中将工作从一个地方推到另一个地方,而无需支付“复杂性”来跨越边界到SQL,XML或模板或其他任何黑客语言......
  • 使用一种语言很少整合(Smalltalk,Lisp,Prolog,Ruby),而不是由世界上每种语法黑客组成的语言 - 这使得凡人不可能理解代码的语义(如C ++和Perl)
  • 通过抛出异常或以其他方式响应而不是崩溃来容忍失败的语言意味着您可以在不停止,启动和重建的情况下执行TDD

我已将这些事情中的大部分用于表达,但您可以将这些事情的缺席或相反视为否定......

答案 2 :(得分:1)

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

答案 3 :(得分:0)

我有几个要分享,但我不确定这些是OP想要列出的内容:

  • 结对编程 - 在任何新功能上都有一对开发人员,以确保知识不仅仅与一个人隔离。

  • 测试驱动开发 - 首先编写测试以确保满足要求,而不是等到实施完成后再添加测试。

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

我会注意到,只有一种方法可以成为敏捷,因为宣言对解释非常开放,可能会被歪曲。