解决我们的项目管理难题–山姆·雷德蒙德–中

解决我们的项目管理难题

我最近写了一篇有关项目管理的文章tldr :实践中的敏捷打破了理论上所有敏捷的承诺(敏捷宣言),并且在很多情况下,实施过多会减慢开发速度。

我并没有以任何切实可行的解决方案作为本文的结尾,只是有些模糊的内容可以解释为我不是故意的。 在本文中,我想详细介绍一些我想帮助我们管理项目的事情。

我要做的第一件事是谈论一些几乎所有项目都具有共同点的高度概括的东西,甚至是非技术项目。

  1. 有一个目标可以实现
  2. (应该)明确定义项目的最终目标
  3. 一系列任务将定义一张地图,以指导团队完成项目
  4. 多个团队成员将异步执行这些任务
  5. 在异步工作时,团队成员可能有重叠的工作,并且必须彼此协调

概括项目还有很多其他因素,但是我认为这些因素将成为弄清如何最好地管理项目建设的重点。

既然我们已经为大多数项目需要的一些东西定义了,那么让我们来谈谈敏捷如何解决它们以及为什么这些方法在实践中不起作用或可以改进的原因。

让我们谈谈前三点。 在实践中,敏捷提出了里程碑和Sprint,以定义项目目标并规划实现该目标的道路。 这些东西本身实际上是定义项目以及明确定义实现目标的途径的一种好方法。

但是,当您练习敏捷时,冲刺周围会存在一些过程,这些过程会以不必要的方式减慢我们的发展速度。 主要原因是举行的会议数量。 有修饰会议,冲刺计划会议,回顾会议,Scrum会议,冲刺审查会议,可能还有其他一些我想不到的,所以我只想说等等。这些会议将在每周左右提供帮助,导致每周浪费数小时在会议上,而这些时间本应花在编写代码或提高生产力上。 稍后我将介绍一些解决方案,但我还有2点要谈。

第4点和第5点涉及完成任务并与团队同步。 敏捷是通过每天早上起床开会来做到这一点的。 如果这听起来很乏味,那么您是对的。 尽管团队在同一页面上很重要,但是每天早上开会要说您之前的一天以及当天的工作,这是浪费每个人的时间。 如果您从事的工作完全不关心其他团队成员的工作,或者与其他人的工作不会重叠,则尤其如此。

好的,现在我们知道敏捷建议解决我指出的5个问题的原因,以及为什么它们不好,让我们尝试改进它们。

让我们再次从前三个点开始,这次我们将使用一个示例来说明这一点。 假设我们对应用有一个想法。 这个想法是项目的最终目标,是应用程序应该做什么以及应该做什么。 一旦有了想法,您可能会喜欢“现在好吗?”。 现在第一点起作用了。 我们需要记录下来。 写下来,将其放在计算机,Google云端硬盘等任何设备上,但需要将其记录在可以添加的位置。 这是第2步起作用的地方,我们需要明确定义它。 通常,当我们有一个想法时,它有点模糊并且没有经过深思熟虑。 一旦记录了这个粗略的想法,就可以对其进行完善。 花一个小时左右的时间,使您的团队伙伴聚在一起,并写下尽可能多的功能。

在进入第3点之前,我想强调一下。 这是一个过程,您将在项目开始时执行一次,并且可能不会再次执行,而最初的想法只需要一个小时左右。 好吧,第3步是映射项目的一系列任务。 我认为从一开始就写出需要从头到尾(或至少到MVP)完成的每个任务都不重要。 这将花费很长的时间,并且随着您的前进,接近最终的那些将更改它们。

至此,您已经有了一些功能和一些队友准备开始工作的想法。 在继续之前,我想快速谈论一下工具。 有很多项目管理工具可用:Jira,Asana和Trello,仅举几例。 我会告诉您,使用哪一个并不重要,但是我认为您的项目管理工具不应过于自以为是,因此我不建议使用Jira。 基本上,您需要一个工具来允许您创建任务并分配任务,以便可以看到谁在做什么。 您真的不需要的更多。

好的,所以回到正轨,我们需要谈论将任务纳入我们选择的工具中。 我非常喜欢Trello,因为它很简单,并且使我们能够使它成为我们独有的功能(Asana也很棒,但从现在开始,我将我们的工具称为Trello)。 这是项目管理的关键领域,我认为需要掌握在开发人员手中,而不是项目经理手中。

如果您是非技术人员,那么我的想法可能听起来有些吓人,我想直接和您谈谈。 这是您的想法,您希望它按照自己的方式执行,我明白了。 但是您不是开发人员,您不了解最佳实践,也不会设计对您的开发团队有益的任务。 现实是,没有开发人员,您什么都不是,没有开发人员,您将没有应用程序。 如果您不信任他们,那么您需要新的人。 我的建议是雇用一个您信任的开发人员,以告诉您是否有做得不好的开发人员,但不要试图告诉您的开发人员如何完成工作。

开发人员应决定要完成的任务和顺序。 这不应在特定的会议上确定,也不要花任何时间编写代码。 相反,它应该像厨师的大队一样运作。 如果您曾经看过地狱厨房,就会知道我在说什么。 订购票到来时,厨师大喊大叫,厨师做饭。 从那时起,肉食站必须与装饰站进行通信,开胃菜中的人必须彼此通信,而不是异步完成所有操作,每个人都知道其他人在做什么。 这就是开发工作的方式。 我们拥有Slack等令人难以置信的通信平台,我们没有有效地使用它。 就像在厨师的厨房里准备一顿饭一样,开发人员应获得需要一个应用程序的订单,然后他们进行交谈,沟通和共同努力。 没有项目经理,没有Scrum会议,没有站起来,只有不断的沟通和开发人员才可以控制创建和分配任务。

这种通信可以以多种方式进行。 通过Slack,PR,问题,通过Trello,电话,视频聊天,或者只是在房间里大喊大叫(如果您都在同一个房间里)。 这不必是超级官员,也不必花费很长时间,它可以将任务分配给某人,也可以是Slack频道中询问问题的消息,只是快速的沟通。 这确实促进了快速发展,并且取消了项目经理认为您需要的所有BS会议。 这解决了第五点,也是最后一点。

那么这里的消息是什么? 消息很简单,开发人员需要拥有一个软件项目的开发权。 他们需要负责异步创建任务,并以最小的指导协同工作和协调。 给您的开发人员一个最终目标,为他们提供所需的功能,并摆脱困境。