有关开发模式的几个概念-瀑布模型,极限编程,敏捷开发

来源:互联网 发布:雪肌精淘宝旗舰店 编辑:程序博客网 时间:2024/04/19 08:03

做开发已经不算是一个新人了,但很多朋友问一些开发模式方面的概念,比如瀑布模型,极限编程,敏捷开发等,总感觉给人解释的一知半解,模模糊糊,今天无意间看到一篇比较浅显的这方面的文章,转载一下,也算给自己补充下概念性的知识。

 

 如何快速响应客户需求变动
————ruby on rails + 敏捷开发模式 = 互联网快速响应开发 

  软件开发行业经过多年演化,开发模式也逐渐趋于成熟,目前主要的开发模式有:瀑布模型、极限编程、敏捷开发。瀑布模型有三个特点:强调文档、没有迭代与反馈、管理人员喜欢瀑布模型的原因是把文档理解为开发的速度,可以方便地界定不同阶段的里程碑。这样也导致了开发过程需要大量的文档编写工作,开发之前的详细调研工作,从而大大提高开发成本。更大的问题是当调研之后如果需求变动频繁、变动部分比较大时候就导致最终开发出来的软件往往已经不能够适用当前的实际需求。
  由于传统的瀑布模型开发模式存在这种缺陷,随后又产生了多种开发模式例如:极限编程、Scrum(“棒球”团队开发模式)、特征驱动开发、动态系统开发方法、自适应软件开发、水晶方法、实用编程等,这些方法的产生都或多或少的改变了传统的瀑布开发模式的弊端。但是仍然满足不了用户灵活多变的需求。 最终有多种开发流派共同发表了“敏捷软件开发”宣言。敏捷软件开发是一个开发软件的管理新模式,用来替代以文件驱动开发的瀑布开发模式,敏捷方式也称轻量级开发方法。
敏捷软件开发宣言内容:
·个体和交互胜过过程和工具
·可以工作的软件胜过面面具到的文档
·可以合作胜过合同谈判
·响应变化胜过遵循计划
敏捷开发的几大特点是分别是:
·迭代:缩短软件版本的周期
·客户参与:以人为本,客户是软件的使用者,是业务理解的专家,没有客户的参与,开发者很难理解客户的真实需求
·小版本:快速功能的展现,看似简单,但对于复杂的客户需求,合理地分割与总体上的统一,要很好地二者兼顾是不容易的。
互联网是一个高速发展的行业,产品开发的特点如下:
·产品的高度不确定性。互联网产品面向的用户非常多,用户需求的获取充满不确定性。如果 没有科学的用户研究方法和体系,没有关注用户行为的量化分析工具和理念,是很难给出产品的清晰定位,因此也无法提供真正满足用户需要的产品服务。
·产品需要快速响应用户的变化。由于互联网产品的高度不确定性,那么当有需求变动的时候就需要开发工作能够快速响应需求变化。
·产品的Small Release发布模式。因为互联网产品要不断满足用户的需求变化所以发布版本会使用小版本的发布模式,从而适应多变的用户需求。
我们从上面的描述中不难看出:敏捷开发模式的特点和互联网开发的特点不谋而合。互联网多变需求的开发更应该使用敏捷的开发模式。
采用敏捷的开发模式带来的好处显而易见:
·缩短开发周期
·快速应对需求变化
·降低了项目的失败风险
·提高了客户体验
·降低沟通成本
  然而在各种开发语言和开发框架中我们经过总结,发现Ruby On Rails框架天生的适应了敏捷的开发模式,这里不再对Ruby On Rails框架进行详细的介绍。
  奥远集团的互联网开发模式也正在逐渐向这种开发模式转变,例如我们在甘井子教委的网站项目中就是采用的这种开发模式:①开发工程师在现场与客户沟通了解需求②开发工程师根据需求进行开发③开发工程师完成给客户看结果④客户根据程序运行结果继续提出需求,如果没有新需求到步骤6⑤返回到步骤2⑥直到客户满意结束项目的开发工作
  上面就是我们在甘井子教委的项目中采用的开发模式,根据客户的需求顺利的完成了该项目的开发工作。最后我再强调一点敏捷开发并不是完全只讲究快速响应,同样也要求开发人员写出高质量的程序代码,要敏捷而不失精益,这才是我们的核心竞争力!