敏捷

  敏捷运动是一种替代传统项目管理的方法。敏捷方法通常用于软件开发中帮助企业应对不可预测的一些因素,比如对需求无法短时间掌握等。

  在过去十多年内有很多实施敏捷的成功案例,其中有的公司已经显着提高了他们的IT开发团队开发效率和业绩。敏捷已经跨越多种行业,包括媒体和技术,大型企业,甚至政府被广泛采用。

  在现实中,虽然敏捷不是所有软件开发问题的灵丹妙药。真正的关键是要知道如何根据情况合适选择瀑布与敏捷(顶层设计 vs. 摸着石头过河 )等等不同开发方法,甚至可以混合。这其中真的需要大量的经验和技巧。在敏捷软件工程,项目管理更依托对项目经理的技能,沟通,促进和协调能力,而更少强调对规划和控制(摸着石头过河 > 顶层设计)。

  敏捷是从敏捷宣言派生的。在2001年一小群人(包括Martin Fowler、kent Beck等)聚在一起讨论他们的项目管理经验,他们认为传统的管理软件开发项目的方法频繁发生问题,由此提出了敏捷宣言,描述了四个重要点:

  1. 在开发过程中通过工具实现独立开发和相互协作。
  2. 程序软件要胜于复杂的文档(代码本身就是最好的文档)
  3. 与客户协作商量,而不是以谈判等含有对抗意味的交流。
  4. 响应变化高于执行计划(计划没有变化快)

  敏捷有很多著名的方法和原理,其中著名的有:

  DSDM是最早的敏捷开发方法。 DSDM是“敏捷”这个词语发明之前,但绝对是基于所有我们已经认识到敏捷的原则。 DSDM似乎在英国以外不太知名。

  Scrum是最流行和广泛采用敏捷方法,其特别集中于在一个团队开发环境中如何管理任务。 它比较容易实现和解决了许多一直困扰的IT开发团队数十年的管理问题。

  XP极限编程是一种较为激进的敏捷方法,更注重软件工程实施过程,定位于用新方法实施分析、开发和测试,使的最终产品的质量和以往有一个实质性的提高。

  DSDM可能是最完整的敏捷方法,而Scrum和XP更容易实现和具有互补性,因为它们解决的是软件开发项目的不同方面,它们都是建立在非常类似的概念基础之上。 

  敏捷软件工程方法的真正意图是:通过开发管理的敏捷促成软件系统敏捷,而很多人忽略这个目的,结果导致人忙的要趴下,系统还是老样,这真是缘木求鱼。人敏捷得像猴,系统还是熊孩子。采取通往即时反应的技术和工具,就能够让系统变得敏感敏捷,也更符合达尔文的适变生存。

  敏捷运动当初目标是为了实现工匠的理想,但现在看来失败了,敏捷运动中揉入太多各种会议推广和Scrum大师和项目经理的认证,以至于他们抛弃了程序员这个主体,放弃了手工艺的价值和纪律。

  敏捷运动本来应该是程序员的舞台:“嘿,看!团队很重要。代码应该是干净的。我们想要与客户协作。我们希望尽早和经常地交付。“敏捷运动本应由程序员和软件专业人士发起的,他们非常重视手工艺的理念,但随后项目经理冲进来说:“哇!敏捷是关于如何管理项目的一个新的很酷的变体。“

  有一个老歌作者是艾伦·谢尔曼(Alan Sherman),名叫J·C·科恩(J.C.Cohen)。故事讲述的是一个地铁售票员在把人们推上火车车厢方面做得如此出色,以至于他把工程师赶了出去。敏捷运动就是这样的。他们把这么多项目经理挤了进去,把程序员赶了出去。

 

文章与教程

什么是Scrum?

什么是Scrum积压?

什么是看板Kanban?

什么是Devops?

什么是企业架构?

敏捷的真相

敏捷开发其实意义不是很大,在复杂项目中

用户故事与史诗有什么区别?

敏捷项目中非功能需求是如何定义和管理的?

软件工程测试用词解释

原型基本概念

基于Web的在线建模工具

建模风暴(使用领域事件作为用户故事的建模案例)

持续交付的概念和工具介绍

TDD死了 测试永存

代码评审清单

15条软件开发的基本规律

Spring创始人Rod大叔:软件交付的未来是编码

敏捷运动发起人马丁·福勒认为当前敏捷运动是一场悲剧

软件架构师的类型

敏捷项目中的业务分析师角色

什么是金丝雀版本?

从敏捷死了到Devops死了

敏捷和devops之间有什么区别?

重构的三个层次

用户故事的生命周期是怎样?

一定要满足管理人员的一致性要求吗?

Babok®指南的敏捷扩展是什么?

什么是DevOps以及它与软件开发有什么关系?

瀑布和螺旋式开发哪个更好?

INVEST简写是什么意思?

讨论组应如何有效地进行?

如何将自己的开源项目发布到Maven中央仓库中?

自己搭建Maven服务器私服

需求产品团队如何有效地管理时间?

组建,激荡,规范和执行是什么意思?

Koter领导变革的八个步骤

产品从概念到实现的步骤

开发应用程序时应考虑哪些类型的测试?

什么是总体拥有成本(TCO)以及它的重要性?

是否应该创建用户故事来计划系统维护和支持?

尽早修复bug有什么好处?

商业计划书应该包含哪些信息?

更多话题:

#敏捷 #DevOps #业务分析

#重构 #项目管理 #BDD行为驱动开发

#需求分析 #软件观点