### 需求的收集及决策:
- 需求收集责任人:社区开发者随时可以提交需求类issue,对应sig负责需求收集和整理。
- 需求决策组织:sig组需求分析后提交PMC组织需求价值评审和排序,在PMC决策接纳或拒绝需求。
### 需求交付计划制定
- 里程碑制定:release-sig组发布迭代交付里程碑。
- 需求交付计划:所有需求经PMC评审后接纳的需求,需要明确交付计划,每个需求必须指定里程碑点,并按照计划交付。
### 需求分解及依赖管理
原始需求颗粒度不同,需要经过分解形成可以指导开发的需求列表,一个需求如果描述不清楚需要分解到场景清晰、能够验收、质量目标明确(性能、功耗等基础特性)的粒度,需求的分解通过子任务和父任务进行关联关联,所有原始需求作为一级需求,每个原始需求建议分解到一个二级需求(子任务),如果二级需求依然粒度大,可以继续分解,直至能够达成需求描述可以直接指导开发实现的程度,建议最高分解到三级需求(三级子任务):
- 建议所有原始需求要分解到二级需求。
- 所有最终分解的需求达成场景清晰、可验收、质量目标明确的目标。
- 最小化原则:每个最小粒度需求不跨仓,唯一一个开发者完成。
- 如果需求和其他需求依赖,必须指定需求依赖关系。
- 需求分解需要指定协作者,协作者需要包括测试,安全和资料,协作者负责对应领域的需求评审,所有需求必须经过协作者评审通过。
- 每个需求分解需明确性能、功耗、安全等基础特性对应规格目标。
- 每个需求如果涉及对外接口或对开发者使用有变化,必须分解一个文档类需求。
- 设计方案变更或大粒度需求,要输出设计文档,每个sig组维护一个模块设计文档。
- 原则上禁忌特性需求不能被接纳,确认提交需求是否会造成以下结果:
1、需求会危害社会安全,如自动攻击网络服务器;
2、需求会建立文化冲突,造成种族和文化歧视,如识别人的种族;
3、需求会违反伦理道德,如图像换脸技术;
4、需求会在用户或设备不知情的情况下收集用户相关信息,并可能未经用户同意将其信息发送给其他实体;
5、需求是否会降低系统安全防护能力;
### 需求分配
- 每个需求明确责任人。
- 每个需求需预估工作量。
- 开发者认领需求如果出现一次延期,可以申请交付计划变更一次,再次计划延期时间原则上不能超过原计划需求工作量的20%,如果出现再次延期,由sig组有权重新分配责任人或调整交付范围。
### 需求类issue各字段的要求
- issue状态字段是跟踪管理issue重要的信息,需要在处理issue环节及时更新
| 状态字段 | 负责人 | 描述 |
| ------------ | ------------ | ------------ |
| 待办 | 提交者 | 任何开发者都可以提交需求到社区,初始状态为待办 |
| 已确认 |sig组 |由sig组指定责任人收集需求,并和提交者确认 |
| 已分解 |sig组 |需求经过评审接纳后分解需求,组织需求分配责任人 |
| 设计中 |需求责任人 | 按照设计要求输出设计文档 |
| 开发中 |需求责任人 | 代码开发,本地验证,提交pr到社区,开发完成指定需求回归测试人员 |
| 验收中 |测试 |由测试人员回归验收需求 |
| 已完成 |测试 |经过测试验收后的需求 |
| 已拒绝 |sig组 |经和提交者确认或PMC评审,此需求不接纳 |