`
wuchsh2013
  • 浏览: 18994 次
  • 来自: 上海
社区版块
存档分类
最新评论

浅谈敏捷开发和迭代开发相结合

阅读更多
http://www.mypm.net/articles/show_article_content.asp?articleID=24211
本人从事IT业七个年头。在这七年中,我做过很多的软件开发项目,经历了许多不同的项目组,在不同的项目中从事不同的角色,每个项目组根据项目类型的不同都有各自一套软件开发体系。最近两年,本人主要从事软件开发的管理工作。在工作中,不断的摸索与实践,并不断的学习和总结。下面我将谈到的是:软件开发,将敏捷开发和迭代开发相结合的好处。

  首先,我先介绍一下什么是敏捷开发和迭代开发。

  1,敏捷开发:一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

  2,迭代开发:每次只设计和实现这个产品的一部分, 逐步逐步完成的方法叫迭代开发, 每次设计和实现一个阶段叫做一个迭代。在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代。每一次迭代都包括了需求分析、设计、实现与测试。

  通过这些年项目开发工作的最佳实践,我觉得如果您想做一个非常完美的项目很难,但是我们可以通过不断的对项目进行修正和累加的开发,来使项目趋于完美。这里我要说的就是迭代和敏捷开发相结合的一种开发方式。这样做的好处有以下几点:

  1、降低产品开发风险

  如果我们对即将开发的产品需求在项目初期不能做到全部细化,就进行系统功能的设计工作,势必增加项目产品的开发风险。那么如何降低风险?我们就可以通过迭代和敏捷开发相结合的开发方式来降低项目风险,项目初期先挑选可形成系统核心架构的需求来实现,待系统核心架构完成后,再在系统核心架构的基础上不断的添加其他功能模块,通过累加开发的方式,来不断的完善系统,并在完善系统时,对系统的瑕疵或不足,不断的进行重构和改进设计工作。通过多个迭代的敏捷开发,并且每个迭代都会产生一个可使用的产品。这样一来,我们就会达到降低产品开发风险的目的。

  2、持续的测试和集成

  每个迭代的敏捷开发,我们都会去不断的来做两件事情,一件就是增加新的功能,另一件就是更改变化的功能需求。新的功能或需求变化总是尽可能频繁地被整合到产品中。有些是在每个迭代周期结束的时候集成, 有些则每天都在这么做。所以,我们在每个迭代的敏捷开发中,都要不断的进行持续的测试和集成工作,以达到给客户交付一个满意,可用的产品。

  3、满足用户不断变化的需求

  满足用户不断变化的需求是软件开发的长期无法解决的难题之一,经典的瀑布模式在一个迭代周期内表现优异,但一旦需求变化,瀑布模式却显得无能为力。敏捷方法满足需求的办法主要通过迭代。在每一次迭代周期结束时,都能交付用户一个可用的、可部署的系统,用户使用并体验该系统并反馈意见,在随后的迭代周期这些意见和需求的其他变化一起在产品中实现和集成。

  4、得到早期用户反馈项目管理论坛

  每次迭代周期应尽可能短,以便能及时地处理需求变化和用户反馈。客户反馈的越早,越有助于在下个迭代的敏捷开发中,对客户反馈的意见进行修改。经过几个迭代对用户反馈的修改开发工作,使系统更加趋于完美。

  5、提高复用性(重用性)blog.mypm.net

  在谈到复用性,也有人称之为重用性之前,我要说的一个重要的活动就是:代码重构。因为在进行迭代的敏捷开发中,没有整个系统的详细设计过程,那么如何保证我们开发系统组件的复用性?

方法一:经常性的对你的代码进行重构以保持良好的设计和扩展性。

  方法二:架构师根据经验,和对未来需求的洞察力,在核心架构中设计出一部分可重用的组件。

  方法三:在团队的设计讨论会议上,成员之间通过头脑风暴和讨论,会得到一些共用的组件。training.mypm.net

  方法四:定期组织项目团队的开发人员坐在一起,互相审核评审代码,发现系统中重复出现的代码片段,从而立即重构它们以得到可重用的组件。

  方法五:开发过程中,通过对旧的代码进行重构,也有可能得到一些可重用的组件。

  代码重构其实与软件工程师的技能和经验也有很大的关系,有经验的软件工程师在进行编码时,会分辨出有可能会被重用的部分,并将它们抽取出来封装成可被重用的类或者模块组件。项目管理者联盟文章

  综上所述,敏捷开发和迭代开发相结合的项目开发方式,给我们项目管理带来的好处多多。也是我长期通过项目开实践,在不断学习和总结的中觉得最佳的项目开发方式之一。它对项目成败和最终结果起到决定性因素。因为我觉得它的思想精髓本身就值得我们采用它,它强调的是持续改进,不断完善。这相对于经典的瀑布式开发来说是无法比拟的,经典的瀑布模式虽然在一个迭代周期内表现优异,但一旦需求变化,瀑布模式却显得无能为力。瀑布模式通常会在产品起点与最终结果之间规划出一条直线,然后沿着直线不断往前走。然而当项目到达终点时,用户通常会发现那已经不是他们想要的东西。而敏捷方法则采用小步快跑,每走完一步再调整并为下一步确定方向,直到真正的终点。迭代式和敏捷开发方式的结合,既保证了产品的质量又在项目产品的持续改进中具有一定的优势。吸取精华,破其糟粕,只有这样,项目才会达到趋于完美的程度。这也是我们所有IT人,做任何项目都想达到的目标。

分享到:
评论

相关推荐

    浅谈敏捷开发中的设计.doc

    【敏捷开发】是一种以用户需求为中心,通过迭代和增量方式进行软件开发的方法论。它强调灵活性、协作和快速响应变化,旨在提高开发效率和客户满意度。敏捷开发的核心原则包括尽早并持续交付有价值的软件、欢迎需求...

    浅谈敏捷开发及Scrum工具leangoo(三)

    ### 敏捷开发中的Leangoo工具应用 #### 一、引言 敏捷开发方法论在软件开发领域中被广泛采用,它强调快速响应变化、持续交付可用软件以及强化团队合作。Scrum作为敏捷开发的一种具体实践框架,通过一系列仪式化的...

    浅谈敏捷软件项目研发.rar

    总结来说,“浅谈敏捷软件项目研发”这一主题涵盖了敏捷开发的核心理念、常用框架和实践策略,以及它在提升项目效率和应对不确定性方面的优势。通过深入理解和应用这些知识,软件开发团队可以更好地适应快速变化的...

    敏捷开发 课件

    - **目标:** 促进业务人员和开发人员之间的日常沟通。 - **实施:** 创建一个开放的工作环境,鼓励团队成员之间的互动和协作。 **3.4 自组织团队** - **目标:** 建立高效、自主管理的团队。 - **实施:** 提供必要的...

    Scrum敏捷与DevOps浅谈.pptx

    【Scrum敏捷与DevOps浅谈】 敏捷开发和DevOps都是现代软件开发中不可或缺的实践方式,它们分别解决着不同的问题并相互补充。敏捷开发强调的是以人为中心、迭代和渐进的方式进行软件开发,而DevOps则致力于消除开发...

    浅谈游戏开发平台Unity3D的应用与发展前景.docx

    浅谈游戏开发平台Unity3D的应用与发展前景 Unity3D 作为一款游戏开发平台,已经在游戏行业中崭露头角多年。随着游戏行业的快速发展,Unity3D 的应用前景也变得愈加广阔。在本文中,我们将浅谈 Unity3D 的优势和...

    浅谈项目经理在敏捷开发中如何切分任务.doc

    敏捷开发是一种快速响应变化、强调迭代和协作的软件开发方法,与传统的瀑布式模型不同。瀑布模型遵循线性的开发流程,而敏捷开发则通过短期的迭代周期,不断交付可用的软件,逐步完善产品。在敏捷环境中,项目经理的...

    浅谈敏捷软件项目研发.pptx

    浅谈敏捷软件项目研发.pptx

    火星人敏捷开发手册

    《火星人敏捷开发手册》是一本专注于敏捷开发实践的指南,由火星人出版,以图文并茂的方式深入浅出地阐述了敏捷开发的核心理念和实施方法。这本书的目的是帮助读者理解并掌握敏捷开发这一现代软件开发的重要模式。 ...

    浅谈迭代模型下的测试方法

    在"浅谈迭代模型下的测试方法"中,我们首先看到测试工作的重要性被强调,目的是加深对软件工程的理解,提升业务能力,并且为测试工作提供实践经验,以提高产品质量并丰富公司的质量管理体系。这表明测试不仅仅是软件...

    敏捷软件开发:原则、模式与实践(带书签+源码)

    这本书不仅提供了丰富的理论知识,还结合实际案例,深入浅出地介绍了如何在项目中实施敏捷方法。以下是基于标题和描述中的关键知识点的详细阐述: 1. **敏捷宣言与价值观**: 敏捷开发的核心在于敏捷宣言,它强调...

    浅谈DevSecOps敏捷安全发展趋势.pdf

    浅谈DevSecOps敏捷安全发展趋势 1. DevSecOps概述: DevSecOps是DevOps和安全的结合,旨在将安全融合到软件开发和交付过程中,以确保软件的安全性和可靠性。 2. DevSecOps敏捷安全发展趋势: 随着软件定义万物和...

    跟我学敏捷开发

    《跟我学敏捷开发》一书,由蔡煜著,版本1.1.0,深入浅出地介绍了敏捷开发的基本概念、核心原则及实践技巧,适合企业新人和技术经理阅读。 #### 敏捷开发的核心原则 1. **重视个体和交互**:相比过程和工具,敏捷...

    Scrm敏捷开发相关资料

    SCRM(Social Customer Relationship Management,社交客户关系管理)与敏捷开发相结合,旨在利用敏捷的方法论提升CRM系统的开发效率和适应性。敏捷开发是一种以人为本、迭代、增量的软件开发方法,它强调快速响应...

    Ruby on Rails敏捷开发最佳实践源代码

    在Ruby on Rails中,"敏捷开发"意味着快速响应变化,通过迭代和增量的方式进行软件开发。这种开发方式强调尽早和持续交付有价值的软件,欢迎需求变更,并且通过频繁的反馈和调整来提高产品质量。Rails的许多设计原则...

    浅谈市场开发方案.doc

    浅谈市场开发方案.doc

Global site tag (gtag.js) - Google Analytics