2019-03-30 10:47:49 dickdick111 阅读数 292
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10608 人正在学习 去看看 CSDN讲师

对敏捷宣言的原则进行风险评估

题目要求:在敏捷宣言遵循的12条原则中挑选1条你感兴趣的原则进行风险评估。

风险评估

大型软件项目的风险管理:大型项目存在诸多风险因素,在不同程度上对软件开发过程和软件产品质量造成影响。风险不能全部消除,而只能采用避免、减轻、和接受三种应对策略。

  • 需求变更风险;
  • 进度风险、预算风险、管理能力风险、信息安全风险;
  • 应用技术风险、质量控制风险、软件设计与开发工具风险、员工技能风险;
  • 人力资源风险、政策风险、市场风险、营销风险。

敏捷宣言遵循的12条原则

  • 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。
  • 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。
  • 经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。
  • 业务人员和开发人员必须相互合作,项目中的每一天都不例外。
  • 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。
  • 不论团队内外,传递信息效果最好效率也最高的方式是面对面交谈。
  • 可工作的软件是进度的首要度量标准。
  • 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。
  • 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
  • 以简洁为本,它是极力减少不必要工作量的艺术。
  • 最好的架构、需求和设计出自自组织团队。
  • 团队定期地反思如何能提高成效,并依此调整自身的举止表现。

对于第十条原则进行风险评估

以简洁为本,它是极力减少不必要工作量的艺术。

  • 管理能力风险

    由于敏捷开发第十条原则强调简洁为本,这就放弃了一些管理文档,项目使用手册等一些指导性文档书写的工作。程序员一味盲目地进行开发,容易忽视管理整合项目,到项目最后总合或者出现bug的时候,无法快速定位错误的地方,额外增加后期的工作量。

  • 信息安全风险

    为了减少不必要的工作量,项目必然会出现关键信息未加密如身份证、手机号等,源代码未加密等问题。这样的问题可能会暴露用户的隐私信息,应用程序的后门容易被不法分子利用,信息安全不能被保证。

  • 应用技术风险

    使用简洁的开发,意味着使用简单的现成的技术进行开发。这样可能出现困难的需求无法通过该技术来实现,这时需要更换应用技术,导致前后技术不一致,应用的接口出现差异的问题。或者,该简单现成的技术可能会被当前环境所淘汰,存在着风险。

  • 质量控制风险

    简洁的开发不能保证处理所有情况的异常,软件的质量不能被百分之一百的保证,可能出现软件崩溃的情况。这就因为在测试过程减少了不必要的工作量,仅满足关键测试,而没有完整的进行检查。

  • 软件设计与开发工具风险

    软件设计过程为了追求简洁,设计不会非常完善,可能出现各种问题但是未被发现,而这些问题会在开发或者推广过程被发现。这些漏洞就是因为前期软件设计过于简洁所造成的,没有多采取多个设计方案进行比对。

对于第二条原则进行风险评估

欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。

  • 需求变更风险

    需求不断的改变,在敏捷开发过程的原则中也是可以接受的,这就导致需求更改前后不一致,导致开发过程变长,成本增加。在开发后期更改需求还会导致软件面临架构重构的问题,面临极大的风险。

  • 进度风险

    欣然面对需求的变化,必然会针对用户的需求不断修改软件项目,这样会导致软件的进度无法确定,经常出现变更,进度难以统一。在开发后期更改需求,还可能导致进度重置的问题。

  • 预算风险

    需求的变更可能导致一开始的预算完全不正确,需求的改变必然会使软件开发的成本提高,预算可能不能满足后续的开发,这最终会导致软件开发到半路就经费不足,项目无法继续下去。

  • 员工技能风险

    需求的变更有可能导致完成新需求的技术变更,开发员工并未掌握该新需求的技术,重新学习导致开发流程边长,也可能出现员工开发质量由于技术不精而导致下降的问题

  • 市场风险

    更改需求不一定满足市场一开始的需要,最后由于不断变更需求而开发出来的软件可能不被市场所接受,导致软件推广困难。

