wemake.services: Development process

20th August 2020 at 2:19pm
wemake.services

沟通方式

wemake 不允许 团队成员有任何非正式的沟通方式,包括:IM 聊天、Email、电话、面对面交流。它期望所有的沟通都在 GitLab 上的单据完成,这样的作用是:

  • 有清晰的话题
  • 可追溯
  • 讨论是适度的
  • 对项目有帮助

这导致跟任务相关的信息,仅需要在这些地方查看:

  • 代码本身
  • 文档
  • GitLab issues

怎样的讨论是被鼓励的?有这些:

  • 在开始工作前对任务细节的探讨
  • 完成任务过程中的任何疑问
  • 文档不完善导致的疑问
  • 对技术上的决策发表的意见

单据

每个单据代表了一个任务。单据里面有这些信息:

  • 角色:reporter(发起者)和 assignee(分配到的开发者),可以是同个人
  • 预估时间:只有架构师可以预估时间
  • 类型:
    • Bug
    • Feature
    • Documentation
    • Research

对单据内容的要求:

  • 必须是自包含的,即是对阅读单据的人来说,里面的信息足够他完成任务
  • 必须遵循 SMART 原则

单据不能被手工关闭。应该在完成后,发起一个 merge request 并关联到这个单据。如果 merge request 通过,则单据会被关闭。

任务流程及完成标准

理清任务要求后,开发者需要拉单独的分支 issue-{issue_no} 来开发。开发完成后再合回 master 分支。

wemake 提出的 完成标准 非常有参考价值,覆盖了测试、文档、style lint 和代码走查。同时他在 merge request 的模板中放了 check list 提醒开发者是否完成这些内容。

技术决策

对于 技术决策,wemake 使用 ADR 来做纪录。