《30天软件开发 告别瀑布拥抱敏捷》一书 读后总结

来源:互联网 发布:哔哩哔哩 mac 编辑:程序博客网 时间:2024/03/28 23:03

    周四、发现旁边一同事在看一本名为《30天软件开发 告别瀑布拥抱敏捷》的书、“敏捷开发”这个词虽然我在很早就已获知,但是我也只是简简单单的认识到一个术语,并未去了解和认识什么是敏捷开发。也刚好趁上个月的项目刚好是采用敏捷开发的模式完成的。于是就向同事借了该书几天。在阅读该书内容的过程中并结合自身项目的参与经历,用对比的方式学习、认识和理解敏捷开发。 

一、初试Scrum

    Scrum是一个用于管理如 软件开发 这样的复杂工作的框架。(这里的框架不是技术上的框架 只是针对项目管理上的一套理论)

    Scrum结构:3个角色 + 3个工件 + 5个事件
        角色:
            1、产品负责人[1人]:简单的理解为项目经理也行。确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容。
            2、开发团队[3-9人]: 完成软件开发过程中的直接参与者。
[开发团队最佳规模:足够小以保持敏捷性、足够大以完成重要的工作。少于3人的开发团队,成员间缺乏足够的互动,因而生产率不会很大。
大于9人的团队需要过多的协调沟通工作,产生太多复杂性]
            3、Scrum Master[1人]: 流程管理员,负责确保所有人都能正确地理解并实施Scrum。服务型领导、服务于产品负责人、服务于开发团队。

         工件:
            1、增量:
            2、产品待办列表
            3、Sprint待办列表

         事件:
            1、Sprint
            2、Sprint计划会议
            3、每日站会
            4、Sprint评审会议
            5、Sprint回顾会议


二、Scrum实施流程
首先我们需要明白一个术语:什么是Sprint?
Sprint:一次迭代开发的时间周期
Scrum的核心,其周期小于或者等于一个月,其产出是“完成的”、“可用的”、潜在可发布的产品增量,Sprint的长度在整个开发过程中保持一致。
新的Sprint必须在上一个Sprint完成之后立即开始。

一个Sprint迭代开发周期流程如下:
1、Sprint计划会议
   目的是为这个Sprint的工作做计划。
   Sprint计划会议要解决以下两个问题:
      1、接下来的Sprint交付的增量中要包含什么内容?
      2、要如何完成交付增量所需的工作?

2、每日Scrum站会
   每日站会以15分钟为限、开发团队成员在这时分享各自的工作情况、完成进度、并为接下来的一天制定计划。
   会议上,每个开发成员需要说明以下几点:
   1、昨日我为开发团队达成Sprint目标做了什么?
   2、今天我准备如何帮助团队达成Sprint目标
   3、有什么事情阻碍了我帮助团队达成Sprint目标
目标:增强团队交流沟通、确定开发过程中需要移除的障碍、强调和提倡快速决策,提高每个成员对项目的认知程度,同时也是监视和调整的关键会议.

3、Sprint评审会议(非正式会议)
会议内容通常含以下内容:
1、产品负责人说明哪些工作“完成”了,哪些工作没有“完成”。
2、开发团队讨论哪些工作进展顺利、遇到了什么问题、问题是如何解决的等。
3、参会所有人就下一步的工作进行探讨,这样 Sprint评审会议就能为接下来的Sprint计划会议提供有价值的信息。
4、为下个产品版本的发布评审时间表、预算、潜在功能。

4、Sprint回顾会议
会议目的:检视自身并创建下个Sprint改进计划的机会。
会议内容:
   1、对前一个Sprint周期中的人、关系、过程和工具进行检视。
   2、找出做的好的和潜在需要改进的主要方面、并进行排序。
   3、制订改进Scrum团队工作方式的计划
Sprint回顾会议提供了一个专注于检视和调整的正式机会。


三、实际项目驱动 如何实施Scrum开发?
1) 将整个产品的backlog分解成Sprint Backlog(按优先顺序排列的一个产品需求列表),这个Sprint Backlog是按照目前的人力物力条件可以完成的。由产品负责人完成。
   

2) 召开Sprint计划会议,划分任务,确定这个Sprint内需要完成的任务,标注任务的优先级并分配给每个成员。确定需求中各功能模块的具体完成时间。如图:


---



3) 进入sprint开发周期,在这个周期内,每天需要召开每日站会(Daily Scrum meeting)。如图:

                                               (图片来源于网络)


                                         (图片来源于网络)

   任务看版包含 未完成、正在做、已完成 的工作状态,假设你今天把一个未完成的工作已经完成,那么你要把小卡片从未完成区域贴到已完成区域。
   每个人的工作进度和完成情况都是公开、透明的。

4) 整个sprint周期结束,召开Sprint评审会议(Sprint review meeting),将成果演示给产品负责人.
   
5) 团队成员最后召开Sprint回顾会议(Sprint retrospective meeting),总结问题和经验。

6) 这样周而复始,按照同样的步骤进行下一次Sprint开发周期. 直至整个项目开发完成。

整个Scrum开发流程如下图所示:
                 

四、个人总结
    ①首先关于敏捷开发 并不是什么新的技术、也不是什么新的名词、而只是项目开发管理上的一个概念性、经验性的理论,是一种开发方法 也就是一种软件开发的流程。
其实在国外很早就盛行啦、在国内大概在09年、10年才开始将这种开发模型得以应用。不要被他的“敏捷”而 敏捷。
    ②敏捷的关键是人,scrum更适合小型团队、初创公司、外包公司。还要求团队内成员的水平较高、技术水平平均。要求团队开发人员态度积极、热情、参与、成员稳定性高。适用开发周期短、紧急型的项目。
    ③概念归概念、理论终究是理论、真正的掌握和理解敏捷开发的精髓 关键在于实际的项目驱动和环境的允许、在项目实践中积累和学习!
更针对走项目管理方向者学习,路漫漫其修远兮... ...


五、扩展阅读

如需更多、更详细的了解敏捷开发可前往 Scrum中文资料站>>




1 0
原创粉丝点击