2019-08-12 20:39:23 yjn1995 阅读数 830
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10608 人正在学习 去看看 CSDN讲师

前言

  

迭代开发

  敏捷开发的核心是迭代开发(iterative development)。敏捷一定是采用迭代开发的方式。那么什么是"迭代开发"呢?迭代的英文是 iterative,直译为"重复",迭代开发其实就是"重复开发"。
  对于大型软件项目,传统的开发方式是采用一个大周期(比如半年)进行开发,整个过程就是一次"大开发";迭代开发的方式则不一样,它将开发过程拆分成多个小周期,即一次"大开发"变成多次"小开发",每次小开发都是同样的流程,所以看上去就好像重复在做同样的步骤。
  举例来说,SpaceX 公司想造一个大推力火箭,将人类送到火星。但是,它不是一开始就造大火箭,而是先造一个最简陋的小火箭 Falcon 1。结果,第一次发射就爆炸了,直到第四次发射,才成功进入轨道。然后,开发了中型火箭 Falcon 9,九年中发射了70次。最后,才开发 Falcon 重型火箭。如果 SpaceX 不采用迭代开发,它可能直到现在还无法上天。
  迭代开发将一个大任务,分解成多次连续的开发,本质就是逐步改进。开发者先快速发布一个有效但不完美的最简版本,然后不断迭代。每一次迭代都包含规划、设计、编码、测试、评估五个步骤,不断改进产品,添加新功能。通过频繁的发布,以及跟踪对前一次迭代的反馈,最终接近较完善的产品形态。

增量开发

  迭代开发只是要求将开发分成多个迭代,并没有回答一个重要的问题:怎么划分迭代,哪个任务在这个迭代,哪个任务在下个迭代?这时,一般采用"增量开发"(incremental development)划分迭代。
  所谓的"增量开发",指的是软件的每个版本,都会新增一个用户可以感知的完整功能。也就是说,按照新增功能来划分迭代。
  举例来说,房地产公司开发一个10栋楼的小区。如果采用增量开发的模式,该公司第一个迭代就是交付一号楼,第二个迭代交付二号楼…每个迭代都是完成一栋完整的楼。而不是第一个迭代挖好10栋楼的地基,第二个迭代建好每栋楼的骨架,第三个迭代架设屋顶…
增量开发加上迭代开发,才算是真正的敏捷开发。

敏捷开发的好处

早期交付

  敏捷开发的第一个好处,就是早期交付,从而大大降低成本。
  还是房地产公司为例,如果按照传统的"瀑布开发模式",先挖10栋楼的地基、再盖骨架、然后架设屋顶,每个阶段都等到前一个阶段完成后开始,可能需要两年才能一次性交付10栋楼。也就是说,如果不考虑预售,该项目必须等到两年后才能回款。
  敏捷开发是六个月后交付一号楼,后面每两个月交付一栋楼。因此,半年就能回款10%,后面每个月都会有现金流,资金压力就大大减轻了。

降低风险

  敏捷开发的第二个好处是,及时了解市场需求,降低产品不适用的风险。
  请想一想,哪一种情况损失比较小:10栋楼都造好以后,才发现卖不出去,还是造好第一栋楼,就发现卖不出去,从而改进或停建后面9栋楼?
  对于软件项目来说,先有一个原型产品,了解市场的接受程度,往往是项目成功的关键。有一本书叫做《梦断代码》,副标题就是"20+个程序员,三年时间,4732个bug,100+万美元,最后失败的故事",这就是没有采用敏捷开发的结果。相反的,Instagram 最初是一个地理位置打卡 App,后来发现用户不怎么在乎地理位置,更喜欢上传照片,就改做照片上传软件,结果成了独角兽。
  由于敏捷开发可以不断试错,找出对业务最重要的功能,然后通过迭代,调整软件方向。相比传统方式,大大增加了产品成功的可能性。如果市场需求不确定,或者你对该领域不熟悉,那么敏捷开发几乎是唯一可行的应对方式。

