第三次作业


什么是敏捷开发?
敏捷包括三个层次,(1)理念(敏捷核心思想)(2)优秀实践(敏捷的经验积累)(3)具体应用(能够结合自身灵活应用才是真正敏捷),但我们在实际开发过程中应灵活选择最适合自己的实践,避免教条化。要想应用敏捷开发,必须要深入理解敏捷理念,其一,深入理解“聚焦客户价值”,包括:标识和消除软件开发中的浪费;交付刚刚好的系统:在项目明显超负荷时,管理者简单地期望靠团队work harder来解决,最终导致:(质量下降,项目延期,客户不满意,团队疲劳,埋下长期隐患);随时构建质量,不容忍缺陷,发现缺陷应立即停下来解决,以保证在坚实的质量基础上前行;及时消除技术债务,持续保持快速响应;;其二:深入理解“激发团队”,包括:认清团队的基本事实(不盲目冒进,对自己的能力做出正确的评估);敏捷方式下管理者的转变(通过目标来牵引团队自主工作;帮助团队提供资源,排除障碍;营造团队自管理的工作氛围;作为教练辅导团队进步),敏捷方式下对管理者最大的挑战是学会放松“控制”;基于简单原则的管理,原则简单但必须被遵守);敏捷方式下团队成员的转变(从被动到主动的心态转变是团队成员适应敏捷开发的关键);;其三,深入理解“适应变化”,包括:认请“客户是逐步发现真正需求”,我们要意识到,客户是逐步发现他真正要的东西,开发人员逐步发现如何开发产品满足客户需求,在这个过程中随时可能发生变化;小批量是快速交付的关键,在需求响应周期相同的情况下,批量(一次开发的需求量)越小,资源利用率更高。在资源利用率相同的情况下,批量越小,交付周期更短。减小批量不仅带来缩短交付周期,而且还带来提高质量、促进创新、降低管理成本、更高的效率等其他好处,大幅提升商业价值;通过迭代计划不断调整以适应需求变化,变化无法一次性预测,一开始制作大而全的计划易造成浪费,应根据迭代积累的经验和需求变化的情况对计划不断调整和细化;应持续保持良好的软件架构,新产品开发通过早期迭代来实现和验证架构,有利于架构的尽早稳定;利用多层次反馈不断调整以逼近目标。
 
沟通是最为重要的,只有人与人之间才存在沟通,我们大部分人都学过瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切以文档为依据;而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心。<br />

迭代:

敏捷开发的核心原则是拥抱变化,和递增的变化。迭代式开发正适合在那些需求信息不明确的项目,这样在开发过程中遇到需求的变化时,所带来的影响要比其他模型小。而现在的很多项目中,需求在项目进行中变化的事儿经常见,所以显得迭代式开发的优势更明显一些,这正符合敏捷开发的拥抱变化。而且迭代开发是不要求每一个阶段的任务做的都是最完美的,明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来,以最短的时间,最少的损失先完成一个“不完美的成果物”直至提交,然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善,这正符合敏捷开发的递增变化 


Scrum:
Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:Scrum of Scrums

posted @ 2018-10-28 22:07  许大宝敲代码  阅读(136)  评论(0编辑  收藏  举报