关于敏捷开发与DevOps实践——腾讯云公开课记录

软件工程—从瀑布到敏捷

软件工程从瀑布到敏捷,是对软件工程效率和软件交付效率的提升。

瀑布模型

瀑布模型(Waterfall Model)将软件生命周期划分为6个阶段:计划、需求分析、设计、编码、测试、维护,顺序固定,如同瀑布逐级下落。作为早期软件工程方法,瀑布在20世纪80年广泛使用,但存在致命的缺点:流程是线性的,到最后才测试和交付开发成果,一旦发现问题为时已晚,所以没能很好的解决软件危机,2003年的统计报告显示82%的项目延期,和1995年的84%几乎没有好转。

image

敏捷开发

敏捷开发是循序渐进的开发方式,在尽量短的周期内持续测试和交付“可运行的软件”,再加上团队沟通和客户沟通,从而做到了“拥抱变化”。在敏捷开发中,软件项目在构建初期被切分成多个迭代,各个迭代的成果都经过测试,具备可视、可集成和可运行使用的特征。

image

敏捷开发框架

Scrum(“橄榄球传球” ):成员包括产品负责人、 5-9人的开发团队、 敏捷教练,采用每日站会、 迭代回顾等方法; Kanban(看板):来自丰田精益生产,可视化工作流、 限制在制品数量、 显式化流程规则(内建质量)……; XP(极限编程):结对编程、 TDD(测试驱动开发)、 客户驻场,偏重编程实践,而 Scrum 和 Kanban 面向工作流。

image

Scrum

image

敏捷开发工作流与分工

image

敏捷开发之持续交付实现(DevOps)

image

DevOps理念

核心是自动化

image

权限管理

image

自动化上线

image

代码质量保证

image