如何进行每一次迭代

  虽然敏捷开发将软件开发分成多个迭代,但是也要求,每次迭代都是一个完整的软件开发周期,必须按照软件工程的方法论,进行正规的流程管理。

 &emssp;具体来说,每次迭代都必须依次完成以下五个步骤。

  • 需求分析(requirements analysis)
  • 设计(design)
  • 编码(coding)
  • 测试(testing)
  • 部署和评估(deployment / evaluation)
    每个迭代大约持续2~6周。

敏捷开发的价值观

《敏捷软件开发宣言》里面提到四个价值观。

  • 程序员的主观能动性,以及程序员之间的互动,优于既定流程和工具。
  • 软件能够运行,优于详尽的文档。
  • 跟客户的密切协作,优于合同和谈判。
  • 能够响应变化,优于遵循计划。

十二条原则

该宣言还提出十二条敏捷开发的原则。

  • 通过早期和持续交付有价值的软件,实现客户满意度。
  • 欢迎不断变化的需求,即使是在项目开发的后期。要善于利用需求变更,帮助客户获得竞争优势。
  • 不断交付可用的软件,周期通常是几周,越短越好。
  • 项目过程中,业务人员与开发人员必须在一起工作。
  • 项目必须围绕那些有内在动力的个人而建立,他们应该受到信任。
  • 面对面交谈是最好的沟通方式。
  • 可用性是衡量进度的主要指标。
  • 提倡可持续的开发,保持稳定的进展速度。
  • 不断关注技术是否优秀,设计是否良好。
  • 简单性至关重要,尽最大可能减少不必要的工作。
  • 最好的架构、要求和设计,来自团队内部自发的认识。
  • 团队要定期反思如何更有效,并相应地进行调整。
2019-12-23 21:24:35 L15519543837 阅读数 68
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10608 人正在学习 去看看 CSDN讲师

1 什么是敏捷开发

(1) 敏捷开发就是Scrum和极限编程
(2)敏捷开发就是两周一个冲刺,迭代。
(3)敏捷开发是用看板软件管理项目

2 敏捷开发背景

2001年重型的瀑布开发因为周期长风险较大衍生出了很多其他的模型,到现在更多的轻量级开发方法比如极限编程,scrum
(1)敏捷不是方法论,也不是软件开发的具体方法,而是一套价值观和原则。比如流程的站立会议,目的是增强大家的沟通,但是应该减少频度,判断依据就是是否违背了敏捷开发的价值观和原则。

3 敏捷开发和瀑布模型的差异

(1)敏捷开发怎么做需求分析

(2)敏捷开发如何架构设计
瀑布模型 瀑布模型在需求分析结束后就开始架构设计
敏捷开发 敏捷开发并不是基于完整的用户需求开发,每个sprint只做一部分需求,叫做渐进式架构设计。缺点就是迭代多了,产生很多荣誉代码,所以需要定期重构。

(3)敏捷如何保证项目质量的
瀑布模型 瀑布在编码完成后由专门的测试团队进行测试保证质量
敏捷开发 在敏捷中,依赖于开发功能的同时需要编写单元测试和集成测试代码,自动化的方式完成测试。质量确实是有一定的影响,比如win10之前的瀑布模型质量比win10以后的质量高

(4)敏捷开发怎么发布部署

瀑布模型 编码结束---->部署测试环境--->测试阶段定期部署测试环境---->验收后发布到生产环境
敏捷开发 持续构建,持续发布叫做持续集成。整个过程全自动化,每完成一次任务,提交代码都会触发构建---->自动测试--->部署发布

 

 

2019-09-06 17:16:30 weixin_42180610 阅读数 10
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10608 人正在学习 去看看 CSDN讲师

敏捷开发

 

前言

  

