快速开发模式与敏捷模式的关系

我们目前快不起来,不在于我们是否采取敏捷方式,而是我们基础太薄弱

  1、开发人员不理解现有业务

  2、开发人员不理解现有代码

  3、开发人员不理解现有数据表关系、关键字段变化、VIEW、SP、报表

  4、开发人员不理解MAP在典型场景中的实际应用,不了解MAP到底有多少函数可以帮助开发

  5、开发人员大多是新人,对开发过程规范不了解。我们目前采取CMMI开发过程规范,光主节点就有78个。开发部门的老人也大部分只是只开发过一个子系统,对其他子系统的业务、代码、数据库也不了解。只是MAP和开发过程规范比武汉开发新人熟悉一些。

  6、我们的设计人员也大多是新人,不了解现有业务和系统功能

  7、我们的自测没有方法,多了工序,耗了人工和时间,但效果并不明显。

  8、我们的代码审查没有方法,多了工序,耗了人工和时间,但效果并不明显。

  9、我们的大数据量测试、多场景并发测试、集成跨子系统影响测试、安装部署测试、环境兼容性测试、权限点测试、帮助文件测试也是没有优化,消耗大量时间。

  只有先把这些基础补起来,我们的开发效率、开发质量就会比我们现在好很多。所以我们今年大力启动多项针对性的关键行动计划来提升各个方面。但这些做到后我们也并不能做到3个月快速发版。

  当然,我们还可以继续优化:

  1、需求规划不能滞后,这是常见挤压下游设计、开发、测试时间的原因。需求分为功能增强和BUG修补。对于BUG,ERP3.0会提供BUG自动发回功能,让需求收集需求规划阶段能够优化缩短。

  2、开发Leader在功能设计中期就进入,理解业务,设计数据库,设计功能代码实现和代码修改方案、设计接口、识别公共代码。

  3、平台提供大量稳定性功能、代码审查工具、性能优化数据库设计指引,平台还提供日志、异常、输入规则校验底层框架,把这些都从业务代码中抽取出去,简化代码开发。平台应用架构组也梳理子系统代码分层解耦、JS代码缩减,力求业务子系统开发少写代码,只写业务代码。

  4、设计部门进行设计模板化,平台应用架构组也提供代码模板,开发也尽量模板化COPY修改。简化开发,提高效率和质量。

  但要想更快起来,我们必须引入敏捷项目管理、敏捷设计、敏捷开发敏捷测试

  敏捷测试的核心是要和开发一起并行,把BUG消灭在开发的每天中,而不是在后期集中测试集中爆发。这要求咱们并行写测试用例、并行做自动化测试、并行持续每日自动构建自动脚本测试。咱们目前设计方法和测试方法不一致所以无法并行测试用例,这今年会解决;咱们代码各异没有模板,所以自动化测试跑不起来;我们功能自动化测试经验也尚浅需要加强;

  光靠敏捷测试是不够的,保证代码稳定还得主要靠开发人员。所以敏捷开发需要开展单元测试靠开发人员主力保证代码稳定,在单个开发人员编码能力不强的状况下可以采用开发leader编写代码骨架普通开发人员填肉的配合结对编程,而且还得实时进行重构防止代码逐步腐烂导致开发进度开发质量连年下降。这两项也是咱们的空白。

