广告
返回顶部
首页 > 资讯 > 数据库 >探讨敏捷开发在软件开发中的应用
  • 144
分享到

探讨敏捷开发在软件开发中的应用

2024-04-02 19:04:59 144人浏览 独家记忆
摘要

在软件工程领域,有过很多软件开发模型,如瀑布模型、快速原型模型、增量模型、螺旋模型、演化模型、喷泉模型、 RAD 模型、敏捷软件开发模型、 XP 极端模型。这么多的模型各有各的应用场景、各有各的适用范围,

在软件工程领域,有过很多软件开发模型,如瀑布模型、快速原型模型、增量模型、螺旋模型、演化模型、喷泉模型、 RAD 模型、敏捷软件开发模型、 XP 极端模型。这么多的模型各有各的应用场景、各有各的适用范围,但我认为最实用开发模型还是敏捷软件开发。

中国式软件开发思路是什么样的呢?从我接触过的大多软件项目来看,基本都有一个共同特点——就是必须快,客户都是急脾气,恨不得今天立项,明天就要你拿出产品来。

面对公司和客户如此快节奏的要求,我们有办法吗?人们从生产、生活中总结出来一套即高效又优质的开发模式——敏捷软件开发。

什么是敏捷软件开发呢?

敏捷开发是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系、而又可以独立运行的小项目,并分别完成,从而实现快速开发的目的。

还是具体来说下敏捷开发是如何实现的?

1、 将大的系统拆分成子项目。

  以前我们接受过的思想是立项后先要需求调研、分析,调研后出各种调研报告及需求说明书,需求搞定后,再进行概要设计( UE 设计、 UI 设计、交互设计、数据库设计、框架设计),概要设计完成后再进行详细设计……这样一个周期下来,耗费太长,当进度进入下一阶段,当上一阶段有问题时,会影响到整个项目流程的各个阶段。

  而敏捷方法是会将大的系统拆分成一个个子项目,再把子系统拆分成子模块,尽量减少模块间的耦合性、增加其内聚性,这样我们可以把团队分成多个小组,各组可以同时作业。另外,当一个模块需求发生变化时,对其它模块的影响也不会太大,以实现降低开发难度的目的。

  在之前提到的房产信息网平台建设中,我们就将系统拆分成自行成交、经纪成交、用户权限管理、建委等外部接口、大宗资产、交易管理、平台后台管理、网站前端等模块分别进行需求讨论,需求讨论后再将各模块拆分成各个对象,对象与对象间只是通过公有变量传递信息,尽量减少与外部对象间产生关系。

总结:化整为零个个击破

2、 团队与客户呆在一起

为了降低沟通成本,我们团队所有人员直接开到客户现场,随时与客户沟通,通过面对面的沟通,减少了理解偏差。在项目的各个阶段,我们一直与客户保持零距离接触,随时交流、沟通。通过这种办法,可以第一时间获取需求、第一时间解决问题,减少出错的可能性,提高开发效率,保证开发质量。而且,通过这种方式会更容易取得客户信任,客户能够随时了解到项目的工作状态、工作进度。当相互间具备了信任关系后,余下的工作也会变得轻松、愉快。

在房产项目里,我们在客户现场办公,定期开会讨论需求和设计,当有一些小的不确定问题,团队成员会直接找到客户相关人确认。在整个项目周期中没有发生过大的需求变化。

总结:与客户面对面的交流,降低交流成本,促进相互信任。

3、 用建模方式沟通

  利用模型与客户沟通,用模型来获取用户需求,而不是通过大量的文档,编写文档费时费力,而且效果不好。实际,对于我们大多数人来说并不喜欢花大量时间看各种文字和参数,而模型则会更直观和立体。这里我说的模型不是单指我们平时设计的原型,它包括用例图、类图、部署图、状态图、活动图、包图、对象图、原型图、效果图、 E - R 图等,利用不同图形表达出产品的不同维度,使产品丰富而立体。

  在房产项目里,我们用原型与客户讨论需求,用 ER 图沟通数据库设计,用类图来表达产品的对象,用部署图确定硬件部署环境及网络结构,用活动图来说明信息交互流程,用时序图来表达在时间轴下对象间的交互。通过各种图表来表达产品,利用这种方法会比较直观,而且当发现错误修改起来也容易,不像利用文档方式,修改不方便、维护困难,也不利于阅读、理解。

总结:利用模型来代替文档进行交流。

