敏捷开发过程中的一点感受

敏捷开发过程中的一点感受,第1张

        在利用敏捷开发过程中,用户(业务)也是作为相关人员参与到项目与之中,用户可以对每个周期完成的软件产品进行使用和评估,根据 *** 作体检对功能、界面等各方面提出改进意见,并且可以激发用户对进步功能点的思考,有利于促进项目特性的快速积累,迅速到达完整的软件产品。

    敏捷的三个要素是迭代开发、坦诚合作和自适应性。

    迭代开发:把功能进行小粒度的分割,采用迭代和增量式的开发方法,时间段是按周而不是按月进行度量。频每交付使用,而不是等待项目开发完成一次性提交。这样也就能有比较明显的阶段性成果,可以按周交付新功能。这对于Web应用程序尤其适合。持续性的更新,可使用户有新鲜感,提高其访问频度和使用次数。也有助于开发人员根据用户的反馈数据,应对需求的变更,及时做出响应与改进。

 坦诚合作:以我来说,做为开发人员,合作应该主要是有两类:一类是与开发人员的合作,另一类是与业务人员。与业务人员的合作很容易理解,能做到一起紧密工作,可使得产品更能切合实际的需求。而不是作完需求分析后,就将他们一脚踢开,直至产品交付。以往所做项目都不算大,几个人而已,合作也是分模块分别开发再整合。所以与开发人员的合作体会还不是很深,没看出敏捷开发有什么明显的改善。

    自适应性:现实不断发展与变化,需求也在不断改变,未来状态难以预测,也就很难提前用一个文档来规范所有的开发行为。自适应方法就是不断变化的现实情况,来及时作出改变。这也就需要信任开发人员的能力,给其更多的活动空间。相信对于一个合格的开发人员,这也会有助于调动其主观能动性,以更加积极的态度来参与开发。

1 我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。

2 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。

3 经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。

4 在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。

5 围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。

6 在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。

7 工作的软件是首要的进度度量标准。

8 敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。

9 不断地关注优秀的技能和好的设计会增强敏捷能力。

10 简单——使未完成的工作最大化的艺术——是根本的。

11 最好的构架、需求和设计出自于自组织的团队。

12 每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。

    如果仅仅从软件过程的角度去认识敏捷实施敏捷,效果不会太好。敏捷相对以前的软件工程最大的革新之处在于把人的作用提高到了过程至上,正如敏捷宣言的第一条“个体和交互胜过过程和工具”所说的。涉及到人的问题,就已经不再是过程所能覆盖的了,就到了企业管理的层面上了,包括企业的价值观和文化。这也是敏捷在国内实施的最大障碍:把客户当作合作伙伴而不是对手,从客户角度出发去想问题,充分的跟客户沟通,而不是出了问题推诿责任。目标是让软件实现客户的价值,而不是收钱就完事儿。把人的能动性调动起来,给动力而不是给压力。要实用而不是要规范。让开发人员理解并实施,体验到敏捷的好处,而不是盲目机械地实施规范。没有绝对的权威,每个人都有可取之处。

什么是敏捷开发?s

敏捷开发(AgileDevelopment)是一种以人为核心、迭代、循序渐进的开发方法。

怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发;

为什么说是以人为核心?

我们大部分人都学过瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切以文档为依据;而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心。

什么是迭代?

迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,这样的一个周期就是一次迭代的过程;同时每一次迭代都可以生产或开发出一个可以交付的软件产品。

关于Scrum和XP

前面说了敏捷它是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而Scrum和XP就是敏捷开发的具体方式了,你可以采用Scrum方式也可以采用XP方式;Scrum和XP的区别是,Scrum偏重于过程,XP则偏重于实践,但是实际中,两者是结合一起应用的,这里我主要讲Scrum。

什么是Scrum?

Scrum的英文意思是橄榄球运动的一个专业术语,内推网www.neitui.me,专注于做互联网招聘行业内部推荐、打造最专业的互联网招聘内部推荐直招平台。表示“争球”的动作;把一个开发流程的名字取名为Scrum,我想你一定能想象出你的开发团队在开发一个项目时,大家像打橄榄球一样迅速、富有战斗激情、人人你争我抢地完成它,你一定会感到非常兴奋的。

而Scrum就是这样的一个开发流程,运用该流程,你就能看到你团队高效的工作。

【Scrum开发流程中的三大角色】

产品负责人(ProductOwner)

指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。

流程管理员(ScrumMaster)

主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。

开发团队(ScrumTeam)

主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标。

因为敏捷开发在实施中需要考虑很多因素,而这些因素暂时达不到要求,强行开发敏捷对互联网来说并非有利。

1.敏捷开发产生是源于企业软件交付的诸多难题,比如变更、缓慢、高成本等。这类交付大多以项目形式组织、以产品为结果。

2.项目有两个核心特征“为客户服务”、“一次性”。

3.项目的发起是从客户需求出发的,这隐含了客户必定是存在的,而且是明确的,通常客户是一个人或一个公司的需求提出人。通常是一对一服务的。他们的需求一般也是明确的,至少方向是明确的。

4.所以敏捷开发中“客户合作”、“客户现场”等都是对客户重要性的确认,一旦客户不存在,例如自主产品研发早期还没有用户的时候,需求的挖掘、产品的验收就都成了问题。

5.项目一般是为一个确定目标所完成的一次性活动,所以项目是以客户验收为结束标志的。然而产品因为存在大量用户,它是持续交付的过程,再加上产品的更新换代,还需要对老用户进行升级。

6.敏捷开发中强调“客户验收”的重要性,要求与客户频繁验收,从而尽早发现问题,尽早调整,减少返工浪费,同时收敛项目范围。但这并不是用于产品,因为产品的功能是越做越多的,不断发散,同时还无法快速与用户验收,甚至无法验收,因为用户太多,不知道以谁为准,或者用户拒绝对未成形产品验收。这都让敏捷开发更多的局限在项目交付范畴之内。

参考资料

百科.百科[引用时间2017-12-28]


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7944204.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存