首页 / 知识
关于体系结构:如何在仍然忠于敏捷的同时避免技术债务,即:避免违反YAGNI和避免BDUF?
2023-04-15 05:46:00

How do you avoid Technical Debt while still keep true to Agile, i.e.: avoiding violation of YAGNI and avoiding BDUF?通过马丁·福勒,通过史蒂夫·麦康奈尔获得技术债务 通过维基百科的YAGNI(您将不需要它) BDUF(前期大设计),通过维基百科 更新:为澄清这个问题,我想我也可以这样陈述并保持我的意思: "作为敏捷实践者,您如何在每次迭代中的"快速和肮脏"(试图遵守YAGNI时无意冒技术债务风险)和过度设计(BDUF)之间找到正确的平衡?" 看来,如果您坚持"计划,做,适应;计划,做,适应"敏捷思想(迭代,迭代评论),则默认情况下会避免这些事情。 BDUF与敏捷估算和计划的想法恰恰相反,如果您真的很敏捷,就不会自动成为BDUF。 发布和迭代计划会议的目的是确保您为该迭代将最有价值的功能添加到项目中。如果您牢记这一点,则可以免费避免使用YAGNI。 我强烈建议Mike Cohn撰写有关敏捷规划的书: 更新:在您澄清了在一次迭代中避免使用YAGNI和BDUF之后... BDUF ...如果在开始进行这项工作之前,我觉得没有明确定义某个功能,那么我将创建一个小的"功能"或故事来说明所需工作的设计类型部分。这样一来,较小的故事可能会有一个故事点估计值,而不是真实特征的估计值是5。这样一来,设计便随时间进入了较小的故事中,您将被迫着手进入该要素本身。 为了避免违反YAGNI,我将努力弄清楚客户对迭代中某个功能的期望。只做与客户期望相对应的工作。如果您认为应该添加一些额外的功能,请为其创建一个新功能,然后将其添加到待完成的工作中。然后,您会说服客户看到它的好处;就像客户会要求在某个特定时间点完成某项功能一样。 您似乎在说" YAGNI"意味着"快速而肮脏"。我没有看到。 作为敏捷程序员,我练习测试驱动的开发,代码审查和持续集成。
以我的经验,技术债务的主要形式是:
不知道这是否回答了您的问题,但是我很乐于编写。
|
最新内容
相关内容
关于项目管理:您是否积极管理技术债
关于项目管理:您是否积极管理技术债务?,关于项目管理:您是否积极管理技术债务?,债务,管理软件,项目管理,该如何,Do you actively manage现成的软件如何与敏捷开发配合?
现成的软件如何与敏捷开发配合?,现成的软件如何与敏捷开发配合?,敏捷开发,系统,知识,我对,How does off-the-shelf software fit in wi关于敏捷:为什么我应该使用功能驱动
关于敏捷:为什么我应该使用功能驱动开发?,关于敏捷:为什么我应该使用功能驱动开发?,测试驱动开发,方法,极限编程,驱动开发,Why should I关于敏捷:混乱:抵抗是徒劳的(不是徒
关于敏捷:混乱:抵抗是徒劳的(不是徒劳的),关于敏捷:混乱:抵抗是徒劳的(不是徒劳的),开发人员,商店,混乱,我是,Scrum: Resistance is (not关于体系结构:在REST和SOAP服务之间
关于体系结构:在REST和SOAP服务之间进行选择的指南?,关于体系结构:在REST和SOAP服务之间进行选择的指南?,链接,文档,参考,这两者,Guide t关于scrum:在敏捷环境中的要求,规范
关于scrum:在敏捷环境中的要求,规范和管理,关于scrum:在敏捷环境中的要求,规范和管理,公司,方法,如何处理,圆满,Requirements, Specs, an关于体系结构:在C函数指针中传递更
关于体系结构:在C函数指针中传递更多参数,关于体系结构:在C函数指针中传递更多参数,国际象棋,我有一个,创建一个,假设,Passing more pa关于体系结构:我应该如何构建Java应
关于体系结构:我应该如何构建Java应用程序,将类放在哪里?,关于体系结构:我应该如何构建Java应用程序,将类放在哪里?,应用程序,支持,困惑,