本文将为您介绍企业数据部门进行需求管理的最佳实践。

说明 目前需求管理支持的区域有华东2(上海)华东1(杭州)华北2(北京)华南1(深圳)

背景信息

某互联网初创企业出于数据赋能业务的考虑,组件了1个数据团队,共有4个人,各自的职责如下:

  • 数据产品经理(Jack_PD):负责规划实现数据产品,同时深入理解公司的业务逻辑。
  • 数据开发人员(Rose_DEV和Alice_DEV):二人共同负责模型设计、代码开发与自测。
  • 数据开发主管(Mike_DEV_TL):从各环节把控生产环境的稳定性、可靠性。

该企业通过使用DataWorks已提高效率,但由于业务增长迅速、业务诉求变化较多,数据团队需要一个有效的工具来规划日常工作。

下图为企业人员架构及其使用DataWorks的人员配备。
人员配备
  • 由于Sales_01是业务人员,因此无需被加入至DataWorks工作空间中,即可直接登录需求管理页面创建需求。
  • Jack是数据产品经理,全面把控需求的提出到实现的整个流程,但不负责具体代码的设计与实现,因此可以按需选择角色加入至DataWorks工作空间中,也可以不加入。
  • Mike被赋予项目管理员角色,负责整个项目的资源配置与代码发布审批,并兼任运维、部署和安全管理员角色。
  • Alice_DEV和Rose_DEV均被赋予开发角色,仅负责开发任务与创建发布包。

角色

实现目标

  • 提升项目效率与质量

    通过明确人员分工与各环节输入输出的结果,避免缺失关键信息、无效/重复沟通,保证项目稳步推进,提升整体效率。

  • 提升日常工作计划性

    每个业务需求均需要进行严格评审、排期,并基于时间节点有计划地安排研发工作。

  • 建立内部良性沟通机制

    基于对标准化数据研发规范达成一致的前提,建立企业内部的良性沟通机制,避免因沟通不畅导致的内部矛盾。

开发流程

  1. 评审阶段:阐述评估需求的技术、数据、合规可行性的通用方法。
  2. 设计阶段:阐述如何根据数据形态(质量、分布)设计数据模型、代码及依赖,从而开展设计工作的原则。
  3. 开发阶段:阐述根据设计阶段的产出来高效、规范地进行编码工作的通用方法。
  4. 测试阶段:阐述如何准确地暴露代码问题与项目风险,提升产出质量。
  5. 发布/运维阶段:阐述如何将具备发布条件的程序平稳地发布到线上,并稳定产出的方法。

评审阶段

  1. 提交需求

    需求方(本文假设为销售部门人员Sales_01)登录阿里云子账号,进入DataWorks需求管理模块,填写相关信息。

    1. Sales_01登录DataWorks控制台,单击相应工作空间后的进入数据开发
    2. 单击左上角的图标,选择全部产品 > 需求管理
    3. 单击新建需求,进入新建需求页面。
      新建需求
    4. 填写需求名称、需求内容,设置基本信息,将需求指派给Jack_PD。
      需求指派
    5. 单击保存
  2. 评审需求
    1. Jack_PD组织相关人员,根据需求阶段的研发规范,评估需求的必要性、可行性、风险和实现细节,同时设置需求的状态为评审中,详情请参见需求阶段
      评审需求
    2. 如果通过评审,则进入需求管理页面,设置需求状态为待设计
      待设计
      如果未通过评审,则进入需求管理页面,设置需求状态为已拒绝
      已拒绝
    3. 根据职责分工设置各阶段负责人。
      设置负责人
      说明
      • 在人员配备充足的情况下,测试人员不能与开发人员、设计人员重合。
      • 发布阶段需要审核代码、保证代码稳定性,应由除开发人员、设计人员外的更具经验的第三个人来进行把控,同时在发布前应进行足够的冒烟测试。
      • 验收阶段应该由制定、提交需求的人员来进行验收。
    4. 如果需求方填写的期望发布时间与实际发布时间有偏差,则重新填写双方最终达成一致的发布日期。
      发布时间
    5. 将评审后最终输出的产品文档上传至需求评审阶段,以供后续人员进行参考或验证,产品文档的输出格式请参见数据仓库需求模板
      数仓需求模板

