你有没有为了敏捷而敏捷
大侠新接了一个项目。
而公司领导对这个项目没有其他要求,唯一的要求是:采用敏捷管理。
敏捷项目管理作为新兴的项目管理模式,简化了传统项目管理的繁琐流程和文档管理,主张团队内部面对面沟通和交流。
以 Scrum 为代表,简单、持续集成、不断交付、价值优先、拥抱变化的原则在面对时刻变化的市场经济和不断发展的技术时变得十分友好。
那么所有项目都可以使用敏捷项目管理办法吗?
大家对敏捷管理存在什么误解吗?
大多数人觉的敏捷的目的就是解决速度问题,敏捷就是能让系统以最快的速度投入到市场。这样往往就忽略了质量的问题。
其实,敏捷真正关注的是实现客户的价值,而这一价值体现在“可工作的软件”之中,也就是说,对软件的质量是有一定的要求的。
它意味着交付的软件是客户需要的并且质量稳定的,是同时对需求质量和开发质量提出要求。
敏捷开发模式在IT行业被广泛采用的主要原因如下:
1、抢先占领市场,吸引用户。互联网时代,各家产品的更新迭代很快,竞争非常激烈。所以一个小小的idea都需要投入市场,看一下市场的反应。
2、在做产品升级的时候,一些小的功能和缺陷可以通过“灰度发布”或“热部署”的方式进行,避免因升级提醒而流失用户。
因此对于不同形式、不同需求阶段、不同质量要求的产品,对于敏捷开发的实际应用是需要谨慎研究的,而不是绝对的生搬硬套和教条主义。
敏捷不是一个过程,是一类过程的统称,它们有一个共性,就是符合敏捷价值观,遵循敏捷的原则。敏捷的价值观如下:
个体和交互 胜过 过程和工具
可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循计划
由价值观引出的12条敏捷原则:
-
我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
-
即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。
-
经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。
-
在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。(注:这并不是地理位置上要求双方在一起,否则跨国公司的协同开发就成了空话)
-
围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。
-
在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。项目管理者联盟
-
工作的软件是首要的进度度量标准。
-
敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。
-
不断地关注优秀的技能和好的设计会增强敏捷能力。
-
简单——使未完成的工作最大化的艺术——是根本的。
-
最好的构架、需求和设计出自于自组织的团队。
-
每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整
建立敏捷联盟的17位大师所创立的敏捷方法包括:
极限编程,Scrum,特征驱动开发,动态系统开发方法,自适应软件开发,水晶方法,实用编程方法。这些方法统称为敏捷方法。
每个人都可以从敏捷宣言和原则出发,明确问题,找出一些解决方法,形成自己的过程。要实用而不是要机械式的规范。让开发人员理解并实施,体验到敏捷的好处,而不是盲目机械地实施规范。
CMMI的最高境界(Level 5)也是要求组织有足够的灵活性适应外界环境的变化,灵活的运用规范,而不是教条主义。