首页>>技术前沿>>网站/软件行业动态
漫谈软件开发流程选型:敏捷式开发VS瀑布式开发
作者:西安软件开发 | 转载 来源:西安软件开发公司 | 时间:2018年9月1日| 点击:0次 | 【评论】

很多软件公司程序员都听过在软件开发过程中的“敏捷式开发与瀑布流开发”,可具体在实际工作过程中应该选用哪种方式呢?这里西安弈聪信息技术有限公司软件开发部小刘就软件开发过程中流程选型问题和大家做一探讨。

软件开发流程

敏捷式开发

目前已经有不少软件开发团队通过以“敏捷式开发”的方式去管理与完成自己的软件,尽管“敏捷式软件开发”有诸多优点,但我们始终要谨记敏捷式开发的源头是定制软件服务,所有流程的初衷也并非完全适用于用户软件软件开发,如果软件公司决定使用一套完整的敏捷式开发流程来完成自己软件的话,这个软件开发团队需有明确了解何为敏捷开发的人员;如若没有,那么整个软件开发团队将面临一些空前的磨难,只有经历不断忍过这些阵痛才能体会到“敏捷式开发”所带来的优势。

敏捷开发8点注意事项

1. 软件经理就是项目负责人

在敏捷开发过程中软件需要做好代表整个用户需求的作用,需要与软件开发团队保持密切沟通,及时解决开发过程中的问题,如果有些软件经理认为采用敏捷开发可以使工作变得更加轻松,那么就大错特错了。其实如果软件经理与项目负责人不是同一个人,通常会使整个软件留下非常严重的隐患,软件在整个敏捷开发过程中必须始终都要是第一责任人;

2. 使用敏捷方式不等于不做软件规划

使用敏捷开发的过程中软件仍需要明确定义整个软件的方向和目标,设定软件里程碑,只不过在敏捷迭代过程中所有的里程碑可以尽可能缩短其周期,通过使用反复迭代与轻量级的机会评估方法代替冗长的市场机会文档等纸面材料;

3. 软件经理与设计师的工作应领先软件开发团队1-2两个版本以上

为了确保在项目推进过程中有足够的时间攻克技术上的难题,需要让软件与交互设计和视觉设计师提前完成软件设计,充分发挥三者在软件设计过程中的主导作用,同时保证开发人员在软件设计与交互设计阶段始终处于参与状态及时反馈关于软件的可行性、成本与解决方案的建议在问题的出发点就将其解决;

软件开发流程

4. 尽量把软件设计拆分成独立的部分

虽然将软件拆分成多个模块,但是也不能将其拆分的过于细碎,好比建造一座房子,你不能每次只建造一件房子,目标是设计出符合所有基本需求的软件,在这一过程中要求设计师需有更快的响应速度,去做经过市场验证后的调整;

5. 软件主要的工作是定义有价值、可用的软件原型作为软件基础

在敏捷开发过程中软件更需要注意,每次交付到技术同学手里的原型是经过测试与目标用户验证的,避免浪费任何资源,哪怕是一个开发迭代周期;

6. 让开发人员自主控制所有迭代周期
有的软件功能可以在一个迭代周期内完成,而有些需求确需要多个版本的迭代才能完成,而这些迭代周期应该尽可能的让技术同学去规划,软件只需把控最终的判断是否与规划相符合;

7. 除非达到预定目标否则绝不轻易发版

软件经理必须保证给到用户手中的软件是正常符合预期的,过度而过度频繁的更迭会让用户失去安全感,所以没有达到软件预期里程碑与阶段预期时绝不可妥协上线;

8. 每次迭代之后需向整个软件开发团队展示下个版本的需求设计与上个版本的数据回归

让大家看到工作成果可以极大的加深整个软件开发团队的信心,在敏捷开发过程中每一个软件即是一个小软件开发团队的领袖,软件经理需要让这个软件开发团队有更加积极的状态。

瀑布式开发

