DevOps:DevOps 和敏捷:究竟有什么区别?
本文插图
两者之间的区别在于开发完毕之后发生的事情 。 -- Taz Brown(作者)
早期 , 软件开发并没有特定的管理流程 。 随后出现了 瀑布开发流程 (Waterfall) , 它提出软件开发活动可以用开发和构建应用所耗费的时间来定义 。
那时候 , 由于在开发流程中没有审查环节和权衡考虑 , 常常需要花费很长的时间来开发、测试和部署软件 。 交付的软件也是带有缺陷和 Bug 的质量较差的软件 , 而且交付时间也不满足要求 。 那时候软件项目管理的重点是长期而拖沓的计划 。
瀑布流程与 三重约束模型 (triple constraint model)相关 , 三重约束模型也称为 项目管理三角形(project management triangle) 。 三角形的每一个边代表项目管理三要素的一个要素: 范围、时间和成本 。 正如 Angelo Baretta 写到, 三重约束模型“认为成本是时间和范围的函数 , 这三个约束以一种确定的、可预测的方式相互作用 。 ……如果我们想缩短时间表(时间) , 就必须增加成本 。 如果我们想增加范围 , 就必须增加成本或时间 。 ”
从瀑布流程过渡到敏捷开发 瀑布流程来源于生产和工程领域 , 这些领域适合线性化的流程:正如房屋封顶之前需要先盖好支撑墙 。 相似地 , 软件开发问题被认为可以通过提前做好计划来解决 。 从头到尾 , 开发流程均由路线图清晰地定义 , 沿着路线图就可以得到最终交付的产品 。
最终 , 瀑布模型被认为对软件开发是不利的而且违反人的直觉 , 因为通常直到开发流程的最后才能体现出项目的价值 , 这导致许多项目最终都以失败告终 。 而且 , 在项目结束前客户看不到任何可以工作的软件 。
敏捷(Agile)采用了一种不同的方法 , 它抛弃了规划整个项目 , 承诺估计的时间点 , 简单的遵循计划 。 与瀑布流程相反 , 它假设和拥抱不确定性 。 它的理念是以响应变化代替讨论过去 , 它认为变更是客户需求的一部分 。
敏捷价值观 敏捷由 敏捷宣言(Agile Manifesto)代言 , 敏捷宣言定义了 12 条原则 (LCTT 译注:此处没有采用本文原本的简略句式 , 而是摘录了来自敏捷软件开发宣言官方的 中文译本 ):
- 我们最重要的目标 , 是通过持续不断地及早交付有价值的软件使客户满意 。
- 欣然面对需求变化 , 即使在开发后期也一样 。
- 经常交付可工作的软件 , 相隔几星期或一两个月 , 倾向于采取较短的周期 。
- 业务人员和开发人员必须相互合作 , 项目中的每一天都不例外 。
- 激发个体的斗志 , 以他们为核心搭建项目 。 提供所需的环境和支援 , 辅以信任 , 从而达成目标 。
- 面对面沟通是传递信息的最佳的也是效率最高的方法 。
- 可工作的软件是进度的首要度量标准 。
- 敏捷流程倡导可持续的开发 , 责任人、开发人员和用户要能够共同维持其步调稳定延续 。
- 坚持不懈地追求技术卓越和良好设计 , 敏捷能力由此增强 。
- 以简洁为本 , 它是极力减少不必要工作量的艺术 。
- 最好的架构 , 需求和设计出自自组织团队
- 团队定期地反思如何能提高成效 , 并依此调整自身的举止表现 。
- 个体和互动 高于流程和工具
- 工作的软件 高于详尽的文档
- 客户合作 高于合同谈判
- 响应变化 高于遵循计划
- 【广州贵丰创业投资】贵丰配资|设置预警线和平仓线究竟有何意义?
- 「科技犬君」老罗首次直播带货盘点:值得买的科技产品究竟有哪些?
- 烈火不灭夜■解放军步枪很少装瞄准镜,这究竟有何讲究,美军步枪瞄准镜是标配
- 『科技犬君』老罗首次直播带货盘点:值得买的科技产品究竟有哪些?
- 恒昌利通▲在美国究竟有多少钱才算真正的富人?
- 大千新鲜事■地球竟有2颗卫星?另一颗卫星去哪了?
- 「空军世界」500美金可随意挑选,中东究竟有多乱?手无寸铁的女子被贴上标签
- 辣椒新闻▲竟有人节外生枝,菲律宾替中国澄清事实,真相水落石出,疫情之下
- 【原子之城】中美差距究竟有多大?张召忠直言:不能被表象所蒙骗
- 『蒙古国』外蒙古的4大城市究竟有多大?实力诠释什么叫地广人稀