单元测试,最大的误区是很多人以为是先完代码,然后写测试代码来测试已写的函数。其实不然,而是先按照业务场景先写测试函数,这样便于程序员通过输入输出、函数的定义、函数的串联来达到深刻理解业务需求。所以说,单元测试,其核心是测试驱动。

  敏捷测试,想做到测试同步,就必须开发人员和测试人员都按照同样的业务场景去分析思考,测试根据场景分析得到测试用例,开发根据场景分析得到单元测试代码。这是同宗同源的。只有这样工作,才能真正保证测试用例编写和开发人员编写代码是同步的。

  敏捷测试和敏捷开发的本质是让代码质量持续保持稳定,以便于可以随时发布。

  敏捷设计的核心是用户故事(咱们叫用户流程场景,在UML中变形为用例图),这是敏捷测试、敏捷开发共同的源头,这样测试才好验证代码是否符合场景。可以采取咱们前段时间做的组织结构-岗位职责-一级流程-二级流程-功能点+UI草稿,这样来把用户流程场景和功能点映射在一起,并且容易做项目计划估算。用户故事有优先级,咱们也有。用户故事要求独立,咱们也是把一般和特殊分离,力求每个功能点归类成Grid/Form/Report。用户故事有一点比咱们做的先进,就是每个故事都必须具备验收条件,咱们以后也需要这么做。

  敏捷项目管理的核心是20个工作日迭代一次。每个迭代周期包括详细设计、开发、测试、演示冲刺四个部分。分到每个环节也就是5天,所以必须持续稳定、同步测试。为了保证20个工作日迭代一次,就不能在这个迭代小周期内中途变更需求、变更设计。这些变更必须在下一个迭代周期去解决。通过有限的工作日来限定有限的需求,有限的人力。也就使需求稳定、人员稳定,这是开发效率开发过程不出异常的两个基础保证。

  敏捷项目管理的任务是按小时来计算的。我们现在做不到按小时就是因为我们想在软件设计初期就深刻理解每个功能,但其实不可能做到。而敏捷可以,是敏捷不需要在初期深刻理解每个功能,而只需要把范围缩小到本迭代周期内要实现的功能聚焦思考即可。持续滚动迭代,会逐步思考精确。而且按小时算有个好处,每个迭代周期有多少小时是一定的(20天x8小时x人数),你放进本迭代周期的任务超出时间了,那就当然无法执行了,这也保证了迭代时间估算的准确性。

  在这些支撑下,燃尽图只是一个类似丰田可视化看板而已。很多人误认为燃尽图是敏捷SCRUM的核心,其实不然,燃尽图只是表象,支撑它的东西才是核心。不过燃尽图中的正在排队的任务,正在开发的任务,已经开发完成的任务,需要返工修复的任务,还没有计划的任务,这些分类的任务在燃尽图中倒是一清二楚,令团队的每个人都很快明白进展和问题,并且认识信息一致。

  至于:规划会、变更会、立会、周会、冲刺演示会,所有这些会议,全体团队成员(产品经理、PM、设计、开发leader、开发、测试、QA)都要一起参加;平时工作,项目团队都要坐在一起。这些方法都是为了让信息快速共享同步。这些敏捷项目管理方法大家平时已经在用了。

  20天出一个小迭代版本,60天出一个大迭代版本,这是我们一切思考敏捷创新敏捷尝试敏捷的源泉。大家以此为根,把不以此为目的的旁枝措施都砍掉。否则极有可能走向照猫画虎邯郸学步,成了片面追求敏捷模式了。

  以上上述所有能力和基础要想摸索通、准备好这些基础和人员能力模型提升、和咱们现状结合有效、并且产生规模效应,没有2-3年的努力是无法做到的,尤其在我们连年大量新人加入的情况下。所以新人培养模式如何快速培养新人是关键的前提,新人提升不快,咱们这些所有的高级职责和工作要求就无法执行。

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-07-29 14:47:08

快速开发模式与敏捷模式的关系的相关文章

Google+话题探讨分享:应用快速迭代(敏捷模式)和用户不升级

文章描述:当移动应用"敏捷迭代"遇到"用户不升级". 某个深夜在Google+参与一个话题的讨论,事后觉得这个话题有价值,就继续做思考整理.顺便把stream里的内容转贴在文末留以备份,方便沉淀,也可以让大家继续参与交流讨论. APP升级习惯调查 是这个话题讨论的源头,这篇日志是从移动应用快速迭代升级与用户忽视或者不升级应用之间带来的冲突,引发的一连串的思考和分析. 根据这个话题,我也做了一些延伸的思考. 在移动应用的研发中,应用快速迭代(敏捷模式)和用户不升级应用