迭代开发

  敏捷开发的核心是迭代开发(iterative development)。敏捷一定是采用迭代开发的方式。那么什么是"迭代开发"呢?迭代的英文是 iterative,直译为"重复",迭代开发其实就是"重复开发"。
  对于大型软件项目,传统的开发方式是采用一个大周期(比如半年)进行开发,整个过程就是一次"大开发";迭代开发的方式则不一样,它将开发过程拆分成多个小周期,即一次"大开发"变成多次"小开发",每次小开发都是同样的流程,所以看上去就好像重复在做同样的步骤。
  举例来说,SpaceX 公司想造一个大推力火箭,将人类送到火星。但是,它不是一开始就造大火箭,而是先造一个最简陋的小火箭 Falcon 1。结果,第一次发射就爆炸了,直到第四次发射,才成功进入轨道。然后,开发了中型火箭 Falcon 9,九年中发射了70次。最后,才开发 Falcon 重型火箭。如果 SpaceX 不采用迭代开发,它可能直到现在还无法上天。
  迭代开发将一个大任务,分解成多次连续的开发,本质就是逐步改进。开发者先快速发布一个有效但不完美的最简版本,然后不断迭代。每一次迭代都包含规划、设计、编码、测试、评估五个步骤,不断改进产品,添加新功能。通过频繁的发布,以及跟踪对前一次迭代的反馈,最终接近较完善的产品形态。

增量开发

  迭代开发只是要求将开发分成多个迭代,并没有回答一个重要的问题:怎么划分迭代,哪个任务在这个迭代,哪个任务在下个迭代?这时,一般采用"增量开发"(incremental development)划分迭代。
  所谓的"增量开发",指的是软件的每个版本,都会新增一个用户可以感知的完整功能。也就是说,按照新增功能来划分迭代。
  举例来说,房地产公司开发一个10栋楼的小区。如果采用增量开发的模式,该公司第一个迭代就是交付一号楼,第二个迭代交付二号楼…每个迭代都是完成一栋完整的楼。而不是第一个迭代挖好10栋楼的地基,第二个迭代建好每栋楼的骨架,第三个迭代架设屋顶…
增量开发加上迭代开发,才算是真正的敏捷开发。

敏捷开发的好处

早期交付

  敏捷开发的第一个好处,就是早期交付,从而大大降低成本。
  还是房地产公司为例,如果按照传统的"瀑布开发模式",先挖10栋楼的地基、再盖骨架、然后架设屋顶,每个阶段都等到前一个阶段完成后开始,可能需要两年才能一次性交付10栋楼。也就是说,如果不考虑预售,该项目必须等到两年后才能回款。
  敏捷开发是六个月后交付一号楼,后面每两个月交付一栋楼。因此,半年就能回款10%,后面每个月都会有现金流,资金压力就大大减轻了。

降低风险

  敏捷开发的第二个好处是,及时了解市场需求,降低产品不适用的风险。
  请想一想,哪一种情况损失比较小:10栋楼都造好以后,才发现卖不出去,还是造好第一栋楼,就发现卖不出去,从而改进或停建后面9栋楼?
  对于软件项目来说,先有一个原型产品,了解市场的接受程度,往往是项目成功的关键。有一本书叫做《梦断代码》,副标题就是"20+个程序员,三年时间,4732个bug,100+万美元,最后失败的故事",这就是没有采用敏捷开发的结果。相反的,Instagram 最初是一个地理位置打卡 App,后来发现用户不怎么在乎地理位置,更喜欢上传照片,就改做照片上传软件,结果成了独角兽。
  由于敏捷开发可以不断试错,找出对业务最重要的功能,然后通过迭代,调整软件方向。相比传统方式,大大增加了产品成功的可能性。如果市场需求不确定,或者你对该领域不熟悉,那么敏捷开发几乎是唯一可行的应对方式。

