敏捷开发之我见

敏捷开发是在软件工程中的重要开发方法。通过对http://martinfowler.com/agile.html知识的学习,让我对敏捷开发的认识更进了一步,下面是我的学习总结。

一、敏捷开发整体概念

       敏捷开发是一种创举性的开发方法,其在开发前并没有做大量的文书工作,并没有去写大量的文档,去将整个工程的模型细节考虑清楚。而是在初步了解客户的需求以后,进行整个系统的开发,在最短的时间内将工程完成,而后再和客户进行相应的讨论,根据用户对细节的需求,进一步迭代,改变整个工程以适应新的需求。

       因为软件开发相比于实际生活中的建筑建造等情况其成本较低,程序重写编写的代价较小,这也使敏捷开发这一方法称为了可能。而客户因为对计算机技术并不擅长,使得客户的需求相对模糊,开发者并不能准确的获得客户的需求,故在敏捷开发方法中,开发者通过反复的迭代去适应客户并不稳定的需求,从而实现工程的顺利开发。

二、敏捷开发的特点

1、高度适应性

        用户的需求并不是一成不变的,敏捷开发的高度适应性恰恰应承了用户需求的改变。

       敏捷开发方法的设计者们相信,对于用户并不能确定的需求,与其去预测他们的改变方向从而去迎合他们,不如以开发者的想法去编写,让客户去提意见,使得开发的方向逐渐趋于稳定。

       故敏捷开发最为显著的特点,便是其高度的适应性,无论多么苛刻的需求都能够满足。

2、软件设计简单性

      在敏捷开发这一方法论被提出后,就有人质疑是不是使用不用去对软件进行设计了,直接编程就好了。

      这一说法可以说是对敏捷开发认识的一大误区,敏捷开发虽然强调开发的敏捷,强调减少设计的时间,强调尽快进入编写阶段。但这并不是说不去设计,软件的设计是必要的,越庞大的工程越需要设计。只不过敏捷开发强调的重点不在设计,故设计阶段的简单性也成为了敏捷开发的一大特征。

      通过简单的设计,快速的编码,从何实现迭代的敏捷性,体现出“敏捷”二字。

3、团队合作重要性

     敏捷开发十分注重团队合作,一般以两人为小组,实行结对编程制度,极大的保证代码质量,减少代码的测试时间。

      整个团队在开发时,采用一个成熟的代码托管技术,让整个团队有机的结合起来。

三、敏捷开发的缺点

1、需要反复和客户进行交流,需要客户排代表常驻开发团队

2、面对庞大的大型项目时,轻视设计阶段令代码的迭代次数过多,故敏捷开发比较适用于中小型项目。

少年们,读后给个评论呗~

王旭阳

 

原文地址:https://www.cnblogs.com/wddwxy/p/3371176.html