这是我第一次接触敏捷开发这个概念,因此如有错误之处还请老师指点。
首先,由于本人英语水平有限,对于老师给的网站内容并未十分理解,因此自己有单独找了一些敏捷开发的资料读了读,也转载了一部分作为以后学习的参考。
后来……发现……原来那个网站的文章有汉文版的,但是时间来不及看了,就先把自己目前的体会写一写,之后再去读一读改一改吧。
首先,什么是敏捷开发?
简单的说,敏捷开发一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。
那么,为什么会出现敏捷开发呢?
回顾软件开发时代共有如下几个阶段。
阶段一:软件词频时代,这个时候的开发形同小作坊模式,软件结构简单,模块单一,相对容易。
阶段二:当软件大规模商用之后,软件开始变得复杂化,多元化,曾经的小作坊开发模式不能再适用新的环境,这时便提出了线性开发模式,诸如瀑布模型一类的开发模式。
阶段三:因为线性开发模式是上一级的结果作为下一级的输入,因而在软件开到最后测试无法准确确定当前的整体开发进度,因为失败率很高,因而又对线性开发模型进行了各种各样的条件约束,因为整个开发模型显得相当重量级,各式各样的文档相当多。大大阻碍了开发进度。
即要软件开发进度明确又要成功率高,于是便出现了敏捷开发。因为敏捷开发是一种周期迭代,以人为核心,循序渐进的开发方法。因而正好满足了这些要求。
敏捷开发有哪些原则呢?
一、就敏捷开发而言,最重要的是通过不断交付有价值的功能软件来满足客户的需求;
二、敏捷开发适应需求的不断变化;
三、交付周期短;
四、业务人员和开发人员在整个项目开发中应有相当长的一段时间是一起的;
五、围绕斗志高昂的人进行软件开发,给其提供适宜的环境,并有足够的信任;
六、团队之中最有效率的交流是面对面的交谈,而不是通过各种聊天通讯工具或是邮件之类的;
七、可以工作的软件是进度的主要模量标准;
八、敏捷开发提倡可持续的开发速度;
九、对技能与设计的不断追求将有助于提高敏捷能力;
十、简单,即要尽可能少的减少工作量;
十一、最好的架构以及需求和设计得了源自于团队;
十二、每迭代周期完成之时必须要开回顾会议进行项目回顾,以确定下一迭代周期的任务目标;
十三、在开发初期将项目划分成若干模块,从中选择优先级高的先进行开发,如架构等,在之后每个迭代周期完成后,每开始一个新的迭代都遵循这个模式。
在敏捷开发中的几种必备成员:
一、敏捷教练
二、产品所有者
三、开发工程师
四、测试工程师
五、质量保证人员
敏捷开发的一般模式:
一、极限编程
二、水晶模式
三、SCRUM
四、动态系统开发模式(DSDM)
不过,也有一些失败的项目经理,他们主要具备以下一些特征:
侦探型
侦探用足够的时间观察团队,为下次回顾会议寻找材料。
海鸥型
他会在站立会议上突然出现,提出一些善意但无关紧要的评论或建议,然后离开,继续无所事事。
意见型
这些人喜欢在团队讨论中提意见,然后坚持自己(或他人)的意见以至失去客观性,从而无法实现正确的讨论。
管理员型
管理员把自己变成了处理会议后勤、资料查阅和其他管理工作的中间人,弱化了团队的管理层的作用。
集线器型
自己视为团队成员之间的交流以及任务协作的中心。
蝴蝶型
蝴蝶轻轻地从一个团队飞到另一个团队,装作很有智慧的样子,或者提出一个高深的问题,然后便离开。
专家型
专家型过于深究一些细节上的问题,就好像处于森林中,只能看到周围的树,容易迷失方向。
因此,要想真正将敏捷开发方法很好的应用到软件开发之中,就需要从理念从根本入手,从团队的整体合作意识入手。开发过程中,管理层人员要积极调配工作人员,以便使得敏捷开发方法应用极大化。同时,务必保证团队内部所有人员之间的充分交流,随时准备发挥任何人的强势,使得团队工作力达到极大化。