本文主要来源于华为软件开发流程,同时根据在创业团队的实践在细节上稍有修改。
需求管理
先了解几个概念:
IR(Initial Requirement):原始需求。这种需求来自客户,一般由产品经理/需求经理编写。如果是研发内部产生的需求,可以不需要有IR。
SR(System Requirement):系统需求。架构师对IR进行分析以后,结合系统设计,将需求描述成一个个要实现的子系统或者模块,比如:提供用户权限管理系统/模块,要求满足用户、角色、权限管理,满足3A/4A要求。
AR(Allocation Requirement):分配需求/分解需求。架构师或者高级工程师分析SR,将SR分解成一条条的可以分配给开发人员去实现的需求。注意,AR分解完成的时候,每个AR的预估工作量也应该给出。AR的分解没有非常明确和固定的分解方式,需要根据人员、项目时间要求进行把握,在笔者经历的项目中,通常有以下几个原则:
- 一个AR的工作量不要超过一轮迭代的单人工作量。比如,如果一轮迭代安排一个月(以22个工作日计算),那么一个AR的工作量不要超过22人/天,不然会出现一个AR需要两轮迭代完成的情况,敏捷禁止在一轮迭代中出现半成品。
- 一个AR尽量由一名开发人员完成。比如,需要完成用户的增删改查功能,可以分两个AR:
SR001-AR001:提供用户增删改查Web API。
SR001-AR002:前端实现用户增删改查功能。
一个典型的AR可以是下面的格式(xx项目迭代跟踪表.xlsx):
SR号 | AR号 | AR描述 | 迭代周期 | 设计 | 开发 |