浅谈scrum

By | 2015年3月12日

本文的目的不是在于介绍scrum是什么东西,有什么好处。只是谈谈自己对scrum的一点个人看法!

第一次接触scrum是在加入天天动听之后,前两年实习公司由于都比较小,还停留在家庭作坊式阶段,当时对软件开发流程的了解一直还停留在学校教科书上的瀑布流模式,整个过程可以抽象为UI与客户沟通需求——设计——开发——UI测试——交付几个步骤,因此整个流程走完,UI+开发基本搞定一个项目。

在接触scrum软件开发模式后,给我最大的印象就是敏捷,两个字说起来简单,做起来不易。关于scrum具体有哪些东西等基本理论,我就不做过多介绍,有兴趣的朋友可以参考scrum百度百科。接下来主要谈谈在实际项目中我们是如何应用scrum指导团队开发的。

scrum有几个基本要求

  1. 团队成员控制在5-10人,超过10人,可以根据情况分为多个小组
  2. scrum团队要求所有成员都是正式员工,尽量避免临时成员的加入
  3. 要求团队最好在同一工作地点,避免多地办公

scrum团队主要角色包括

  1. scrum master(通常由项目经理担任)
  2. 产品经理(主要负责产品的设计、质量把关验收等)
  3. 开发人员(即scrum中猪的核心扮演者)
  4. 测试人员
  5. UI/UE等

在这里,为啥要把UI、测试等人员加进来了,因为scrum强调团队以具体项目来分,而不是以职责来区分,这样便于团队的敏捷管理等。

项目的开发流程与过去的瀑布式有很大的不同,在需求设计定稿后,主要开发流程可以分为以下几个阶段
任务优先级过滤拆分——》任务时间估计、人员分配——》冲刺开发——》测试——》评审——》回顾

有几点需要注意的

  1. 一个项目可以根据工作量、优先级等可以分为多个spring冲刺完成
  2. 任务的分配及时间估计最好做到开发人员自领自估,在遇到任务无法估计时间的时候,可以灵活处理,比如通过数字纸牌游戏等
  3. 测试不必等到所有任务完成后才开发测试,开发人员要对每一个任务做到进度状态的实时更新,测试人员在任意任务完成后即可开始测试。为了确保测试的可持续性,同时也不影响开发人员,整个项目必须做到可持续性集成
  4. 产品及UI也需要做到实时配合开发人员的工作,同时在发现问题后及时反馈给开发人员,这就体现的同一地点办公的重要性
  5. 回顾会议主要是对过去一个冲刺的总结,有什么问题可以改进,有哪些做得不错的可以发扬等

具体在我们项目中,scrum每日站立会议,项目所有人员包括UI、产品、测试等都会参加,时间要精确控制在15分钟内,每日会议时间可以设定在早上或者下午4点左右,不过确定好后最好可以固定下来,地点也最好固定。

scrum工具也比较多,说说我们实际项目主要使用的工具

  1. Trello,项目进度管理跟踪工具
  2. Jira,BUG跟踪工具,以前还用于跟踪需求等,现在这块由trello替代
  3. Confluence,文档管理工具,包括产品文档、UE文档、设计文档、开发文档以及测试文档。Scrum不推崇文档,要求面对面的沟通,追求团队的效率及敏捷性
  4. Git版本管理工具,不多说
  5. Jenkins,持续集成工具

工具主要起到辅助的作用,人才是scrum的核心。scrum追求的最终境界是团队的自我管理和提升。所以,企业公司在引入scrum的流程后要尽量避免行政手段的过度干预,master的主要责任是团队的引导及服务。

scrum不是团队成功的神器,也不能保证任何团队在引入scrum后一定能够取得多大的成绩,它更多的是为公司在团队管理方面提供了一种还算不错的选择。我在自己的团队里很想采用scrum管理方式,但是受限于时间及空间,感到有点可惜,不过,作为一个开发者及受用者,我觉得其还是有一定价值的,值得初创团队尝试!

  • 个体和交互胜过流程和工具
  • 可用的软件胜过完备的文档
  • 客户协作胜过合同谈判
  • 响应变化胜过遵循计划

 

发表评论

电子邮件地址不会被公开。