敏捷开发SCM
敏捷的目标:自组织,提高交付质量和交付速度;敏捷中实现拥抱变化是通过迭代增量实现的;所谓的迭代是循环,循环一种机制和模式,增量则是价值的增加,迭代增量,就是通过每次工作流程的循环实现业务价值的提升;那么关于迭代,其实是两个核心部分,一个时间,在scrum中每个迭代都是称之为一个sprint,即使冲刺的意思,scurm本身是棒球的一个术语,就是"争球",我理解代表的是一场"比赛",每个sprint其实是一次次的冲刺,在橄榄球比赛中,其实都是从一次争球开始,然后冲刺向目标(对方的球门);所以scurm其实本质应该是一种节奏非常快,而且目标明确的一种项目管理框架。另外一个是流程,scrum有一些会议,这些会议在迭代的各个阶段,并起着不同的作用。
这里强调一下,scrum是一种框架,而不是具体的解决方案,scrum有建议的工具和手段,但是都不是强制的。
所谓的Scrum是一种框架,并不是MVC,Spring之类的框架,其实是一种抽象的,思想级别的框架,什么思想?拥抱变化,团队自组织。自组织可是一个高大上的话题,其实落地的话就是团队成员关注不是自己的Task,而是这个用户故事,这里我们假设的是用户故事并不是有一个人完成,而是有团队中几个人合作完成,比如有前端,后端,BA,测试合作完成;就是你既然负责了一个Task,那么你关心的不是这个Task本身,而是整个Story,或者说是条目(Item),自组织是一种自然的组织形式,但是需要有人来指导,我们人类天生就是组织化动物,但是如果组织得好,组织的有序高效,这个就需要一个Scrum Master(SM)的角色来做做引导;SM这个角色本身是没有权利(人事权,财务权),甚至不是团队中成员,SM是一个脱离于团队存在,他的定位是PO关注的业务价值而不是Item。或者说scrum其实是基于一种Y人性,同时相信人的责任感的一种管理框架。这个也是"自组织"能够形成的必要条件。
在SCM中有三种角色:Scurm Master,Product Owner以及团队;Product Owner是输入方,主要负责定义条目(story),安排优先级,然后输入给团队,团队通过自组织在一个迭代中完成目标条目;Scrum则"守望"这团队,注意,并不参与,而是远远的观望,只有当组织的方向有偏差的时候, 比如高优先级的任务没有被关注到,某些风险被忽视,再或者开会的时候,议题的方向跑偏了,这些时候SM会出来引导一下大家的方向和关注点,这里不是Leader觉得中决策,而是引导,比如通过提出问题等让团队自己来决策以及提出解决方案。所以SM的负责的其实是团队的运作机制和运作效率,他负责的是团队是否实现了一种高效的自组织,这个有别于经典项目管理理论中的项目经理或者Team Leader角色,参与的方向是不同的,后者是决策角色。
下面想一下Scrum的流程,主要是几个会议,scrum通过会议:
项目计划会议,计划会议是由两部分组成(Part1,Part2),第一个部分主要解决的是"what"问题,这个会议的之前需要做的功课是需要把Product Backlog List以及优先级整理出来这个是PO做得事情,在会会议上面,PO将会对需求进行讲解,然后大家讨论需求,并对故事进行拆分,注意这个拆分是指业务层面的拆分,和技术无关;第二部分是"how"的问题,就是怎么去实现,这里牵涉到了将story拆成task;在part2中,有一个工具是扑克牌点数法,这个工具很好,这个工具本身是用来对用户故事进行估算的,其实估算结果并不重要,重要的是这个工具可以暴露出团队成员对于需求理解的不一致,大家可以进行沟通和交流。
这里介绍一下Scrum有两个List,分别是Produt Backlog List(PBL),另外一个是Sprint Backlog List(SBL),前者是一个所有的待实现的用户故事,并且包含了优先级,后者则是本轮迭代需要完成的任务列表。
每日立会,每日立会为了让团队行程一种关注Item(story),不要从团队成员的维度来过那三个问题(昨天,问题,今天),最好是以着用户故事的为单位来过每日立会。
项目评审会议,参与人包括PO,客户以及团队还有scrum,主要是对于本轮迭代内容进行一个评审,主要是从业务的角度来进行的。
项目回顾会议,参与人团队以及SM,大家主要是针对迭代流程,技术层面进行一下回顾,商量一下得失。每个人都回顾一下自己在本轮迭代里面都做了什么;
敏捷开发SCM的更多相关文章
- CI/CD持续集成/持续部署 敏捷开发
敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它 ...
- TFS 2015 敏捷开发实践 – 在Kanban上运行一个Sprint
前言:在 上一篇 TFS2015敏捷开发实践 中,我们给大家介绍了TFS2015中看板的基本使用和功能,这一篇中我们来看一个具体的场景,如何使用看板来运行一个sprint.Sprint是Scrum对迭 ...
- TFS 2015 敏捷开发实践 – 看板的使用
看板在现代应用开发过程中使用非常广泛,不管是使用传统的瀑布式开发还是敏捷开发,都可以使用看板管理.因为看板拥有简单的管理方法,直观的显示方式,所以很多软件开发团队选择使用看板进行软件开发管理.本文不在 ...
- 小谈Scrum敏捷开发流程
一晃眼,有两年没有写博客了,回顾前两年,各种奔波,各种忙碌,也有不少的收获.从今天开始,我要把这些收获都分享在这里. 其实这两年,对我影响最大的是开发流程.总所周知,一个好的开发流程,对于项目的进行, ...
- UDAD 用户故事驱动的敏捷开发 – 演讲实录
敏捷发展到今天已经在软件行业得到了广泛认可,但大多数敏捷方法都是为了解决某一特定问题而总结出来的特定方法或实践,一直缺乏一个可以将整个开发过程串接起来的成体系的方法.用户故事驱动的敏捷开发(User ...
- 传统瀑布式&敏捷开发
---传统瀑布式 瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求.分析.设计.编码.测试的步骤顺序进行. 步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等. 瀑布式 ...
- 用户故事驱动的敏捷开发 – 2. 创建backlog
本系列的第一篇[用户故事驱动的敏捷开发 – 1. 规划篇]跟大家分享了如何使用用户故事来帮助团队创建需求的过程,在这一篇中,我们来看看如何使用这些用户故事和功能点形成产品backlog.产品backl ...
- 20145205 《Java程序设计》实验报告三:敏捷开发与XP实践
开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软件工程包括下列领域:软 ...
- 传统开发模型vs敏捷开发模型——过程模型的变革
一.概念框架 在了解一个新概念的时候,最好的方法就是把它插入到原有的概念体系中.在不仅有助于对概念的记忆,更利于深刻地认识概念的本质.精髓.下图说明了"敏捷开发"在软件工程理论体系 ...
随机推荐
- oracle入门之对表数据查询(三)
oracle表复杂查询--子查询 什么是子查询? 子查询是指嵌入在其它sql语句中的select语句,也叫嵌套查询. 单行子查询 单行子查询是指只返回一行数据的子查询语句. 请思考:如果显示与smit ...
- How to automate Microsoft Word to create a new document by using Visual C#
How to automate Microsoft Word to create a new document by using Visual C# For a Microsoft Visual Ba ...
- [转载] java多线程总结(一)
转载自:http://www.cnblogs.com/lwbqqyumidi/p/3804883.html 作者:Windstep 多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的. ...
- Python3.x - 字符串
Python3 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号( ' 或 " )来创建字符串. var1 = 'hello world' var2 = "he ...
- WEB学习笔记3-开发环境和工具
WEB前端集成开发环境:Aptana Studio和WebStormWEB前端代码调试:IE浏览器自带的IE Dev Toolbar,Chrome浏览器自带的Developer Tools,Firef ...
- ubuntu 16.04 编译安装 amule (开启GUI)
安装依赖 $ -dev libgeoip-dev zlib1g-dev libupnp-dev libboost-all-dev libwxbase3.-dev libwxgtk3.-dev buil ...
- ExcelUploadUtil
package com.rscode.credits.util; import java.io.File; import java.io.FileInputStream; import java.io ...
- 百战程序员——JSP
JSP全称是什么?它相比servlet有什么优势?有什么劣势? JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计. JSP技术使用Jav ...
- Java基于opencv实现图像数字识别(五)—投影法分割字符
Java基于opencv实现图像数字识别(五)-投影法分割字符 水平投影法 1.水平投影法就是先用一个数组统计出图像每行黑色像素点的个数(二值化的图像): 2.选出一个最优的阀值,根据比这个阀值大或小 ...
- JAVA第九次作业
JAVA第九次作业 (一)学习总结 1.用思维导图对javaIO操作的学习内容进行总结. 参考资料: XMind. 2.下面的程序实现了文件的拷贝,但采用的是一个字节一个字节的读写方式,效率很低.使用 ...