这么多年还等着主管给你们下发任务?

问:

领导说:“你们开发人员做了这么多年还等着主管给你们下发任务?”,领导这么说是不是不太符合软件工程管理?#软工好问题#

领导这么说没问题,天天等着主管下发任务,那效率多低呀!

但是,但是,一定要配合相应的工具和流程才科学。

那么什么样的工具和流程才比较科学呢?

首先需要用一个任务管理工具来将所有任务管理跟踪起来,这样的工具有很多,比如 Jira、GitHub Projects 等。

这些工具的重要特点是:可以收集记录每一个任务,跟踪管理任务的整个生命周期。 而对于其中的每一个任务,要有清晰的:

  • 标题:概要性的说明任务
  • 内容:任务的详细内容
  • 类型:Bug、需求、调研等
  • 重要性/优先级:重要性和紧急程度
  • 负责人:任务谁来负责
  • 状态:当前任务的进展:等待处理、进行中、测试验收、完成 等
  • 打分:这个任务大概需要多少时间完成

只有用工具把所有任务都跟踪管理起来,开发人员才能清楚的知道自己该去哪里拿任务,该优先做哪一项任务。对于管理者也一样,只有用工具管理起来,才能清楚的知道每个开发人员在做的事情,进展如何,长期看还能知道每个开发者的产出多少。

然后需要一个清晰的工作流程

现在比较流行的工作流程是基于 Scrum 的开发流程,一个 Sprint(开发周期)一个 Sprint 的迭代开发,每一个阶段都有明确要做的事情。

  1. Sprint 计划 Backlog 里面有多少高优先级的任务,根据优先级从高到低选取任务 每个任务打分多少?需要开发人员参与对每个任务进行打分,分数过高的任务应该进一步拆分成多个小任务。 接下来这个 Sprint 大致能完成多少分?上个 Sprint 还有多少遗留的任务?要留多少 buffer?

  2. 任务说明、需求说明 有些任务比较复杂,需要单独安排会议,让产品经理一起参与介绍清楚任务的详细内容,需求文档,设计规范等等

在新的 Sprint 开始前就要把这些工作做好,这样开发人员才可以正常的开始任务。

  1. 开发和测试 当 Sprint 开始后,开发人员就可以从任务管理系统里面去按照优先级选取高优先级的 TODO(待开发的)任务了。 当一个任务开始了,状态就要变成 In Progress(进行中),开发完成后,借助 CI 部署到测试环境,就可以让任务进入 Testing(测试)。 任务在测试的时候,如果测试通过,就可以将状态标记为 Done(完成),如果测试不通过,那么就需要将状态重新标记为 TODO,再进入 In Progress,然后 Testing,知道测试通过后变成 Done。

  2. 发布 当快到了发布的时间,就需要将所有验收通过的任务一起打包发布,再完整的回归测试,没完成的就滚动到下一个 Sprint。

  3. 演示和总结 项目发布后,让开发演示一下自己的作品,既可以让大家都知道我们发布了什么,又可以让开发得到一定的肯定和鼓励 事后总结复盘可以让以后做的更好

  4. 每日例会 每天简短的沟通一下,看每个人的昨天做的事情、今天要做的事情、有没有任何障碍,这样遇到问题可以及时沟通,避免最后时间到了才发现差一大截。

并非说一定要 Scrum,但基本流程都是类似的,也是必须的:

  • 每个版本的计划,要发布哪些任务
  • 让开发和测试清楚的知道每一个任务的详细内容
  • 要跟踪任务的状态,从 TODO 到 DONE 有个清晰的流程
  • 要日常定时沟通,及时发现问题及时调整
  • 事后总结,不断完善

所以以后领导自己说下属应该自己主动去选择任务要任务,先自己想想: 有没有用任务管理工具把任务都管理好? 有没有清晰的计划让大家都知道接下来要做哪些任务? 有没有让负责任务的人知道任务的细节? 下属在完成任务时有没有任何障碍?有没有帮助下属移除所有的障碍?