前段时间参加了两天敏捷开发管理培训,收获挺大,在这里做一下总结。
整个培训过程中一直穿插着敏捷软件开发的原则进行讲解,这里摘录给我感触最深的几个:
敏捷流派主要有两个:Scrum 和 极限编程。Scrum侧重项目协作流程,极限编程侧重提高编程效率的技术实践。两者应该相辅相成。这里着重讲讲Scrum。
Scrum中有Product Owner、Team、Scrum Master三类角色。一个好的Scrum团队以下特点:
做好一个Product Owner要点如下:
Scrum Master要引导团队自己去找答案,而不是做一个发号司令的人,做好一个Scrum Master要点如下:
Team就是团队中的开发、测试或ui设计人员。
Scrum通过编写用户故事来管理需求,好的用户故事的原则如下:
之后要进行工作量估算,Product Owner(业务人员)必须在场梳理需求,每个项目成员针对用户故事的疑问向Product Owner提问,所有人弄清楚需求后开始。
大家先找一个参照需求,确定它的工作量,然后其他的需求就按照这个参照需求来估计,这种相对估计法确保每个人估计出来的工作量是一致的。
使用扑克牌,大家同时给出需求的估计值(而不是轮流进行),估值最高和最低的必须分别给出原因,这样做的好处让大家都独立思考。通过多轮估值让所有人了解需求,并估算出一个较为合理的工作量。
简单来说,划分如下
项目计划|
Sprint0|
Sprint1|
Sprint2|
Sprint3|
项目总结|
按一个迭代周期来说,主要划分如下:迭代计划和评审一般要占用两个小时,而站立会议一般15分钟。
迭代计划1|
迭代计划2|
站立会议|
...|
站立会议|
迭代评审|
迭代回顾|
Spint0要做一些准备活动,如高层的业务流程图、初始的用户故事列表、测试策略、发布计划、团队建设、技术架构的选择、设计UI的风格等。
晨会的要点:
站立晨会的三个经典问题:昨天我完成了哪些工作;明天我打算做什么;完成我的目标是否存在什么障碍。
站立晨会的目的不是为了让大家都回答那三个问题,而是让团队围绕这三个问题,制定当天的工作计划并暴露问题。
迭代验收会议,通过演示可工作的软件检查需求是否满足客户要求;迭代验收的好处:
迭代回顾会议,目的是分享好的经验和发现改进点,促进团队不断进步,迭代回顾的好处:
即使不使用敏捷方式开发,也可以利用它的一些好的想法和实践可以用来提升目前的工作效率。
需求文档 或者 使用说明文档 写了100多页,但是写完之后基本没人看,这样的问题应该很普遍,该如何解决?
把Word文档迁移到Wiki上,大文档切细分成一个个独立的Wiki页面,Wiki可以统计页面的访问次数,有了足够的数据支撑之后就可以把访问次数少的页面去掉,以此来精简文档,这样留下来的文档内容就是真正有用的。
业务部门的需求太多而且每个都非常紧急,怎么处理?
业务部门拉一个人对需求按价值进行排序;需求收集例行化,主动收集,需求有一定的清晰度;回顾哪些需求不重要,做为武器。