首页解决方案 成功案例 网络营销 新闻中心 关于我们
QQ联系
电话联系
手机联系

新零售系统

新零售系统
连锁门店会员管理系统

连锁门店会员管理系统

收银、会员卡、库存管理、员工绩效等
小程序门店预约系统

小程序门店预约系统

预约+商城+到店核销+员工管理等
小程序电商系统

小程序电商系统

直播带货、拼团、秒杀、分销、优惠券等
进销管理系统(ERP)

进销管理系统(ERP)

进货、销售、仓库管理
客户关系管理系统(CRM)

客户关系管理系统(CRM)

客户、商机、合同、绩效等

政务办公及基层治理大数据服务

街道党群服务中心

基层党群运营管理系统

党群服务中心、资讯、活动、积分制度管理等
乡村振兴服务平台

乡村振兴积分制服务平台

居民积分、社区活动、社区任务等
党建积分制管理

党建积分制管理

党员积分、党组织活动、组织任务、组织学习等
政务大数据中心

政务大数据平台

数据汇聚、数据治理、数据应用

物业运营管理系统

物业运营管理系统
智慧社区

智慧社区

在线缴费、楼栋管家、报事报修等
停车缴费管理系统

停车缴费管理系统

无人值守、在线缴费等

物业收费管理系统

资源管理、收费管理、财务监督报事报修等

企业信息化

集团办公OA

集团办公OA

OA协同办公系统的研发与创新
模板网站

模板网站

模板快速建站专家
云考试系统

云考试系统

提升知识培训考试管理水平,节省培训考试成本

武汉软件开发教你如何实现敏捷软件开发?

发布时间:2024-07-31 10:10:51
发布者:内容管理员
浏览次数:408


  敏捷开发究竟是什么?武汉软件开发公司-松蓝云来告诉你通俗地讲,他就是将项目分为多个独立运行,但又存在联系地小项目,通过分别完成实现快速开发。整体来看,它的优势就是高效!

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

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

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

  一、什么是敏捷软件开发呢?

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

  二、敏捷开发是如何实现的?

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

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

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

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

  总结:化整为零个个击破

  2. 团队与客户呆在一起

  为了降低沟通成本,我们团队所有人员直接开到客户现场,随时与客户沟通,通过面对面的沟通,减少了理解偏差。

  在项目的各个阶段,我们一直与客户保持零距离接触,随时交流、沟通。通过这种办法,可以第一时间获取需求、第一时间解决问题,减少出错的可能性,提高开发效率,保证开发质量。

  而且,通过这种方式会更容易取得客户信任,客户能够随时了解到项目的工作状态、工作进度。当相互间具备了信任关系后,余下的工作也会变得轻松、愉快。

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

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

  3. 用建模方式沟通

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

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

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

  4. 敢于迎接变化

  市场环境是产品的风向标,我们要随时关注市场。为了迎合市场,产品也要随时变化。

  需求变化、设计变化……各种变化让我们焦头烂额,但做为产品人的我们同样也应该接受改变,只有产品的快速变化,才能很好的迎接未来。

  我们欢迎变化,只要是合理的,哪怕是开发阶段,需求也同样可能发生变化。

  敏捷开发允许变化,通过变化给客户带来更大的竞争力。敏捷开发利用图表来记录需求,所有代码都采用模块式设计,将不同功能尽量分割,减少关联。这就是它能够、也敢于迎接变化的原因。

  提到了敏捷的一个很重要思想就是“勇于迎接变化”。

  就有人说了,你一定不是技术出身的吧。做技术的就讨论变化,最不允许的就是确定的需求再修改。当产品经理与技术人员沟通时,当谈的一个复杂性操作时,经常说:“你确定不会修改了吧,如果你确定需求不变,我就做!”,你要答应了,再找技术修改时哪就等于堵死了自己的后路。

  实际,哪能一定有不修改的需求呢?我们做产品不也是时刻在迎接市场的考验吗?

  在大海上航行,当风向变化,我们的大船不也得时刻准备掉头,准备调整。变化,本身就是为了适应,没有变化,就等于没有进步。

  但作为产品经理的我们,能做的应该是利用自己的智慧和敏锐的市场洞察力,尽量的去感知风向,尽量的控制需求,在需求发现初期就做好充足的调研。

  怕变化,不是办法,在项目初期就要做好灵活可调整的方案,如果需求真的变化了,我们应该怎么办,这才是敏捷的思想,需求的变化,我们谁能阻拦得了呢?

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

  之前我曾经说过,一个项目的失败,一般不是技术原因,多是因为客户对我们失去信任。我们需要持续的、不断的给客户以信任感,一种是我们在客户现场不断的交流、沟通,让客户感受到我们的热度。同样,还需要尽早的、持续的给客户提供相应的成果物(可运行的产品),让客户看到我们的能力。

  当然,这样还有另一个好处是,能够把问题提早的暴露出来,不要羞羞答答像个小女人,不敢见人,只有提前暴露,才能提早解决,问题越晚暴露越难解决。

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

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

  6. 面对面的沟通

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

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

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

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

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

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

  8. 保持恒定的开发速度

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

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

  9. 定期团队优化

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

  总结:

  如果项目管理者能够很好的运用敏捷开发思想,就相当于在游戏世界里拥有了法器,美食世界里掌握了烹饪之道。

  在敏捷开发里还有许多其它思想,但有的思想本人并不太认同,如用“测试驱动开发”,在中国与在国外不同,在国外有CMMI,对测试要求非常高,测试实际就是质量检查部门、质量控制部门,有着很高的权限,对测试人员也是更加尊重和认同。

  在国内,公司多重开发而轻测试,从你公司测试人员与开发人员的薪水上就能看得出来,谁更受重视。想让测试人员驱动开发,在目前的现状中有些难以做到。

  有时我想,前人已经总结出了那么多好的思想,确实应该多学学、多看看、多用用,但拿来的思想并不一定全适用,每种思想都有着自己的成长土壤,不是只要多施肥、多浇水就能长出好庄稼。有时,也要看看,植物的习性,是否更适应我们的环境。