敏捷开发模式java_java 敏捷开发 瀑布开发 - CSDN
  • 很显然传统的瀑布开发模式已经不能满足需要了,于是,敏捷开发这种模式就出现了。  接触过敏捷开发的朋友可能会知道,敏捷开发有如下的价值观:  个体与互动 胜于 过程与工具,可工作软件 胜于 复杂文档...
    在信息技术高速发展的今天,有很多的开发任何要求开发人员增量交付,迭代式开发,能够持续集成。很显然传统的瀑布开发模式已经不能满足需要了,于是,敏捷开发这种模式就出现了。


      接触过敏捷开发的朋友可能会知道,敏捷开发有如下的价值观:


      个体与互动 胜于 过程与工具,可工作软件 胜于 复杂文档


      用户协作 胜于 合同谈判,响应变化 胜于 遵循计划


      下面新霸哥将会用一个真实的案例的给大家讲讲敏捷开发。


      每天早晨上班前一项重要的任务那就是晨会(由于时间很短,所以大家都是站立开会的),主要就是回报一下昨天自己的工作情况,在工作过程中遇到的问题,有没有解决,需要谁来帮助,同时还要讲讲自己今天将要计划做的事情。对于提出的问题大家共同讨论,如果能够及时解决的就现场解决,不能解决的就会后协调处理,因为每个人的时间是宝贵的,这个高效的会议的目的就是了解组内成员的工作进度和工作态度,同时也能锻炼自己的沟通和表达能力。


      会议结束后,大家各自忙自己的任务了。由于在开发的过程中采用的是项目中划分出很多的独立模块,每个人负责的模块都是不一样的。因为迭代模式中的每个模块交付时都必须是独立可运行的也是集成可测试的,所以,功能代码这一块在测试环境集成测试无误后该模块才算验收通过。


      开发人员编码工作完成后就没有事情做了吗?其实不是这样的,因为测试人员会在测试环境对各个模块进行测试,如果发现问题会及时的在bug反馈系统中,开发人员看到有自己相关的bug要及时的反馈,这样才能保证系统正常运行。




      迭代开发中一个星期后,相关的团队成员的编码工作基本上完成了或完成了大半。这时候项目经理会组织一个开发人员会议,就是开发人员坐到一个会议室里面瞪着大眼在投影仪上找bug或编码规范问题。因为团队的力量还是巨大的,没过一会,一个功能模块可能就给你揪出了十几个bug,大家一起发现的问题会议结束后会形成一个bug列表,按责任人给依次分配下去解决。相当于集体重构了一次代码,让系统更加的健壮、稳定。


      改过了上次的bug后,团队成员可以小休息一会了。一个迭代周期结束后,项目组成员会再次的坐在一起开一个即重要又轻松的会议--迭代回顾会议。项目中遇到的问题总结,下一次在遇到同样的问题该怎么对付。其实直到项目交付,期间还会有很多次的迭代的。


      当然,敏捷开发有十二原则,在这里新霸哥就不重复了,如果有需要对敏捷开发有更深的了解欢迎和新霸哥交流。如今,敏捷的思想算是深入人心了,后面的具体方法就是教会我们如何实施敏捷。新霸哥发现有了这些思想,整个世界都开始美好了。
    展开全文
  • 什么叫敏捷开发

    2015-04-19 15:18:07
     软件开发是一种对人类智慧的管理,对人大脑思维的“工厂化”管理。人是有感情的、有情绪的、变化的、相对独立的工作单元,这与冰冷的机器是不可比的,所以在中国的历史上,管理人是最难的工作;“学而优则仕”的...

    前言

           软件开发是一种对人类智慧的管理,对人大脑思维的“工厂化”管理。人是有感情的、有情绪的、变化的、相对独立的工作单元,这与冰冷的机器是不可比的,所以在中国的历史上,管理人是最难的工作;“学而优则仕”的观点就是让最聪明的人应该选出来做官,做官就是管理人的。软件开发不仅是代码编程,而是人员的有效组织,如何既发挥人的主观能动性,避免情绪变化对工作的影响,又可以让大家有效的交流,让多个大脑的思路统一,快速完成目标呢?多年来软件企业的管理者一直在不断地探索。
           另外,有一个问题一直是软件开发管理人员的心病:软件是工具,开发的是客户业务的应用,但客户不了解软件,开发者不了解业务,如何有效沟通是
    软件质量的重大障碍。把开发者变成客户业务的专家是个没有办法的办法,让软件企业付出的代价也是昂贵的。
           瀑布模型、敏捷开发是有代表性的开发模式,在对开发者、客户、最终的产品的关注上的变化,体现了软件开发管理者在管理模式上的变化。


    瀑布开发

           瀑布模型(Waterfall Model)是Royce在1970年提出的,他把大型软件开发分为:分析与编程,象工厂流水线一样把软件开发过程分成各种工序,并且每个工序可以根据软件产品的规模、参与人员的多少进一步细分成更细的工序。该模型非常符合软件工程学的分层设计思路,所以成为软件开发企业使用最多的开发模型。


           瀑布模型的特点:
           1、强调文档,前一个阶段的输出就是下一个阶段的输入,文档是个阶段衔接的唯一信息。所以很多开发人员好  象是在开发文档,而不是开发软件,因为
    要到开发的后期,才可以看到软件的“模样”。
           2、没有迭代与反馈。瀑布模型对反馈没有涉及,所以对变化的客户需求非常不容易适应,瀑布就意味着没有回头路。
           3、管理人员喜欢瀑布模型的原因是把文档理解为开发的速度,可以方便地界定不同阶段的里程碑。
           瀑布模型的用户很多,也有一些反对的意见:
           第一 瀑布模型不适合客户需求不断变化的软件开发,尤其是客户的业务管理的软件,业务随着市场变化,而软件初期的设计可能已经大大变化,而后
    期的需求更改成本是开始的10倍基数。在ERP盛行的软件市场里,一方面市场带动需求变化,另一方面初期客户对需求描述不清楚,都为瀑布模型的使用团队带来困难。
            第二 瀑布模型是一种软件文档的开发,把开发者变成流水线上的机器,大量重复性的工作让编程人员提不起兴趣,工作很枯燥,没有激情,编程成了
    一种没有创意的机械劳动,这让一向以高科技为标志的高级程序人员大为恼火。
            在这种背景下,敏捷开发带来了新鲜的空气!


    敏捷开发

           那什么叫敏捷开发呢?简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。

           敏捷开发宣言:
          1. 个体和交互胜过过程和工具
          2. 可工作的软件胜过面面俱到的文档
          3. 客户协作胜过合同谈判
          4. 响应变化胜过遵循计划
          从上面的宣言可以看出,敏捷开发的核心是人 、协作、时刻可运行的软件、变化

     

    展开全文
  • JAVA敏捷开发环境搭建

    2016-05-19 18:06:23
    前面介绍了创业型软件公司的工作模式,这里详细介绍下如何实施,第一步是先要搭建环境,有了环境才能开展工作。 整个软件项目分为四个环境 开发本地环境、开发环境、测试环境、IDC环境。和传统C++开发不一样的模式...

    前面介绍了创业型软件公司的工作模式,这里详细介绍下如何实施,第一步是先要搭建环境,有了环境才能开展工作。

    整个软件项目分为四个环境 开发本地环境、开发环境、测试环境、IDC环境。和传统C++开发不一样的模式是多了第一个开发本地环境。这是为什么呢,因为目前大部分开发人员还是比较熟悉windows下开发。对于mac和linux下直接使用软件并且开发的中国开发者还是少之又少,这套架构就这个现状做出来的。如下是环境搭建架构图:

    agile_pic3

     

    从环境来说:

    一、开发本地环境、开发集成服务器搭建。 前端开发者、后台开发者。

    前端开发用的最多的是photoshop和dreamweaver。在做psd之前大部分是不会协同开发的,只有整个文件传递过来过去。html切割的时候可能就会多个人协同开发了。这个时候需要一个集中ftp服务器、svn服务器。svn服务器用于保存版本代码库,用于保存历史修改的版本和开发人员协同。ftp服务器适用于及时修改时保存上传到预览服务器进行预览。看到这里有人也许会问,我直接合并svn和ftp不行吗?其实有这样的问题,如果直接提交svn,后台开发人员就会从svn看到。本来是前端的集成协同开发预览,结果影响到后台容易引起版本混乱。

    后台开发怎么搭建环境?用eclipse在本地环境搭建开发环境,通过tomcat插件或者jetty启动调试class、jsp。之前看过很多公司都通过打成war包发布到集成环境再调试。集成环境大家都去集成容易引起版本混乱。即使不发布到集成环境,在本地就算修改个小的class文件也要重启war包有点浪费时间。最好就是利用tomcat的热部署,修改小功能直接生效。现在我们就是这样做的,用maven管理jar包依赖,ant本地打包、拷贝包,用eclipse的tomcat插件热部署快速开发。等到所有功能开发好了。把分支版本发布到开发环境进行集成测试。

    开发环境涉及的软件有:nexus 、maven、tomcat服务器、mysql、ftp、jenkins、svn、jira、fisheye、eclipse、dreamweaver、photoshop、nginx。

    软件的作用:
    nexus作为集中仓库管理,因为每个工程如果都有一堆jar包,很难管理。加上svn上传、分支、合并耗费网络带宽、空间。如果有个地方把这些浪费空间的jar集中管理起来,所有工程合用岂不是很好。
    maven是软件生命周期、依赖管理,有了集中管理jar包,就需要有个东西把jar包仓库和工程连接起来。
    tomcat服务器是本地开发使用和集中测试服务器。
    mysql就没必要每个开发机器都装一个了,放在一个开发环境就可以。
    ftp作为前端开发上传文件使用。
    jenkins是持续集成,开发和前端都把代码弄好,怎么融合集成在一起测试呢,总需要有个人来把所有的文件合并在一起吧?这个软件就起到这个角色,把所有文件集成、编译、打包、发布到tomcat服务器。如下图:

    test

    svn代码版本管理,大家都知道协同作用。
    jira用于需求、bug等管理。
    fisheye用于代码统计、审核等。
    eclipse、dreamweaver、photoshop不用说啦。
    nginx主要用于做虚拟主机和静态资源管理。因为我们可能同时开发多个网站,nginx可以根据不同的域名转发到不同的web服务器。

    二、测试服务器。开发、测试。

    开发集成测试环境通过后,这个就可以转测试了。通过持续集成,测试部署好环境就开始测试。测试环境同样依赖于集中仓库、maven、持续集成等软件。也就是集成测试环境、开发集成环境、开发本地环境都是用的一套jar包,是不是很cool。如果测试不通过,就要转回开发,开发好再转测试。怎么保证开发的质量和测试的质量,还有大家的协作性,这个过程涉及到软件工程和绩效考核,后面再说。测试通过一些测试,测试通过后就可以发布到外网了。这个时候需要提供发布列表、操作步骤、数据库操作脚本给到运维审核,审核通过后才能发布。

    怎么发布到外网IDC呢?运维可以根据发布列表去操作,开发和前端一起等着熬夜啊熬夜。没有效率!这里提出了一个增量发布版本的方式,通过发布列表,我们的发布程序会自动检测到发布的文件和发布的机器,发布到对应的服务器。如果发布失败了还可以回滚文件,基本上是一键操作。未来还会把服务器重启、日志输出等集成起来。

    三、IDC服务器。

    外网的真实服务器,后台和前台。大家能够访问到的网站服务器。业务人员在版本发布后查看。整个流程就做好了。大家在每一次版本开发完了,可以很好的协同、开发、测试、发布。

    扩展话题:
    1、photoshop能否和html互转并且有版本管理功能,这个做好是个革命性的标志。
    2、css、js等静态文件是否也能够纳入自动依赖管理里。这样不用我们发布一个页面文件时发现还有些依赖的js没有发布。

    展开全文
  • 本文,主要谈谈关于java应用架构设计的一些思想.这里主要是指android的架构设计. 笔者从事android开发有些年头了,但却一直都是按照官方的方法在做,从来没有思考过自己的架构. 虽然这样也能做,也能实现很多功能.但...

    最近思考程序架构的修改,走了不少弯路,也做了不少错误设计,所以反思一记.
    本文,主要谈谈关于java应用架构设计的一些思想.这里主要是指android的架构设计.
    笔者从事android开发有些年头了,但却一直都是按照官方的方法在做,从来没有思考过自己的架构.
    虽然这样也能做,也能实现很多功能.但随着后期项目的不断扩展,功能越来越复杂,这时就需要重新思考一些之前忽略的事情了.
    笔者数年前了解到敏捷开发,然后一直奉若神明.然而从去年起,开始感受到了敏捷思想的一些误区,最近所遭遇的种种更是让我强烈质疑敏捷的思想,包括Linux的哲学体系.当然,这个议题比较庞大,无法论述完全,这里仅仅提一提.
    敏捷的核心思想是快,很快,非常快,而且是又稳又快.倡导快速开始编码,然后遍写遍重构,程序的架构诞生于重构中.这想法很好,很诱人,但终归不是那么易于掌握的.笔者在掌握和理解中遇到不少坑,而这些坑,很多时候都会致命.笔者在从业的这几年中,所换过的公司不少,但真正能玩得起敏捷的却一个都没见过.这也是为什么说它不易于掌握.情况比较好的公司,能够将敏捷中的一个或者两个方法拿出来用,但多数都用不出来.为什么呢?因为门槛高.
    这种模式技能不像我们平时所见到的技术,确切的说,完全不同.不管是web开发的各种语言,框架,还是各种客户端,后台,大数据,都属于具体的技术细节.然而,敏捷开发,作为一种思想,如果没能完全掌握,是很难应用于具体的技术细节上的.这也是敏捷难的原因.所以,常见的复制,仅仅复制了项目管理的部分,但作为产品本身的开发部分却很难完全复制.
    如果读者能够在读完本文后能有一些灵感和收获,那么本文便是有价值的,否则,就如同某个上线功能的重新实现,毫无意义.
    未完,待续….

    展开全文
  • 1. 首先了解一下这三个开发模式都是什么意思: TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元...
  • [PDF高清]敏捷软件开发:原则、模式与实践(Java版)中文版.rar [PDF高清]敏捷软件开发:原则、模式与实践(Java版)中文版.rar
  • JeeWeb敏捷开发平台 QQ交流群: 570062301官方网站: http://www.jeeweb.cn官方论坛: http://bbs.jeeweb.cn项目演示: http://demo.jeeweb.cngithub地址: https://github.com/white-cat/jeewebMyeclipse非...
  • 关于敏捷开发框架的实际应用,现在无外乎有以下几种常见的情形: 很多团队想使用敏捷开发框架,但不知道该怎么上手; 有的团队已经应用了敏捷开发框架的实践,然而效果不理想,不知道是敏捷开发框架的问题,还是...
  • 敏捷软件开发:原则、模式与实践(全) 敏捷软件开发:原则、模式与实践(全)
  • 这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。1.讲述在预算和实践要求下,软件开发人员和项目经理如何使用敏捷开发完成项目;2.使用真实案例讲解如何用极限编程来设计、...
  • 开发工作中使用的敏捷开发模式 来现在的公司有一段时间了,现在主要用java开发采用敏捷的开发模式。因为以前工作中对敏捷的了解比较少所以觉得有必要进行梳理总结下。 敏捷开发的定义及解释说明这里就略过了,想要...
  • 敏捷开发中QA如何做质量管理? 经常有人会问我,敏捷模式下,QA的职责是什么?QA有什么价值?我们还需要QA吗?敏捷转型中遇到的问题,QA能帮助解决吗?这些问题以前也思考过,笔者就是QA出身的,曾经在中兴通讯做过...
  • 本博将通过 讲解敏捷开发概念->敏捷开发架构思想->开发环境搭建->项目源码敏捷开发构建、拆分 等逐步带您走进android敏捷开发的世界。 学敏捷开发,开启 架构师之路..(夸张了呵呵,其实没有,这是基础) 注:本系列...
  • 曾担任C++ Report杂志主编多年,也是设计模式敏捷开发运动的主要倡导者之一。 Micah Martin Robert C. Martin之子,也是经验丰富的软件工程师,曾任Object Mentor公司的咨询师,现任8th Light公司总裁。擅长.NET、...
  • 本文将结合敏捷开发周期短,变化快等特点,介绍如何通过在开发过程中采取一系列步骤来保证和提高整个开发团队的代码质量,并阐述了每一步可以利用的工具和最佳实践,从而使开发过程更加规范化,成就高质量的代码,...
  • 敏捷开发思想

    2019-04-12 22:55:16
    敏捷开发模式分类(摘抄至互联网):SCRUM 的工作流程(摘抄至互联网)流程: SCRUM 是什么? Scrum是敏捷开发中的名词。 敏捷开发是什么? 敏捷开发(Agile Development) 是一种以人为核心、迭代、循序渐进的开发方法...
  • 敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高整个项目的代码质量。 Java项目开发过程中,由于开发人员的经验、Java代码编写习惯,以及缺乏...
  • 敏捷开发中的 Java 代码质量保证步骤   回页首 步骤一:统一编码规范、代码样式 规范统一的编码会增加项目代码的可读性和可维护性,但实际情况往往是项目组内的 Java 代码开发人员的编码风格常常各不相同,...
  • 敏捷软件开发:原则、模式与实践 薪水支付案例研究 java代码实现
  • JeeWeb敏捷开发平台

    2018-06-14 13:21:07
    JEEWEB Mybatis版本是一款基于SpringMVC+Spring+Mybatis+Mybatis Plus的JAVA WEB敏捷开发系统;它是一款具有代码生成功能的智能快速开发平台;是以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis...
1 2 3 4 5 ... 20
收藏数 29,017
精华内容 11,606
关键字:

敏捷开发模式java