项目优化经验分享(七)敏捷开发

    上一篇博客我们分享了项目开发中SVN冲突的解决经验SVN冲突和处理》。

今天我们来分享一下近几年火热的开发模式:敏捷开发!

 

    敏捷开发有多火呢?百度一下,这类的博客还真不少。同是CSDN上就有非常多,不同作者眼里敏捷开发也不尽同样,当然基本原理还是一样的,今天我来介绍一下我眼里的敏捷开发。

    一.基础知识

    概念:

    敏捷开发是一种新型的软件开发方法。可以应对客户高速变化的需求。相对于“非敏捷”,更强调程序猿团队与业务专家之间的紧密协作、面对面的沟通(觉得比书面的文档更有效)、频繁交付新的软件版本号、紧凑而自我组织型的团队、可以非常好地适应需求变化的代码编写和团队组织方法。也更注重软件开发中人的作用。

    价值观:

    1.人和(人与人的)交互:优先于过程和工具。
    2.能够工作的软件:优先于求全责怪的文档。


    3.客户协作:优先于合同谈判。
    4.随时应对变化:优先于循规蹈矩。


    主要原则:

    1.对软件开发而言。最重要的是通过尽早和不断交付有价值的软件满足客户须要。


    2.我们欢迎需求的变化,即使在开发后期。敏捷过程可以驾驭变化,保持客户的竞争优势。
    3.常常交付能够工作的软件,从几星期到几个月。时间尺度越短越好。


    4.业务人员和开发人员应该在整个项目过程中始终朝夕在一起工作。


    5.环绕斗志高昂的人进行软件开发。给开发人员提供适宜的环境。满足他们的须要,并相信他们可以完毕任务。


    6.在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈。


    7.能够工作的软件是进度的主要度量标准。
    8.敏捷过程提倡可持续开发。

出资人、开发者和用户应该总是维持不变的节奏。


    9.对卓越技术与良好设计的不断追求将有助于提高敏捷性。
    10.简单——尽可能降低工作量的艺术至关重要。
    11.最好的架构、需求和设计都源自自我组织的团队。


    12.每隔一定时间。团队都要总结怎样更有效率,然后对应地调整自己的行为。

    敏捷方法:

    1.软件开发之韵。Software Development Rhythms
    2.敏捷数据库技术,AD/Agile Database Techniques
    3.敏捷建模,AM/Agile Modeling
    4.自适应软件开发,ASD/Adaptive Software Development
    5.水晶方法,Crystal
    6.特性驱动开发,FDD/Feature Driven Development
    7.动态系统开发方法,DSDM/Dynamic Systems Development Method
    8.精益软件开发,Lean Software Development
    9.AUP(Agile Unified Process)
    10.Scrum(经常使用)
    11.极限编程,XP Extreme Programming(经常使用)
    注:后两种敏捷方法最经常使用。在后面的博客中会有详细介绍。

    二.对照其它的方法

    敏捷方法有时候被误觉得是无计划性和纪律性的方法。实际上更确切的说法是敏捷方法强调适应性而非预见性。
适应性的方法集中在高速适应现实的变化。当项目的需求起了变化。团队应该迅速适应。

这个团队可能非常难确切描写叙述未来将会怎样变化.

    1.对照迭代方法

     相比迭代式开发两者都强调在较短的开发周期提交软件,敏捷方法的周期可能更短,而且更加强调队伍中的高度协作。


    2.对照瀑布式开发

    两者没有非常多的共同点,瀑布模型式是最典型的预见性的方法。严格遵循预先计划的需求、分析、设计、编码、測试的步骤顺序进行。步骤成果作为衡量进度的方法,比如需求规格,设计文档,測试计划和代码批阅等等。
    瀑布式的基本的问题是它的严格分级导致的自由度减少。项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明而且在项目进行过程中可能变化的情况下基本是不可行的。
    相对来讲,敏捷方法则在几周或者几个月的时间内完毕相对较小的功能。强调的是能将尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强。

    在实际项目中,因为敏捷开发对于开发者的要求相当高,或是有些软件有比較高的关键性、可靠性、安全性方面的要求,再加上成本控制问题。可能有些公司开发採用瀑布+敏捷开发的形式。

    三.总结

    本篇博客主要介绍了敏捷开发的基础知识和本人对于敏捷开发的一点见解。以后会写一个专题来详细讲述本人在实际项目中的敏捷开发经验。



    


版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的:(敏捷开发)