软件工程-敏捷开发概述
发表时间:2020-10-26
发布人:葵宇科技
浏览次数:42
敏捷开发的效果【形象的图展示】
敏捷更符合软件开发规律
软件更像一个活着的植物,软件开发是自 底向上逐步有序的生长过程 ,类似于植物自然生长 敏捷开发 遵循软件客观规律 ,不断的 进行迭代增量开发 ,最终交付符合客户价值的产品 什么是敏捷软件开发 ? 敏捷开发是一个 概念框架 ,这个概念框架是由满足 敏捷宣言的价值和原则的一系列方法和实践组成 , 敏捷开发 不是固定的【没有固定的步骤,比如你自己的房子你随意的装修,看你的心情】,它是由自我管理、不同功能的团队一起合作,在满足团队自身环境的一系列实践和方法之上,逐步演化而来。1.敏捷开发浪潮
看看到底又那些公司在使用敏捷开发
敏捷开发流程:就是让我们尽量能完美的完成用户需求的一种开发模式【快速实现用户想要的软件】 ,无论是 上百人的大型团队,还是小到 几个人或者两个人的小型团队
- ISO 9000(09版)标准将在原来八大原则的基础上新增敏捷原则
- 2000年美国军方软件开发标准(DOD 5000.2)推荐迭代为软件开发优选模式
- 世界影响最大的美国波多里奇国家质量奖将敏捷作为核心的十一大原则之一
2.敏捷开发历史:【软件开发顺应时代变化,从重型过程转向轻量型敏捷】
20世纪60年代 软件作坊软件规模小,已作坊式开发为主【比如说两个人开发一个项目,只要紧密的沟通就可以这个 项目比较好的完成,即使出了很大的更动,由于软件比较小,大不了重新写一遍都是可以的 】70年代 软件危机硬件飞速发展,软件规模和复杂度激增,引发软件危机【作坊式开发更不上时代了,软件越来越庞大,需求越来越多,没有很好的过程管理,和科学的开发流程就会很乱。比如打仗,部队零零散散,说不定打起仗来都跑路了,这里也是相似的 程序员相互推卸责任,说不定到后面,写出来的产品都不是用户想要的】80年代 软件过程控制引入制造业的成熟的生产制造管理方法,以“过程为中心”分阶段来控制软件开发(瀑布模型【大致流程:需求分析->设计->编码->测试->产品】),一定程度缓解了软件危机【把软件划分成多个阶段,每个阶段的工作都不一样,但瀑布模型流程比较复杂,成本相应的比较高(因为可能每个过程都可能增加很多约束和限制,很难控制)】90年代 重型过程软件失败的经验促使过程被不断增加约束和限制,软件开发过程日益“重型化”,开发效率降低,响应速度变慢;【用户要改点需求就变得很困-难,说不定等开发出来,软件已经过时了,所以这种方式不是很灵活】2001-今天 敏捷正在流行随着 信息化时代的到来,需求可能变更的很快,交付周期【软件做的越快越好】成为企业核心竞争力,轻量级的,更能够适应变化的敏捷开发方法被普遍认同并 变得 迅速的流行。
3.敏捷宣言揭示更好的软件开发方法
我们正在通过亲身实践以及帮助他人实践,揭示更好地软件开发 方法。通过这项工作,我们认为:
【敏捷宣言-价值观】
1.个体交互【客户与开发者&&开发者团队内部的沟通】
胜过过程和工具【敏捷也有过程和工具,只是说交互更重要】2.可以工作的软件【文档写的在全,但是我们的目的还是在于做出软件,给用户提供一个可以用的软件,用户说:这个不是我想要的,这个不是我想要的,我们在把软件进行迭代,最终的软件比较符合用户的需求】胜过面面俱到的文档3.客户合作【万一 文档 和 客户的要求 理解有差异,防止软件出来,互相撕逼,互相甩锅,跟客户之间有分歧的 时候,抱着合作的心态交流】胜过合同谈判4.响应变化【在最短的时间内,响应用户需求的变化,免得按计划走跟不上变化,用户觉得花了一堆钱 得到一个 垃圾】胜过遵循计划 虽然右项具有价值 但我们认为左项更具有价值敏捷宣言( 2001年)是 敏捷起源的基础 ,由上述4个简单的价值观组成,敏捷宣言的签署推动了敏捷运动 敏捷宣言本质是揭示一种更好的软件开发方式,启迪人们重新思考软件开发中的价值和如何更好的工作
4.敏捷开发十二项原则【指导原则,但不是一尘不变的】
- 1. 我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。【前期我们做版本把最核心的功能实现了,就给用户使用看看用户的建议或者意见】
- 2.欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。【因为市场这个东西变化很快,说不等已经有别的客户有了这个相似的软件,客户在用这个软件市场就没那么大了,所以要欢迎用户提出变更】
- 3.要不断交付可用的软件,周期从几周到几个月不等,且越短越好。【目的:根据用户的建议和意见修改软件,尽可能的满足用户】
- 4.项目过程中,业务人员【了解需求的】与开发人员必须在一起工作。【有问题及时发现,及时修改】
- 5.要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。【奶他们就行】
- 6.无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。【文档交流,大家都知道中华文化博大精深,同样的汉字可能有误解】
- 7.可用的软件是衡量进度的主要指标。【不要用 软件文档什么模块来衡量软件的进度,而是可用的软件】
- 8.敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展 速度。【和用户商谈,有问题马上进行确认,马上修改】
- 9.对技术的精益求精以及对设计的不断完善将提升敏捷性【功能越来越多,涉及到的技术也越来越多,设计完善可以提高效率】
- 10.要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。【每个模块用简单的方法实现】
- 11.最佳的架构、需求和设计出自于自组织的团队。【大家自发的,做事情比较自觉,而不是被命令式的团队,心里素质不好:直接删库跑路之类的】
- 12.团队要定期反省如何能够做到更有效,并相应地调整团队的行为。【没有最好,只有更好 比如:我们这种方式可以,但有什么地方有不足和提高呢】
5.敏捷对生产率、质量、满意度、成本有明显改进