4、敢于 迎接变化

  市场环境是产品的风向标,我们要随时关注市场。为了迎合市场,产品也要随时变化。需求变化、设计变化……各种变化让我们焦头烂额,但做为产品人的我们同样也应该接受改变,只有产品的快速变化,才能很好的迎接未来。我们欢迎变化,只要是合理的,哪怕是开发阶段,需求也同样可能发生变化。敏捷开发允许变化,通过变化给客户带来更大的竞争力。敏捷开发利用图表来记录需求,所有代码都采用模块式设计,将不同功能尽量分割,减少关联。这就是它能够、也敢于迎接变化的原因。

    提到了敏捷的一个很重要思想就是“勇于迎接变化”。就有人说了,你一定不是技术出身的吧。做技术的就讨论变化,最不允许的就是确定的需求再修改。当产品经理与技术人员沟通时,当谈的一个复杂性操作时,经常说:“你确定不会修改了吧,如果你确定需求不变,我就做!”,你要答应了,再找技术修改时哪就等于堵死了自己的后路。实际,哪能一定有不修改的需求呢?我们做产品不也是时刻在迎接市场的考验吗?在大海上航行,当风向变化,我们的大船不也得时刻准备掉头,准备调整。变化,本身就是为了适应,没有变化,就等于没有进步。但作为产品经理的我们,能做的应该是利用自己的智慧和敏锐的市场洞察力,尽量的去感知风向,尽量的控制需求,在需求发现初期就做好充足的调研。怕变化,不是办法,在项目初期就要做好灵活可调整的方案,如果需求真的变化了,我们应该怎么办,这才是敏捷的思想,需求的变化,我们谁能阻拦得了呢?

5、 尽早、持续的交付可运行的阶段性成果

  之前我曾经说过,一个项目的失败,一般不是技术原因,多是因为客户对我们失去信任。我们需要持续的、不断的给客户以信任感,一种是我们在客户现场不断的交流、沟通,让客户感受到我们的热度。同样,还需要尽早的、持续的给客户提供相应的成果物(可运行的产品),让客户看到我们的能力。当然,这样还有另一个好处是,能够把问题提早的暴露出来,不要羞羞答答像个小女人,不敢见人,只有提前暴露,才能提早解决,问题越晚暴露越难解决。

在房产项目中,当天完成的内容在编译没问题后,会把修改的功能部署到平台服务器上,以便于客户随时能够看到变化,了解项目进度。如有问题的话,也能够尽早暴露出来。

总结:为了降低项目风险,尽早交付可运行程序

6、 面对面的沟通

  最快的交流方式就是面对面的沟通,在敏捷开发中,最提倡的方式是减少哪此冗余的、效率低下的沟通方式,用最快速的方法来直接沟通。让技术人员、设计人员、客户等所有团队成员都在一起办公,减少信息交流的断路,让沟通变得顺畅。

  在房产项目中,当有问题不理解,需要交流时,都是直接找我,我不清楚的直接找客户。当我不在时,同事们也会直接与客户进行沟通,任何人都可以直接获取需求。

总结:直接沟通,减少中间环节

7、 可工作的软件是最主要的衡量标准

  出再多的文档、再多的中间产物,都没有出结果来得真切。客户最观心的不是中间物,而是成果物。对于敏捷软件开发来说,可以工作的软件是评测开发进度的最主要衡量标准。唱的再好,也不如做的好,做事要落地,实实在在、踏踏实实是敏捷开发的核心,不玩花拳绣腿。

总结:做出可交付的软件是项目的核心

8、 保持恒定的开发速度

  项目开发是一次长跑,短期内迅速的加速,并不是长跑的方式,我们应该持续的、匀速的跑步方式,这样才能保证团队成员能一直坚持到最后。敏捷开发提供可持续的开发速度,这样不仅团队成员不至于疲惫,也有利于制定项目开发进度,控制开发周期。

总结:项目开发过程是长跑,不要一开始就冲刺

9、 定期团队优化

  我们会每隔一段时间进行一次团队建设,进行批评与自我批评,找出工作中的问题及影响个人与团队发展的瓶颈。我们通过交流、沟通方式找出团队及成员间的问题,然后进行自我调整,通过不断的优化、升级自有团队,打造出一个能战斗的队伍。

10、 配合使用敏捷开发工具

  CORNERSTONE 是一个一站式项目管理协作平台, 适合各大敏捷开发团队,旨在帮助各大企业进行智能管理,解决研发项目管理痛点,它支持持续交付与集成,能够透过各个维度跟踪记录项目进度,帮助团队轻松配合完成目标。

  它为团队提供敏捷、任务、需求、缺陷、测试管理、 WIKI、共享文件和日历等功能模块,帮助企业完成团队协作和敏捷开发中的项目管理需求;更有甘特图、看板、思维导图、燃尽图等多维度视图,帮助企业全面把控项目情况。

  同时, CORNERSTONE还自带文件储存和共享、文档协作功能,并且可以实现团队之间的实时沟通。换句话说,选用 CORNERSTONE,可以不需要再挑选文档协作工具、文件储存和共享工具、团队内部沟通工具。

  此外,不仅是产品研发,销售、运营、行政审批也可以使用 CORNERSTONE进行管理。使用统一的管理平台,对于企业来说无疑是大大降低了管理成本。

     总结:

如果项目管理者能够很好的运用敏捷开发思想,就相当于在游戏世界里拥有了法器,美食世界里掌握了烹饪之道。在敏捷开发里还有许多其它思想,但有的思想本人并不太认同,如用“测试驱动开发”,在中国与在国外不同,在国外有CMMI,对测试要求非常高,测试实际就是质量检查部门、质量控制部门,有着很高的权限,对测试人员也是更加尊重和认同。在国内,公司多重开发而轻测试,从你公司测试人员与开发人员的薪水上就能看得出来,谁更受重视。想让测试人员驱动开发,在目前的现状中有些难以做到。有时我想,前人已经总结出了那么多好的思想,确实应该多学学、多看看、多用用,但拿来的思想并不一定全适用,每种思想都有着自己的成长土壤,不是只要多施肥、多浇水就能长出好庄稼。有时,也要看看,植物的习性,是否更适应我们的环境。 CORNERSTONE 现在申请20人以下团队即可免费使用。

探讨敏捷开发在软件开发中的应用

您可能感兴趣的文档:

--结束END--

本文标题: 探讨敏捷开发在软件开发中的应用

本文链接: https://www.lsjlt.com/news/48026.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 探讨敏捷开发在软件开发中的应用
    在软件工程领域,有过很多软件开发模型,如瀑布模型、快速原型模型、增量模型、螺旋模型、演化模型、喷泉模型、 RAD 模型、敏捷软件开发模型、 XP 极端模型。这么多的模型各有各的应用场景、各有各的适用范围,...
    99+
    2022-10-18
  • 阿里云服务器软件开发探索高效云端应用开发的新途径
    阿里云服务器是一种强大的云计算服务,它提供了高性能的硬件资源和全面的软件开发工具,使得开发者可以轻松地在云端进行软件开发和部署。本篇文章将详细介绍阿里云服务器软件开发的各个方面,包括其特点、优势、应用领域等。 一、阿里云服务器的特点阿里云服...
    99+
    2023-10-29
    高效 阿里 云端
  • Golang常见的应用场景在软件开发中有哪些?
    Golang作为一种开发语言,具有简洁高效、并发性能强等特点,因而在软件开发中有着广泛的应用场景。下面将介绍一些常见的应用场景。网络编程Golang在网络编程方面表现出色,特别适合构建高并发、高性能的服务器。它提供了丰富的网络库,开发人员可...
    99+
    2023-12-28
    云计算 web开发 分布式系统
  • 探索PHP和Numpy在Linux开发技术中的应用
    PHP和Numpy是两种广泛应用于Linux开发技术中的编程语言和库。PHP是一种脚本语言,主要用于Web开发和服务器端编程,而Numpy是一个用于科学计算的Python库,主要用于处理数学、科学和工程方面的数据。 在本文中,我们将探讨PH...
    99+
    2023-11-08
    numpy 开发技术 linux
  • Path缓存技术在PHP开发中的应用探究
    在Web开发中,缓存技术是提高性能和响应速度的重要手段之一。在PHP开发中,Path缓存技术是一种非常实用的缓存技术,可以显著提高Web应用的性能和响应速度。本文将探究Path缓存技术在PHP开发中的应用。 一、什么是Path缓存技术 P...
    99+
    2023-08-26
    path 开发技术 缓存
  • 建设工程项目软件的开发与应用
    随着信息技术的发展,建设工程项目软件的开发和应用已成为建筑行业的重要组成部分。建设工程项目软件是指为建设工程项目的管理、设计、施工、运行和维护等环节提供技术支持的软件系统。这些软件能够提高建设项目的效率,降低管理成本,提高工程质量,改善工作...
    99+
    2023-12-15
    建设工程项目 软件
  • 实时数据同步在PHP开发技术中的应用探究
    随着互联网和移动设备的普及,实时数据同步已经成为了现代应用程序不可或缺的一个重要功能。在PHP开发技术中,实时数据同步也有着广泛的应用。本文将介绍实时数据同步的概念、实现方式以及在PHP开发技术中的应用探究。 什么是实时数据同步? 实时数...
    99+
    2023-09-10
    开发技术 同步 实时
  • 对象在 Java、Windows 和 Laravel 中的应用:一场全新的软件开发革命?
    随着计算机技术的不断发展,软件开发也变得越来越复杂。在这样的背景下,对象的概念逐渐被引入到软件开发中,成为了一场全新的软件开发革命。 Java是一种面向对象的编程语言,因此在Java中,对象的概念被广泛应用。Java中的对象是由类定义的,...
    99+
    2023-09-22
    windows laravel 对象
  • [Android Studio]开发APP应用出现软件程序打开闪退的排错
         🟧🟨🟩🟦🟪 Android Debug🟧🟨🟩🟦🟪 Topic  发布...
    99+
    2023-09-05
    android studio android ide
  • AJAX开发技术在PHP开发中的应用技巧有哪些
    AJAX开发技术在PHP开发中的应用技巧有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。[AJAX介绍]Ajax是使用客户端脚本与Web服...
    99+
    2022-10-19
  • 重定向文件在ASP开发技术中的应用
    在ASP开发中,重定向是一个非常有用的技术。它可以让我们把用户请求发送到不同的页面或者服务器,以达到不同的目的。本文将介绍,并附上演示代码。 一、重定向的概念 重定向是一种将请求传递到不同位置的技术。在ASP中,我们可以使用Respons...
    99+
    2023-09-21
    开发技术 重定向 文件
  • 存储技术探究:如何在 PHP 开发中应用学习笔记?
    学习笔记是学习过程中的重要工具,帮助我们记录下学习过程中的重点和知识点,方便我们日后查阅和回顾。而在 PHP 开发中,如何应用学习笔记呢?本文将从存储技术的角度出发,探究如何在 PHP 开发中应用学习笔记。 一、存储技术的选择 在 PHP...
    99+
    2023-09-02
    学习笔记 开发技术 存储
  • GO编程算法在Linux开发中的应用:如何提高开发效率?
    在现代软件开发中,算法是一个至关重要的领域。算法是指通过编写程序来解决特定问题的过程。在Linux开发中,GO语言是一个非常流行的编程语言,它具有高效的并发性和出色的性能。GO编程算法可以帮助开发人员更快地编写高质量的代码,提高开发效率。...
    99+
    2023-09-30
    编程算法 linux 开发技术
  • 开源软件在地图数据处理中的应用
    作为开源软件的受益者,在享受开源带来的技术便利同时,我们也积极拥抱开源,同时也回馈开源。城市交通指数(TTI)作为公司第16个开源项目,通过盖亚计划对外开放了脱敏数据,下载人员分布于127个高校或科研机构,覆盖了70%的双一流高校。在地图数...
    99+
    2023-06-05
  • Spring框架在Go语言开发中的应用有哪些值得探索的地方?
    Spring框架是Java开发中广泛使用的一种框架,它提供了一系列的功能和特性,使得Java开发变得更加简单和高效。然而,近年来,Go语言也成为了一种非常流行的开发语言,很多人开始使用Go语言进行开发。那么,Spring框架在Go语言开发中...
    99+
    2023-11-01
    linux git spring
  • 一套完整的.net WEB应用软件快速开发解决方案
    learun是什么learun是一款.net WEB应用软件快速开发平台,主要服务于软件企业和传统行业企事业单位信息中心的开发人员,为他们提供一套完整的.net WEB应用软件快速开发解决方案。平台包括如下几个部分:learun平台集成环境...
    99+
    2023-06-03
  • Python开发建议:掌握并应用最佳的软件工程实践
    Python作为一种高级编程语言,在Web应用开发、数据科学、人工智能等领域被广泛应用。虽然Python具有简单、易学的特点,但软件工程的复杂性随着项目的增长会变得更加显著。因此,在Python开发过程中,掌握并应用最佳的软件工程实践是至关...
    99+
    2023-11-23
    实践 软件工程 关键词:Python开发
  • Android开发之开门狗在程序锁中的应用实例
    本文实例讲述了Android开发之开门狗在程序锁中的应用方法。分享给大家供大家参考,具体如下: protected static final String TAG = "Wa...
    99+
    2022-06-06
    程序 android开发 Android
  • PSR2和PSR4规范在Laravel开发中的应用
    在Laravel开发中,遵循PSR2和PSR4规范是非常重要的,这些规范可以提高代码的可读性和维护性。本文将介绍PSR2和PSR4规范在Laravel开发中的应用,并提供具体的代码示例。一、PSR2规范的应用PSR2规范主要关注代码的风格和...
    99+
    2023-10-21
    开发 规范 laravel
  • PHP在企业级网站开发中的应用
    PHP作为一种最流行的服务器端脚本语言之一,被广泛应用于企业级网站的开发中。它的灵活性、可扩展性和易用性使得PHP成为企业级网站开发的首选语言。本文将讨论PHP在企业级网站开发中的应用。首先,PHP在企业级网站的开发中扮演着关键的角色。它可...
    99+
    2023-10-27
    编程关键词 PHP应用 企业级网站开发
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作