麻利历史
麻利软件开发(英语:Agile software development),又称麻利开发,是一种从1990年代开始逐步引起宽泛关注的一些新型软件开发办法,是一种应答疾速变动的需要的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,绝对于「非麻利」,更强调程序员团队与业务专家之间的严密合作、面对面的沟通(认为比书面的文档更无效)、频繁交付新的软件版本、紧凑而自我组织型的团队、可能很好地适应需要变动的代码编写和团队组织办法,也更重视软件开发过程中人的作用。
1986 年,竹内弘高和野中郁次郎在哈佛商业评论中发表了题为 The New New Product Development Game 的文章,他们指出,传统的职能筒仓“接力式”的、 阶段式的开发模式曾经不能满足疾速灵便的市场需求,而整体或“英式橄榄球式” 重叠各阶段的办法(团队作为一个跨职能的整体在外部传球并放弃后退)兴许可 以更好地应答以后强烈的市场竞争。受此文章的启发,肯·施瓦伯(Ken Schwaber)和杰夫·萨瑟兰(Jeff Sutherland)于 1995 年正式公布了 Scrum 框架, 而同期其余的“轻量级”开发方法也如雨后春笋般涌现进去,如极限编程(Extreme Programming,XP)、个性驱动开发(Feature Driven Development,FDD)、自适 应软件开发(Adaptive Software Development,ASD)及动静零碎开发方法(Dynamic Systems Development Method,DSDM)等。
—引自《京东麻利实际指南》
麻利宣言及12准则
麻利一词来源于2001年初美国犹他州雪鸟滑雪圣地的一次麻利办法发起者和实践者(他们发动组成了麻利联盟)的团聚。雪鸟会议独特起草了麻利软件开发宣言。其中最重要的局部就是对一些与会者一致同意的软件开发价值观的表述。
麻利宣言中还包含了12准则。
英文版
中文版
这是对应的中文翻译:
京东提炼版
每一条准则,强调的重点各不相同,这是摘自《京东麻利实际指南》对各条准则的提炼,值得大家参考。
麻利办法
除了麻利宣言内所提到的价值观和准则以外,麻利并没有一个残缺的办法列表,因为所有的麻利办法都是宽广开发人员在日常的工作中摸索进去的,针对某种特定场景实用的办法。也就是说,以下所列出的麻利办法并以肯定实用于你的团队或者你的问题,然而麻利激励所有人依照本人的形式尝试任何的办法,只有这种办法遵循以上价值观和准则,那么它就是一种麻利办法。
- Scrum
- 看板办法 Kanban
- 麻利建模 Agile Modeling
- 个性驱动开发 Feature-driven development (FDD)
- 测试驱动开发 Test-drive development (TDD)
- 极限编程 eXteme Programming (XP)
- 精益开发 Lean Development
- 微软解决方案框架麻利版 Microsoft Solution Framework (MSF) for Agile
- 麻利数据办法 Agile Data Method
- 自适应软件开发 Adaptive Software Development (ASD)
- Six Sigma
- 水晶办法 Crystal
- 行为驱动开发 Behavior-driven development (BDD)
- 动静零碎开发方法 Dynamic Systems Development Method (BSDM)
- 探索性测试 Exploratory Testing
以下是Forrester在2009年针对各种麻利开发方法进行的一项调研后果,其中显示在所有麻利办法中,Scrum的接受度最高。同时,在承受调研的开发人员中,曾经有35%的人员在应用某种麻利开发方法。
麻利道法术器
麻利全景图如图 2-1 所示,包含道、法、术、器四个层面。
- “道”是麻利价值 观,即对工作形式的普世认知和信念,是价值规范,决定思维决策模式和行为形式,这里次要是指《麻利宣言》;
- “法”是麻利准则,既是实现价值观的最基本的 策略、办法、指导方针、思路,也是规定和法则,同时也是一种规范性束缚领导, 这里次要是指麻利 12 准则;
- “术”是麻利办法和实际,即战术、技术、具体的手 段、具体的流动形式等,同一种实际可能会被不同的麻利办法应用;
- “器”是麻利 工具,即撑持和提高效率及敏捷性,把简单问题简单化,把手工操作自动化和智 能化,例如,目前在业界热度比拟高的 DevOps 办法,其落地的要害就是通过工具链以自动化的模式实现需求疾速上线。
— 引自《京东麻利实际指南》
为什么麻利能够帮到你?
误会:麻利是为了疾速交付?
麻利不是一种为了疾速交付而呈现的办法,它之所以比拟快则是因为避开了许多节约的解决形式。
麻利改善了些什么?
- 前置工夫:传统开发法依循打算、剖析、设计、程序开发、测试再进行批改整合后公布的步骤进行,是一种程序性的开发模式,以后一个步骤用掉越多工夫时则前面步骤的前置工夫就会越长,而造成工夫上越多的节约。反观麻利开发,履行的是一种求实的做法,当收集到足够一次迭代开发的需要时即向下一个步骤后退,尽量缩短前置工夫的节约,而后将”剖析、设计、开发与测试”造成一个开发步骤,缩小了步骤与步骤之间的连接工夫。
- 首次公布:麻利开发采纳迭代的开发方式,每个循环都会有一个潜在可公布版本用来展现开发成绩,这种展现给了客户进行回馈和改良的机会,让客户领会开发成绩的作法同时也给予了客户决定开发方向的相对主权。
- 需要过程:麻利开发不作残缺的需要剖析(因为打算总是赶不上变动的),当需要的收集量和内容品质曾经达到肯定要求, 曾经足够一个开发周期的工作量时就能够开始开发工作。
- 测试方法:麻利开发对软件带来的最大影响便是测试了。传统的α(内部测试,注2)、β(交付客户测试)、γ测试(优化解决)形式在采纳麻利开发后简直不存在了,因为麻利开发在开发周期内一直的在进行测试的工作,因而也就没有了在交付做α、β、γ测试时必须进行开发,解冻开发的工夫节约了。
参考资料:
- 《京东麻利实际指南》赵卫 王立杰
IDCF DevOps黑客马拉松,2021年度城市公开赛,11月6-7日,深圳站,企业组队参赛&集体参赛均可,一年等一回,错过等一年,连忙上车~公众号回复“黑马”退出
发表回复