终於快结束30天的挑战了,专案开发的知识点除了环境安装、技术学习以外,还有一个重点知识,那就是专案的开发流程,不论是想要开发甚麽样的大型专案,都一定要先学习各种开发流程,然後寻找最适合现在使用的流程下去开发,这边会介绍两个常被人提及的开发模型,瀑布式与敏捷式。
在讲开发模型以前,要先了解一下软件开发生命周期(Software Development Life Cycle,SDLC),周期各阶段如下图所示。
这个步骤为专案开发的起点,当客户提出需求时,第一个步骤就是计画,在这个阶段需要PM、UI/UX Designer、Developers 以及客户共同确认几个目标。
当需求与范围确认完成後,就开始进入设计流程,这个阶段交由PM 或UI/UX Designer 负责,在这里也有分为几个阶段。
到这里才正式进入开发的流程,从一开始到这个阶段才衍生出不同开发模型,例如Waterfall Model、Agile Model 等,依照公司的文化、步调以及团队的组成等等去决定使用的开发模型。
当然,在开发的过程中,团队也会进行测试、修Bugs的过程;然而在软件开发完毕,在将产品正式部署以前,必须再更深入的测试,了解使用者的反应、喜好以及软件运作的情况,有机会做出进一步的修改。
通常,测试的工作会交由开发团队中的QA (Quality Assurance)团队,邀请一小群的Users 去测试Beta 版,利用追踪工具、埋点去检视使用者的操作情况。
在这个步骤就是将过去开发的结果部署到正式机上,将产品推向市场,发布产品给所有使用者。
在产品正式部署後,会收到许多User 的反馈,需求就有可能进行更动,当然也有可能跑出许多测试时未发现的Bugs,这个阶段就必须因应Users 的反馈进行维护并持续更新。
这里也就是被称为生命周期(Life Cycle) 的原因,因为整个开发流程就是不断循环的一个过程,会根据使用者的需求改变、市场的改变,重复着上述每个步骤持续让产品更新迭代,才能够使产品生生不息。
Waterfall Model 瀑布模型也称作瀑布式开发,它是大多数软件开发的最初标准,基本上就是遵循着SDLC 的流程,必须完整的经历生命周期的每个步骤,系统化的考虑时间与资源的投入以及分析、设计、技术等。
由於该模型强调开发过程中需有完整的规划、分析、设计、测试等管理与控制,因此能有效的确保系统品质。
Agile Model 敏捷模型也称作敏捷式开发,是一种应对快速变化需求的开发方式,强调开发人员团队成员及客户之间的紧密协同运作、面对面的沟通、频繁交付新的软件版本,能够很好地适应需求的快速变化。
在敏捷式开发的过程中,会将专案项目分成多个子项目,各个子项目都会经过设计、开发、测试等流程,在子项目完成时,将成品展示给客户,若符合需求再向下开发,反之则进行修正改进,如此一来可将整体风险降至最低,并使产品能够快速适应变化。
由於将开发工作细分化,大大减少了前期规画和设计的数量,因此可将每个子项目的开发时程减少到一到四周的时间,以保证可以快速迭代,迭代的方式可能不会一次增加足够的功能可以立即发布使用,目标是在每次迭代都可以有个可用的发行版,因此完整产品的发布或新功能可能需要经过多次迭代。
因为较注重人员的沟通而忽略文件的重要性,若专案人员流动性太高,会给维护带来不少难度,特别式专案存在新手较多的时候,老手会比较辛苦。
软件业到底在干嘛?软件业开发流程、各职能大揭密!
瀑布模型 - 维基百科,自由的百科全书
敏捷软件开发 - 维基百科,自由的百科全书
Difference between Agile and Waterfall model - javatpoint
【笔记】Waterfall model 瀑布模型介绍 @ 橘子乱说话 :: 痞客邦 ::
<<: 【Day 5_ Arm Mali GPU家族究竟是何方神圣_下篇】
>>: 【Day 6_ Arm的开发者友善工具组Arm Mobile Studio】
[CC: Tweaked / Lua] 寻找合适的开发工具 在上一回,我学会了自订 CC: Twea...
ref : https://medium.com/dean-lin/真正理解资料库的悲观锁-vs-乐...
007 2021线上看 世界局势波诡云谲,再度出山的邦德(丹尼尔·克雷格饰)面临有史以来空前的危机。...
昨天写了 "利用网页浏览器执行Raspberry Pi的程序" 很直觉地想把讯息...
今天大概会聊到的范围 @Composable compose compiler & run...