设计阶段

  1. Alice_DEV根据设计阶段的研发规范,对评审阶段产出的文档进行数据探查与系分设计,详情请参见设计阶段。同时,修改需求的状态为设计中,以便追踪进度。
    设计阶段
  2. 设计完成后,Alice_DEV上传数据探查报告ETL文档调度设计文档至设计阶段,并修改需求的状态为待开发
    待开发

开发阶段

  1. 开发代码。
    1. Rose_DEV参考设计阶段产出的文档,根据开发代码的研发规范进行DataWorks任务的开发,详情请参见开发阶段。同时,修改需求的状态为开发中,以便追踪进度。
      开发中
    2. 单击关联节点
      关联节点
    3. 选择关联节点对话框中,选择涉及到该需求的开发节点、机器学习算法实验,单击确认
      关联节点
    4. 返回需求页面,即可查看相应节点成功关联至该需求。
      关联成功

      此时需求管理会根据节点的发布状态,自动计算需求的整体开发工作完成进度并显示百分比,该值后续会随着每个节点的发布而达到100%。

  2. 自测代码。
    节点开发完成并进行自测后,Rose_DEV输出并上传单元测试报告发布操作文档代码评审报告。同时,修改需求的状态为待测试
    待测试

测试阶段

  1. Alice_DEV根据测试阶段的研发规范,基于测试用例对开发阶段产出的文档进行交付测试和数据测试。详情请参见测试阶段。同时,修改需求的状态为测试中,以便追踪进度。
    测试中

    DataWorks标准模式的工作空间为您提供开发环境和生产环境隔离的机制,您可以在开发环境完成开发、冒烟测试,并发布至生产环境。具体的操作步骤如下所示:

    1. 进入业务流程看板,单击提交图标,提交开发完成的节点至开发环境的调度系统。
      提交
      提交成功
    2. 依次对每个节点进行在开发环境执行冒烟测试操作,模拟代码在生产环境下的运行情况。同时您可以单击查看日志,验证节点的运行时间、运行结果是否符合预期。
      冒烟测试
      查看日志
  2. 测试完成后,Alice_DEV输出并上传交付测试报告质量评估报告模板验收报告模板。同时,修改需求的状态为待发布
    待发布

发布阶段

  1. Alice_DEV根据发布阶段的研发规范和测试阶段输出的文档,提交代发布申请。详情请参见发布阶段。Mike_DEV_TL对代码的合规性、规范性和合理性进行审核,审核无误后便可进行发布。

    在DataWorks进行代码发布的操作步骤,如下所示:

    1. 提交发布申请。
      Alice_DEV单击页面右上角的任务发布,统一创建在测试阶段运行成功的节点为发布包,提交发布申请。创建成功后,等待空间管理员进行审核。
      任务发布
      任务发布
      全部打包
      发布
    2. 审批与发布。
      空间管理员进入发布包列表页面,检查代码发布前后两个版本的差异。如果确认无误单击发布,即可发布代码至生产环境,执行定时调度。
      发布包列表
      您可以进入运维中心 > 周期任务运维 > 周期任务页面,查看已发布至生产环境进行定时调度的所有节点。同时,您可以周期实例页面查看定时任务每天生成的实例,并可以查看每个实例的运行日志。
      运行日志
    3. 配置数据质量监控规则。

      发布完成后,您可以根据自身需求,为发布的节点配置数据质量监控规则,以保证产出数据的可靠性。详情请参见数据质量风险监控

  2. 代码发布完成后,Alice_DEV修改需求的状态为待验收
    待验收

如果有发布阶段的说明文件,您可以单击上传,将其上传至服务端进行存档。

验收阶段

销售人员Sales_01与数据产品经理Jack_PD根据最初的业务需求,验证开发人员所提供的数据表/API内容是否符合预期。如果符合预期,则修改需求的状态为验收完成
验收完成

如果有验收阶段的说明文件,您可以单击上传,将其上传至服务端进行存档。

至此,便流程化、规范化地完成一个数据需求。Jack_PD作为数据团队的需求管理者,可以借助需求管理的高级搜索、视图等功能,整体把控团队各成员当前的工作内容,并通过设置需求的优先级,来为团队合理安排工作进程。高级搜索、视图功能的详情请参见搜索需求