作者:梦-回忆-记忆-梦_429 | 来源:互联网 | 2023-09-23 10:32
乍一听,“敏捷开发”这个词很新鲜,其实不然。早在2001年2月,就作为一种相对新颖的产品开发模式,提出了“敏捷开发”这一概念。到底什么是“敏捷开发”呢?诞生 也就是20
乍一听,“敏捷开发”这个词很新鲜,其实不然。早在2001年2月,就作为一种相对新颖的产品开发模式,提出了“敏捷开发”这一概念。到底什么是“敏捷开发”呢?
诞生 也就是2001年的2月(没有考据),有17名之多的软件工程师在美国犹他州的Snowbird举行会议,讨论轻量级软件开发方法,并发布了《敏捷软件开发宣言》。这标志着敏捷开发的诞生。这一模式随后被硅谷创业公司大量应用,并于近几年被引入国内,让中国的工程师们有机会接触这一新奇的开发模式。
敏捷宣言 敏捷方法认为,人是软件开发中最重要的因素,开发团队要能做到团结协作,人与人面对面的交流、沟通,是最快速、最有效的途径。
文档的意义在于为程序服务,过多的文档需要开发人员花费大量的时间去维护,而且还要确保文档与代码的实时性,否则就失去了文档的意义。而问题也就在于,开发人员没有把时间、精力放到最重要的任务上,能力、资源没有最大化的发挥效能。敏捷方法认为,文档应当短小精悍、易于维护,而且主题突出。
做过软件开发的人都知道,客户对产品的需求是不断变化的,试图一开始就规定项目的细节和进度,显然是不现实的,只有开发团队和客户彼此精诚合作,常与沟通,频繁的客户反馈,才能促使项目的成功。
客户的需求在产品的开发阶段是不断变化的,即使谈判时确定的需求,也可能会根据某些因素而发生巨大的改变。因此,敏捷方法认为,在制定计划时应尽可能的简洁、灵活,以适应技术和需求方面的变动。当然,所有的未知的因素是不可能考虑周全的,这就要求我们在制定计划时,留出一定的缓冲期,来应对这些未知情况。
核心思想 说了这么多,到底什么是“敏捷开发”呢?其实,简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目经常被拆分为多个子项目或多个步骤来完成,而一个步骤又称为一次迭代,在每一次迭代完成之后,都会产生一个可交付的产品。这样做有效的分解了整个项目的复杂度,便于实现产品交付目标,同时在项目的早起,就能拿出初具雏形的产品。
敏捷开发方法的核心思想概括起来,就是“以人为本”和“适应变化”。
敏捷方法认为,人是软件开发中最重要的因素。对于人来说,软件开发应该是一种愉快而又轻松的事情,它们注重调动自我的能动性,以积极、愉悦、乐观的心态完成开发,并培养人的自豪感。敏捷开发的理念是充分的信任开发团队能够很好的完成任务,这是管理的中心主题。
传统的软件开发强调的是,足够清晰的需求,制定详细的文档,按照预定的计划逐一进行开发、测试。这样的方式在制定好计划之后拒绝变化,无法应对客户对需求的实时更改,后续的维护必将会付出巨大的代价。
而敏捷方法则是以最简的方式来迎接变化,客户在整个开发过程中都是参与者,开发团队能够在最短的时间内得到客户的反馈,不断适应需求的变更,从而使得最终的产品能够充分的符合客户的要求。
管理工具 俗话说,工欲善其事,必先利其器。没有一个好的工具,事倍功半是必然的。目前,已经有一些项目管理工具用于敏捷开发,可以用他们来帮助规划、跟踪,分析和整合工作。
这些工具在敏捷开发中扮演着重要的角色,也是知识管理的一种方法。通常包括:版本控制整合,进度跟踪,工作分配,集成发布,迭代规划,论坛和软件缺陷的报告和跟踪。
我们项目中用到的两款项目管理工具,其一是国内的公司出品的Web版的开源软件——禅道(ZenTao),它集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款专业的研发项目管理软件,完整地覆盖了项目管理的核心流程。还有一款是国外的Atlassian公司出品的项目与事务跟踪工具——JIRA,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。
方法
- XP
- SCRUM
- Crystal Method
- FDD
- ASD
- DSDM
- RUP
- LD
结束语 由于我也是第一次接触敏捷开发,我将与大家一同学习敏捷的真谛,在项目中运用敏捷的思想,真正做到开发敏捷、思维敏捷。在这个关于敏捷开发的系列之旅中,第一站主要是简单的介绍了一下敏捷开发,让大家对他有一个整体的了解。
后续的文章,我会结合各个不同的敏捷方法,同时在项目中吸收的经验、教训,都会与大家一起分享,一同来探讨有关敏捷的真谛。
敏捷开发系列之旅 第一站(掀起你的盖头来),布布扣,bubuko.com