每个人都在做项目管理。只是有些人做得不好。
我曾在演讲开场时用这句话来引人发笑,但这是真的。项目管理的核心是协调团队之间的接口,以产生有价值的东西。在开源项目中,“有价值的东西”通常是社区产生的软件。大多数开源社区都在创建软件,但几乎没有社区有正式的项目经理。那么,为什么要设立项目经理呢?
区别在于有意识地管理软件开发,而不是偶然地管理。社区越小,就越容易进行自我协调。随着社区的壮大或软件变得更加复杂,对有意识协调的需求也会增加。
在《人月神话》中,Fred Brooks 指出,沟通渠道的数量增长速度远快于项目参与人数的增长速度。项目经理可以通过充当信息中心渠道来帮助简化沟通开销。通过潜伏在邮件列表和聊天频道中,项目经理可以了解项目正在发生的事情,并将其广泛地传达给社区和公众。这样,任何需要了解高层细节的人都可以查看项目经理的摘要,而不是自己关注每个渠道。
一位好的项目经理也充当流程开发和改进的指南。将流程视为 trails(小径)。它们随着时间的推移有机地发展,因为人们找到了从一个地方到另一个地方的最佳路线。一条磨损良好的小径可以实现更快、更可预测的行程。但是,如果每个人都有自己的路线变体,那么这条小径就不会被磨损好。项目经理的工作不是开辟一条小径并说:“这是每个人都必须走的路!” 相反,项目经理会寻找个人路径相似的地方,并帮助社区找到可以共享的最佳路径。因此,项目经理不会说:“这是我们必须遵循的流程来开发我们的软件。” 这在开源项目中行不通。相反,项目经理会根据社区已经在做的事情,帮助定义一个可重复且可预测的流程。
许多活动都与项目管理相关,即使它们主要由社区中的其他职能部门处理。示例包括进度安排、功能规划、缺陷分类、发布决策等等。由于技能范围如此广泛,您可能很难找到一个人能够精通所有这些技能。即使您找到了这样的人,他们可能也没有足够的时间来完成所有事情。只要每个人都清楚地了解自己的责任,将工作分配给多个贡献者是可以的。
最终,项目经理的工作是帮助社区避免意外。他们通过跨团队沟通状态,并确保每个人都知道生产下一个出色的版本需要什么以及何时需要。实际上,您已经在做这件事了,所以不妨有意识地去做。
本文基于作者的书籍, Program Management for Open Source Projects。
评论已关闭。