瀑布式开始是目前大多数软件开发团队仍然在使用的一套开发流程,虽然无论是开发还是软件同学都对其十分的不满,但其仍能在不断拥抱变化的互联网公司被推崇使用必定有其优势。所以在讨论瀑布式开发的局限性前,我们需要先聊下瀑布式开发的基本准则与优势

瀑布式开发的基本原则:

采用阶段式开发,即软件开发过程中分为固定几个阶段:完成需求文档、设计软件架构、完成交互细节、编写代码、测试、部署;
采用阶段式评审,每个阶段结束由上到下进行相应的评审,评审通过后进入下一阶段。
瀑布式开发的优势:

(1)对于管理层而言有可预测性,在理论上只要在软件评审阶段前将所有软件细节确认并完善,且不再更改需求,那软件开发团队就可以为超大型及复杂项目制定相应的开发计划,虽然不进行需求变更这种情况很少见,但是并非不能做到,相反迭代性开发的迭代次数无法预估,很难让管理者做到心中有数;

(2)在瀑布式开发过程中每个阶段都会由对应的负责人员提供相对完善翔实的文档及其他书面材料,这会让项目在开发过程中给人一种感觉,这些项目都经过了所有人的深思熟虑才会进行的相应推进,但是问题在于使用书面材料当作稳定剂多少都会有些靠不住,因为他并不能实际的在你面前演示。

软件开发流程

瀑布式开发的劣势的劣势:

(1)软件验证滞后

软件验证滞后是瀑布式开发过程中最让软件头疼的部分,软件人员必须等到项目进程尾声的时候才可以对软件进行验证,也就是说在投入大量的人力物力之前所有的软件概念都是无法得到充分的验证的,验证滞后也意味着所有阶段不能出现任何纰漏否则将导致整体项目变得失控;

(2)需求变更困难

在瀑布式开发过程中,任何对之前决策的修改与调整都将打乱原本的开发流程,大量已完成工作需要重新评估与推进严重耗费整个软件开发团队的精力,软件经理在跟踪用户需求的过程中,难免会产生需求的变更,如果发生需求变更那修改需求必定在所难免,只是早晚的问题,而且延迟到下一个版本开发也只是一个权宜之计,无论从成本或是用户体验上考虑肯定都是越早改动越好;

(3)难以适应变幻的市场

瀑布式开发过程中的所有工作都严重依赖于流程与文档,任何一点改动都会牵一发而动全身,也使得软件经理压力倍增,软件经理在这一流程下提交给开发的所有软件必须确保通过严格的验证且没有缺陷,另一方面发布过后软件也会提心吊胆,随时做好快速线上修复的准备。

在了解了瀑布式开发过程中的缺陷就不难理解为什么要改用各种敏捷开发,瀑布式开发流程过于理想化,需要人们在开始的时候就预见到所有的问题,全面的把握需求;最终实践证明,往往瀑布式开发只适用于规模很小的项目开发,对于大型项目来说,瀑布式开发就显得难以顺利推进且如果采用瀑布式开发,软件的交付时间通常都会比一开始所预计的时间晚,而且常常是软件上线后发现各种缺陷,软件与整个技术软件开发团队不得不花费更多的精力去进行修补。

此内容DOC下载 此内容PDF下载

【全文完】
关键词标签: 软件公司 程序员 软件开发 
0 ([$-顶稿人数-$])
0 ([$-踩稿人数-$])

版权声明:

1、弈聪软件网站内容中凡注明“来源:XXX(非西安弈聪网站)”的作品,转载自其它媒体,转载目的在于传递更多信息,其中涉及的网站建设,网站优化,APP开发,微信小程序开发,大数据平台开发,区块链技术开发等软件开发技术细节并不代表本站赞同支持其观点,并不对其真实性负责。对于署名“西安弈聪”的作品系本站版权所有,任何人转载请署名来源,否则西安弈聪将追究其相关法律责任。

2、本站内容中未声明为“原创”的内容可能源自其它网站,但并不代表本站支持其观点,对此带来的法律纠纷及其它责任与我方无关。如果此内容侵犯了您的权益,请联系我方进行删除。