什么是敏捷开发

敏捷是一种软件开发方法,它在本世纪初变得非常突出。这是一种迭代式的开发方法,它将项目分解成可以在短时间内完成的小单元。敏捷变得如此流行,以至于年轻的开发人员可能没有经历过任何其他的软件构建方式。
另请参见:ServerMania应用程序托管解决方案
敏捷是几种相互竞争的软件开发方法之一,旨在解决自20世纪50年代以来公司软件开发方式中的问题。在大型企业中主导开发的瀑布式方法是一个严格的线性顺序过程。它从收集需求开始,一直到设计、实现、验证和维护。有时会有更多的台阶。有时他们有不同的名字。但今天的基本纲要是一样的。
什么是敏捷开发?
瀑布方法有效,但它引起了很多问题。在最初的需求实现之前,客户可能不知道他们真正的需求是什么。在收集需求和软件交付之间可能有几个月或几年的时间。查尔斯R。Martin指出溢出:“需求波动性是软件工程的核心问题。”
此外,设计师可能不了解开发人员面临的实现挑战。营销人员可能想要的功能不在最初的要求中。在项目开始时选择的技术在项目结束时可能会过时。瀑布过程的连续性使进化变得困难,而改变代价高昂。
敏捷可能被认为是软件开发的反瀑布方法。敏捷不是连续的项目,而是迭代的。敏捷将客户、开发人员、设计师和项目经理聚集在一起,而不是专门知识的孤岛。敏捷开发人员期望需求发生变化。详细规划在整个开发过程中进行,而不是在开始时。
敏捷开发的关键是迭代。在最初的计划阶段,项目经理将工作分解为增量,预计大约需要一个月或六周才能完成。在每个周期(有时称为冲刺)中,都有额外的计划、实施、测试以及与客户的咨询。利益相关者以团队形式工作,并被鼓励相互交谈。计划是灵活的,计划可以在冲刺期间和冲刺之间更改。
在每个周期结束时,将工作代码交付给客户,客户提供反馈,并在下一个周期中予以考虑。团队中通常有一名客户代表,负责照顾客户的利益并与客户和开发人员交谈。
总之,敏捷开发包括:
旨在产生有用代码的短期开发冲刺。
利益相关者之间的沟通。
短反馈循环和需求和目标的持续演变。
敏捷软件开发并非没有权衡。提供项目所需时间的准确估计可能是一项挑战。但敏捷是当今许多企业首选的软件开发方法。

持续集成如何使敏捷更高效?
敏捷开发的一个问题是它会产生大量额外的工作。目标是确保软件在每次冲刺结束时都是可交付的。这意味着它必须在整个sprint过程中进行彻底的测试,而不是在开发完成之后。特性必须定期提交给主开发分支,最好不要破坏它。
另请参见:Jenkins软件教程:为什么以及如何使用CI工具
在瀑布式系统下,通常有专门的测试人员,他们的工作是确保一切都按预期进行,并且符合要求。在敏捷环境下,需求可能会发生变化,在提交之间没有时间进行彻底的第三方测试。测试人员在软件开发中仍然扮演着至关重要的角色,但是开发人员需要做比过去多得多的测试。
解决方案是自动化测试和持续集成(CI)。
持续集成使来自多个开发人员的代码的测试和集成自动化到一个项目中。理想情况下,开发人员经常提交代码。提交代码的频率越高,集成就越容易,因为更改和冲突越少。不频繁的提交会导致严重减慢开发速度的问题。
Git等版本控制软件是持续集成的重要组成部分,使用Jenkins或Drone等软件进行自动测试也是如此。
持续集成软件做什么?
持续集成软件监视代码存储库。当开发人员提交更改时,CI服务器将签出软件。它构建一个测试环境,通常使用与生产中使用的软件相同的环境部署虚拟服务器或容器。
一旦CI服务器部署了测试环境,它将运行构建、编译或以其他方式准备软件、安装应用程序并运行测试。如果构建或测试失败,CI将向开发团队发送警报,以便他们知道需要修复。
如果开发人员必须构建测试环境,构建软件,并在每次提交软件时运行测试,否则会浪费生产时间。这阻碍了他们定期承诺,从而进一步减缓了发展。开发人员负责对他们编写的代码编写和运行单元测试。但是集成测试是自动化的,确保主存储库始终处于可接受的状态。
总之
敏捷软件开发允许软件项目对技术和业务需求的变化做出反应。它关注产品质量和利益相关者的参与,而不是软件交付的顺序过程。
版本控制和持续集成平台等软件自动化了耗时的任务,使敏捷开发更高效、更高效,更有可能生成高质量的软件。
ServerMania的服务器托管,包括我们的混合服务器和专用服务器,是托管版本控制软件和持续集成平台的理想平台。
要与服务器托管专家讨论托管您的开发管道的最佳服务器,请在此页面的聊天窗口中开始对话,或通过电话或电子邮件与我们联系以获得免费的初始咨询。

 

 

云基在此发文(包括但不限于汉字、拼音、拉丁字母、斯拉夫字母、日语假名、阿拉伯字母、单词、句子、图片、影像、录音、以及前述之各种任意组合等等)均为随意敲击键盘所出,用于检验本人电脑键盘录入、屏幕显示的机械、光电性能,并不代表本人局部或全部同意、支持或者反对文中观点。如需要详查请直接与键盘发明者及生产厂商法人代表联系。