《敏捷软件开发:原则、模式与实践(C#版.修订版)》一导读

前 言 20世纪90年代初,我(Bob)写了一本名为Designing Object-Oriented C++ Application using the Booch Method的书.它曾是我的代表作,其效果和销量都让我非常高兴. 这本书最初想作为Designing一书的第2版,但是结果却并非如此.书中所保留的原书内容非常少,只有3章内容,即便这3章也进行了大量的修改,但书的意图.精神以及许多知识是相同的.自Desinging出版10年以来,在软件设计和开发方面我又学到了非常多的知识,这些将在

Java模式开发之责任链模式

从击鼓传花谈起 击鼓传花是一种热闹而又紧张的饮酒游戏.在酒宴上宾客依次坐定位置,由一人击鼓,击鼓的地方与传花的地方是分开的,以示公正.开始击鼓时,花束就开始依次传递,鼓声一落,如果花束在某人手中,则该人就得饮酒. 假比说,贾母.贾赦.贾政.贾宝玉和贾环是五个参加击鼓传花游戏的传花者,他们组成一个环链.击鼓者将花传给贾母,开始传花游戏.花由贾母传给贾赦,由贾赦传给贾政,由贾政传给贾宝玉,又由贾宝玉传给贾环,由贾环传回给贾母,如此往复(见下图).当鼓声停止时,手中有花的人就得执行酒令. 开发之责任链

快速浏览器进入多选模式的方法

  快速浏览器不仅能够为我们提供强大的手机图片预览与编辑功能以外,我们还能将图片上传备份到网络云盘,不过一些用户在使用快速浏览器查看图片时,想要将不需要的图片从浏览器中删除,那么这时我们就需要用到多选模式,而一些用户不知道如何在快速浏览器多选图片,故此小编为您带来了详细的操作方法. 操作方法 小编这里为大家带来了两种操作方式,用户可按照下方二选一即可; 方法一:列表里面长按相册或者图片等,即可进入多选模式. 方法二:在图标列表等的顶部可以看到多选按钮,点击即可进入多选模式. 开发者模式">

取消耳机模式-android 开发如何关闭耳机模式

问题描述 android 开发如何关闭耳机模式 5C 在开发一个类似360智键,可是发现当接听电话的时候,处于耳机模式.说话对方听不到,对方说话,我们也听不到.想问一下如何取消耳机模式.感激不尽 解决方案 参考:http://download.csdn.net/detail/yyz81/4889448 解决方案二: 可以使用代码强制切换到听筒模式

移动开发架构之MVVM模式

MVVM概念的提出和起源 MVVM是Model-View-ViewModel的简写,最早是由微软公司提出并运用,是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构架构. MVVM概念解释和要点 一.基本概念 mvvm1.png Model:主要为应用程序提供数据. View:还是MVC和MVP中的那个表示层,同时实现UI元素和ViewModel属性的绑定. ViewModel:为View提供数据支持. 以胖瘦的观点来看,在MVVM中的Mod

ASP.NET Core的路由[1]:注册URL模式与HttpHandler的映射关系

ASP.NET Core的路由是通过一个类型为RouterMiddleware的中间件来实现的.如果我们将最终处理HTTP请求的组件称为HttpHandler,那么RouterMiddleware中间件的意义在于实现请求路径与对应HttpHandler之间的映射关系.对于传递给RouterMiddleware中间件的每一个请求,它会通过分析请求URL的模式并选择并提取对应的HttpHandler来处理该请求.除此之外,请求的URL还会携带相应参数,该中间件在进行路由解析过程中还会根据生成相应的路

java开发-IE浏览器 浏览器模式和文档模式 开发中调试版本兼容问题

问题描述 IE浏览器 浏览器模式和文档模式 开发中调试版本兼容问题 我现在电脑安装的是ie10,当我在开发中想测试页面是否兼容10以下的版本时,是通过切换浏览器模式至低版本,还是切换文档模式至低版本,还是同时都切换,并保持一致. 希望用IE开发的老工程师回答,感激. 解决方案 装一个IETester,IETester是一个免费的WebBrowser控件,让您有渲染和IE8的JavaScript引擎,IE7和IE 6在Windows 7,Vista和XP的IE5.5中,以及在同一进程中安装的IE浏

Web前端开发中的MCRV模式

摘要 针对前端开发中基于ajax的复杂页面开发所面临的代码规模大,难以组织和维护,代码复用性.扩展性和适应性差等问题,本文尝试以MVC思想为基础,结合Web前端开发中"内容-结构-表现-行为"相分离的开发标准,提出一种将Web页面代码分为视图(View,页面静态部分,包括内容.结构.表现).模型(Model,负责数据缓存.数据校验与本地逻辑处理.发起ajax请求).控制器(Controller,负责用户和系统事件响应.模型和渲染器调度).渲染器(Renderer,对视图的渲染,控制器与