如何进行每一次迭代

  虽然敏捷开发将软件开发分成多个迭代,但是也要求,每次迭代都是一个完整的软件开发周期,必须按照软件工程的方法论,进行正规的流程管理。

 &emssp;具体来说,每次迭代都必须依次完成以下五个步骤。

  • 需求分析(requirements analysis)
  • 设计(design)
  • 编码(coding)
  • 测试(testing)
  • 部署和评估(deployment / evaluation)
    每个迭代大约持续2~6周。

敏捷开发的价值观

《敏捷软件开发宣言》里面提到四个价值观。

  • 程序员的主观能动性,以及程序员之间的互动,优于既定流程和工具。
  • 软件能够运行,优于详尽的文档。
  • 跟客户的密切协作,优于合同和谈判。
  • 能够响应变化,优于遵循计划。

十二条原则

该宣言还提出十二条敏捷开发的原则。

  • 通过早期和持续交付有价值的软件,实现客户满意度。
  • 欢迎不断变化的需求,即使是在项目开发的后期。要善于利用需求变更,帮助客户获得竞争优势。
  • 不断交付可用的软件,周期通常是几周,越短越好。
  • 项目过程中,业务人员与开发人员必须在一起工作。
  • 项目必须围绕那些有内在动力的个人而建立,他们应该受到信任。
  • 面对面交谈是最好的沟通方式。
  • 可用性是衡量进度的主要指标。
  • 提倡可持续的开发,保持稳定的进展速度。
  • 不断关注技术是否优秀,设计是否良好。
  • 简单性至关重要,尽最大可能减少不必要的工作。
  • 最好的架构、要求和设计,来自团队内部自发的认识。
  • 团队要定期反思如何更有效,并相应地进行调整。
2012-09-29 14:02:06 desert3 阅读数 56
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10608 人正在学习 去看看 CSDN讲师
敏捷软件开发的[b]四条价值观以及十二条原则[/b]

[url=http://agilemanifesto.org/iso/zhchs/][b]敏捷宣言 Agile Manifesto[/b][/url]
我们一直在实践中[color=red]探寻更好的软件开发方法[/color],[color=red]身体力行的同时也帮助他人[/color]。由此我们建立了如下[color=red]价值观[/color]:
[list]
[*][color=red]个体和互动[/color] 高于 流程和工具
[*][color=red]工作的软件[/color] 高于 详尽的文档
[*][color=red]客户合作[/color] 高于 合同谈判
[*][color=red]响应变化[/color] 高于 遵循计划
[/list]
也就是说,尽管[color=red]右项有其价值[/color],我们[color=blue]更重视左项的价值[/color]。

[b]敏捷宣言遵循的原则[/b]
[list]
[*]我们最重要的目标,是[color=red]通过持续不断地及早交付有价值的软件使客户满意[/color]。
[*][color=red]欣然面对需求变化[/color],即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。
[*][color=red]经常地交付可工作的软件[/color],相隔几星期或一两个月,倾向于采取较短的周期。
[*]业务人员和开发人员[color=red]必须相互合作[/color],项目中的每一天都不例外。
[*]激发个体的斗志,以他们为核心搭建项目。[color=red]提供所需的环境和支援,辅以信任[/color],从而达成目标。
[*]不论团队内外,传递信息效果最好效率也最高的方式是[color=red]面对面的交谈[/color]。
[*][color=red]可工作的软件[/color]是进度的首要度量标准。
[*]敏捷过程倡导[color=red]可持续开发[/color]。责任人、开发人员和用户要能够共同维持其步调稳定延续。
[*]坚持不懈地[color=red]追求技术卓越和良好设计[/color],敏捷能力由此增强。
[*]以[color=red]简洁[/color]为本,它是极力减少不必要工作量的艺术。
[*]最好的架构、需求和设计出自自[color=red]组织团队[/color]。
[*]团队[color=red]定期地反思[/color]如何能提高成效,并[color=red]依此调整[/color]自身的举止表现。
[/list]
没有更多推荐了,返回首页