敏捷开发记录

迭代甘特图


  敏捷开发作为现在互联网企业常用的开发模式,无论是否使用,都是值得学习和体验的,接下来说一下上图想要表达的意思,双周迭代,也就是每两周发布一次新版本,稳定迭代,对各方都不会造成过大的压力,在部门内部来说,开发周测试同学可以抽出时间进行个人提升,在测试周,开发同学可以抽出时间进行个人提升,因为每个人都会希望自己能够变得更强一些,如果能在工作的同时得到提升,那么对于工作来说也是一件有益的事情,个人的提升会表现在工作当中,相互促进,学到的东西在工作中也可以进行练手。
  敏捷开发的一个重要的要求是团队内部必须透明开放,具有一致的目标,切忌推卸责任,倡导主动承担责任,因为在做事情的同时,个人也会得到提升,每月部门负责人要与每个人进行一对一的谈话,了解大家所想所得,近期高兴与不高兴的地方,了解每个人的内在需求,同时不以上下级的身份对一些问题进行深入的探讨,这样的讨论是意义非凡的,了解别人的想法,才能结合自身进行改变和提升。
下面对图中的关键点进行说明:

  • 开发周:开发同学在拿到任务之后集中精力开发功能,和各方确认功能的准确性,也就是说这周的主要角色是开发
  • 测试周:测试同学在得到提测指示之后按照测试用例和具体需求进行功能测试,也就是说这周的主要角色是测试
  • 开发周测试同学的工作:深入需求细节,编写测试用例,与各方进行需求确认和整合,为测试周做准备
  • 测试周开发同学的工作:及时处理测试同学遇到的问题和提出的bug,对开发完成的功能进行调整和确认,确保功能问题能够得到及时的处理
  • 版本提测:在开发同学完成全部的开发任务之后将这些任务统一提交至测试部,列出所有本循环开发的任务,确保双发信息一致性
  • 测试报告:测试同学在完成测试之后,统计bug的情况和数量等级等信息,对此次迭代进行一个小结,列出测试出现的关键问题,提醒开发注意这些要点,开发同学也要虚心接受,测试报告是评估本次循环质量的重要一环,同时也是告知产品部门迭代开发任务已经完成,及时去仿真环境进行熟悉和试用,及时提出问题,通过之后即可上线
  • 任务拆分:任务拆分是在需求评审完成之后的重要环节,合理的任务拆分应该保证每个人身上同时挂载的任务量工时不超过30小时,任务分前后端,同一模块的前后端任务具有相关性,这样可以非常方便的找到对接人,任务估时以 5 × 8 × N 的方式进行计算,一周五天,一天八小时,N 代表开发人员总数
  • 任务领取:任务不采用强行分配的方式,每个人根据个人能力量力而行,主动的去领取任务并通知相关对接人员,绝对不允许出现推卸责任的情况,如果一个任务未完成,那是整个团队的责任
  • 需求评审:在迭代过程中和产品进行集中精力对接的时间点,这时产品会阐述整理好的需求列表并描述需求细节和有问题的一些要点关键点等,开发人员提出疑问,深入了解需求,确保开发和产品双方对需求的理解是一致的,除去这段时间后续在开发过程中肯定还会发现问题,此时一定要及时与产品进行沟通,此时对人的责任心要求较高
  • 技术分享:首先,分享能让人得到非常快的进步,对于分享人来说是一次知识的整理和凝练,对于听众来说,了解一些自己不知道的东西,对自己知道的东西加深一次印象,其次,作为开发人员,参与到分享之中是一次重要的充电机会,在紧张的开发任务中,绝大部分都是业务逻辑,提升点比较少,因此分享就成为了一次重要的集体进步机会,最后,作为分享人可以锻炼自己的表述能力,达到可以从容的讲述自己想说的东西,这是非常重要的
  • 例会:例会是一个重要的进度信息同步时间,每个人叙述自己本周的工作内容,各个部门叙述主要工作,同时大家提出一些问题并探讨解决方法,对公司层面发生的大事小事进行信息同步,如果有闲余时间大家可以自由讨论一些非工作的话题,扩展点很多,具体自由发挥

任务管理

  • 常见任务管理团队协作工具
    • Trello
    • Teambition
    • Worktile
    • Meistertask
    • Asana
    • 石墨文档
    • Quip
    • Slack
    • Dropbox
  • 任务拆分估时:任务在拆分完成之后进行估时,拆分任务时要注意任务的单一性和明确性,大块儿任务必然可以通过拆分合作完成,估时不是指从写代码开始到写完的时间,而是指深入了解需求、开发、自测、单元测试、各方同步沟通的总时间,在这件事情上面不可过分自信,保证质量是非常重要的,也不可过分去深究细节,比如这个任务的单元测试要两个小时,这个任务要四个小时完成,这种时间卡点基本就是浪费时间,一定要把握好这个度,同时估时也是对外的一种说法,确保需求方不会过分的提出不合理需求,确保双方的合作能够顺畅进行下去
  • 倡导的合作方式:前后端同学在合作时尽量不要遇到一个接口有问题就去询问,双方约定好某个时间点集中精力完成对接,因为在开发任务时最害怕的就是中途被打断,然后将思路捡起来是损耗非常多的一件事情,所以互相之间要提前沟通好并且为之负责,开发同学要及时处理测试同学提出的问题和疑问,保证任务顺利进行,这样无论对个人还是团队都是有益的

想法

  敏捷开发最显著的优势为合作、高效、透明、持续交付,但有时对于大的改变会有些捉襟见肘,如果现在需要完成一个难度非常高的项目,短期内是无法开发完成的,那么此时敏捷可能就不再适用了这时就需要根据实际的场景重新规划,以达到目标。
  如果有幸进入敏捷开发的团队,对于个人来说会有不小的提升,加油!