又是很长时间没有更新博客了,客观原因是真的很忙,主观原因是自己太懒了。但是想想,知识、经验都是慢慢积累起来的,不总结、不反思、不记录,很多时候这些本应该积累的东西,就渐渐被遗忘了。写在博客里,一方面是为了与大家交流分享,另一方面是记录自己走过的路,反思自己做过的事,这样忙工作才不算是白忙。对自己、对大家都有好处。想是这样想,但真正忙起来的时候就什么都顾不了了。所以,趁着五一长假,终于有时间写一点东西,用于分享,用于记录。
公司推行敏捷开发已有些时日了。IBM的顾问每周也还会飞来辅导一下,新的知识已经不多,主要还是跟进解决一些在日常执行中遇到的问题,纠正一些错误的理解。关于敏捷开发的概念和好处这些理论的东西,网上一搜一大把,做咨询的比做开发的讲的更好,这些东西我就不多说了。我仅从一个日常执行者的角度,来梳理一下敏捷开发的基本流程和遇到的一些问题。
用户故事。敏捷开发,首先是基于用户故事的。在实际制定用户故事的时候,需要注意的是用户故事的粒度和其相对独立性。我们在实际执行中,往往会出现用户故事规模估计偏差大,或者故事做到一半发现依赖其他模块的情况。这些问题相信实际进行敏捷开发的同行们都会遇到。开发者往往会因为偏差大而贬低敏捷开发的管理作用,我们的原则是:先僵化、再固化、最后才灵活化。只有这样才能保证敏捷的正常推行。当一切步入正轨之后,再来谈改良的问题。当然对于偏差,我们也采取了一些措施,对评估用户故事规模的人形成反馈,使准确度逐步提高。
统一团队。敏捷开发之所以敏捷,原因就是统一团队(个人理解)。统一团队包括了开发中各种角色的人员,包括SE、UE、UI、QT。这些人员在同一个团队中能很好的交流,就减少了出正式文档的时间成本,误解能第一时间得到纠正。实际执行过程中发现,虽然名义上是一个团队,但不同角色人员的立场不同,有时很难保证真正的“统一”。这就需要各个组的管理者真正站在项目的角度,给执行者更大的自由度,并且平时减少矛盾,多组织团体活动增进默契。
迭代化开发。迭代化就是说将开发时间分成一个一个固定时间长度的小阶段,每个迭代完成相应的用户故事,新的需求与改动按照优先级情况排在下一个迭代以后。迭代化开发基本就是我们实际开发工作中执行敏捷理念的日常流程,与我们的开发工作有着非常密切的关系。每个迭代之初,会进行迭代计划,按照需求的优先级,由敏捷小组成员自己领取适合自己规模的故事。然后,进行用户故事澄清,分解用户故事为一个个精确到 人×天 或者 小时×天 的任务,方便管理者掌控进度。每个迭代完成的时候,会有一个迭代回顾会议。迭代回顾会议上,总结完成的故事点数,演示这个迭代的成果,听取组内成员的意见,以持续改进,增进默契。刚开始推行时,每轮迭代回顾会议上会发现许多问题。而会议本身只能暴露问题,并不能解决问题。所以我们在每次迭代回顾会议上,会制定一个迭代改进计划,并在下一次迭代回顾时,对上一个迭代制定的迭代计划的进展情况进行汇报。个人感觉这种方式,取得了较好的效果。
状态栏的维护。为了将迭代化开发的进展情况更直观让领导者清楚。我们会将每个迭代的计划完成故事、分解成的任务以及各故事和任务的状态贴到一张白板上展示。每日敏捷小组成员进行站会,回顾前一工作日所做工作,今天计划要做的工作,遇到的问题和风险,会后更新状态栏,确认哪些工作计划做,哪些工作正在做,哪些工作已经做完。整个组的情况,最后会形成一个燃尽图,以反映这个迭代的剩余工作量再逐步减小,直到迭代结束,理想情况下燃尽图应该“燃尽”。实际过程中,往往出现状态栏更新不及时,本来应该给领导者表现好的情况,结果让领导者更郁闷。。。好的做法是每轮迭代专人负责跟进状态栏更新情况,做到及时。另一个问题就是燃尽图上涨与燃不尽的问题。少量上涨和剩余工作量小的情况属正常,主要是因为预估工作量偏差或者遇到了其他紧急的事情影响了进度。这要根据具体情况具体分析,不过出现好几轮迭代燃不尽的情况,需要引起管理者重视,及时分析原因,防止情况恶化。我们组就出现过初期没有引起很高的重视,导致后来燃尽图到迭代结束时还没过半的情况。
现在想到的就这些,敏捷开发主要就是让软件开发项目变得更可控,让不了解具体细节的领导者也能直观的明白和管理项目的进度。当然,这只是一个管理工具而已,对于一些技术攻关与预言的项目,适用性似乎并不强。。。
转:http://www.blogjava.net/zh-weir/archive/2011/04/30/349320.html
分享到:
相关推荐
敏捷开发是一种以人为核心、迭代、逐步交付的开发方法论,它强调灵活性和响应变化的能力。这个概念起源于2001年的“敏捷宣言”,由一群...理解和实践敏捷开发的基本概念,可以帮助团队提升效率,更好地满足客户的需求。
《敏捷软件开发:原则、模式与实践》是一本深度探讨敏捷...通过阅读《敏捷软件开发:原则、模式与实践》,读者不仅可以理解敏捷开发的理念,还能掌握实施敏捷的具体策略和工具,提升项目管理与软件开发的效率和质量。
《敏捷软件开发:原则、模式与实践》是一本深度探讨敏捷开发理念、方法和技术的权威著作。这本书由著名软件开发专家Robert C. Martin撰写,旨在帮助开发者和团队更有效地进行软件开发,提升软件项目的成功率。书中...
通过以上总结,可以看出《Scrum精髓:敏捷转型指南》不仅提供了Scrum的基本概念和实践指南,还深入探讨了如何根据不同的环境和项目需求来有效地运用Scrum框架。这对于任何希望采用敏捷方法进行项目管理和产品开发的...
本书对于新手来说,是一本极佳的入门指南,它不仅介绍了敏捷开发的基本概念,还通过丰富的实例和实践经验,帮助读者理解和掌握敏捷开发的核心原则和模式。 首先,我们需要理解什么是敏捷开发。敏捷开发是一种...
书中不仅包含了敏捷开发的基本概念,还深入讨论了各种敏捷模式和实践,为软件开发团队提供了宝贵的指导。 首先,我们需要理解敏捷软件开发的核心理念。敏捷开发强调的是迭代、增量式的开发过程,以适应需求变化和...
总之,《敏捷软件开发:原则、模式与实践》是一本全面介绍敏捷开发理念和实践的指南,无论是对于初学者还是经验丰富的开发者,都能从中获益匪浅。通过学习和应用书中的知识,软件团队能够更好地适应市场变化,提高...
本书会引导读者理解和应用面向对象的基本概念,如封装、继承和多态,以及设计模式,如工厂模式、观察者模式等,这些模式是解决常见问题的标准化方案,能帮助开发者编写出更加灵活、可扩展的代码。 书中的案例研究和...
以下是对敏捷开发流程与方法的详细解读: 1. 敏捷宣言:敏捷开发的核心理念在于四个价值观——个人和互动高于流程和工具,可工作的软件高于详尽的文档,客户合作高于合同谈判,响应变化高于遵循计划。这四大价值观...
书中不仅介绍了敏捷开发的基本概念,还深入剖析了各种敏捷模型,包括极限编程(XP)、水晶方法(Crystal)、特征驱动开发(FDD)和Scrum等,旨在为开发者提供全面的理论指导和实践经验。 敏捷开发的核心原则是...
这些知识点构成了敏捷开发的基础,通过深入理解和实践,可以提升团队的开发效率和软件质量,使产品更好地适应市场变化。培训资料中的文档和PPT将详细阐述这些概念,帮助员工和学生系统学习敏捷开发的方方面面。
《敏捷软件开发:原则、模式与实践》是一本深度探讨敏捷开发理念和技术的权威著作,由业界知名专家Robert C. Martin撰写。这本书旨在为软件开发团队提供一套实用且高效的敏捷方法,以应对快速变化的需求和复杂的项目...
通过阅读这本书,读者不仅能理解敏捷开发的基本概念,还能掌握如何在实际工作中选择合适的敏捷方法,评估和优化团队的敏捷实践,从而实现更高效、更灵活的软件开发。对于希望提升个人或团队开发效率的从业者来说,这...
总之,《敏捷软件开发:原则、模式与实践》这本书提供了全面的敏捷开发知识体系,帮助读者理解和实施敏捷开发方法,以适应快速变化的软件开发环境。通过理解和实践这些知识点,开发者可以构建更高效、更灵活的开发...