定义一个项目不仅仅是讨论可交付成果的结果。对于项目经理来说,这个定义是关于学习如何平衡一系列相互关联的要素。在创建过程中,项目经理必须管理依赖关系和项目的关键链。项目经理还必须与各个利益相关者的个性和瀑布和敏捷开发方法之间的动态差异进行有效沟通。
进度、资源和范围
定义项目的一种方法是沿着三个相互关联的维度——进度、资源和范围来讨论工作。这些维度相互关联的性质被认为是项目的自然规律。违反平衡几乎等同于违抗地心引力。
进度维度是指完成可交付成果和结束项目所需的时间量。它是表示时间的维度。资源维度是计算项目实际成本的地方。最后一个维度是范围:定义项目是什么以及项目不是什么。创建烤面包机的项目涉及创建烤面包机。项目的范围说明将精确定义需要创建哪种类型的烤面包机。然而,自制烤面包机、普通烤面包机或 在吐司上打印天气的 Wi-Fi 烤面包机之间的开发存在很大差异。
范围蔓延是真实存在的。在任何给定时刻激发项目的条件往往会随着时间的推移而变化。这在软件开发中尤其如此,也是敏捷开发能够成为如此有效的开发方法的原因之一。用户并不总是从项目一开始就知道所有需求,而协作过程通常可以带来更好的解决方案。在大多数情况下,增加范围也会增加成本。
说明成本差异的一种方法是使用 Microsoft Windows。运行 Windows Server 的内核与 Windows 10 中运行的内核是相同的内核,但基于与该内核关联的服务,成本差异高达数百美元。服务器套件专为范围要求比桌面预期更广泛的项目而设计。在需要专门解决方案的项目中,沿途的自定义可能需要更多时间来创建,而更多的开发时间会增加项目的成本。
志愿者作为资源
在项目管理中,人们普遍认为这些维度之间的相互关系是所有维度的现实。但也有例外,值得注意。使用志愿者作为资源的项目可以在保持或增加项目范围的同时保持较低的成本,但他们可能需要花费更多时间来培训志愿者执行某些任务。当地的 5 公里赛跑就是一个很好的例子。如果活动的目的是为慈善事业筹集资金,那么饮水站的志愿者不仅使捐款更大,而且使捐款成为可能。
开源解决方案也出现类似的现象。与开源相关的自由使项目经理有机会在不直接增加项目成本的情况下增加项目范围。这是因为众所周知,开源解决方案允许插件和附加组件轻松增加软件的功能,而不会增加成本。这方面的两个很好的例子是 NextCloud 和 Firefox。
当 Firefox 在 2000 年代中期问世时,它的竞争对手是闭源供应商提供的“一刀切”浏览解决方案。该领域的自定义功能很少或根本不存在。相比之下,新兴的 Mozilla 允许通过插件和主题进行自定义。整个网站都致力于分享不同配置的屏幕截图。Mozilla 是一个出色的例子,它展示了一个开发团队构建了一个坚实的核心,其他人可以在不将维护义务转移到 Mozilla 的情况下对其进行自定义。由于这项努力,我们现在有了 Adblock 插件,它不仅有助于减少攻击我们眼球的广告数量,还有助于减少攻击我们机器的恶意广告。
今天,一些开源项目遵循相同的开发路线,重点是构建一个强大的核心,以便为插件做好准备。该领域的公司之一是 NextCloud。当 NextCloud 背后的开发团队 fork 了 OwnCloud 的堆栈时,他们将一些使用插件完成的代码纳入了主软件的保护伞之下,同时继续致力于现有和未来插件的兼容性。
NextCloud 是开源为项目经理提供的绝佳示例,部分原因在于其核心功能及其插件。该项目面向希望控制其数据的受众。在某些行业,控制数据不仅仅是一种选择,而是一种法律要求。一些更敏感的组织要求在部署代码之前对其进行审核。它的两个闭源竞争对手 SharePoint 和 Google Drive 在这方面功能非常强大,但在自定义方面存在限制,而这些限制不适用于其开源竞争对手。随着范围蔓延继续影响项目,使用闭源解决方案会导致项目成本继续快速上升。当它们所基于的代码对审查是封闭的时候,问题变得更难研究和解决。
细微的差异通常是公司与竞争对手的区别所在。使向解决方案轻松添加小细节(例如品牌)不仅仅是提供一些好的东西,它也是影响功能的要求。我一直对穿带徽标衬衫的人着迷。他们将自己的身体变成了广告牌,并且他们必须支付溢价才能成为别人的广告。同样,我发现令人震惊的是,公司会花费大量资金购买充斥着低效品牌的软件解决方案。一旦你开始注意到它,就很难忽视它。工作中的一个自定义应用程序每次我启动该应用程序时都喜欢告诉我承包商是谁。使用开源解决方案,项目的范围可能不会显着增长,但确实最容易增长的一个领域是让团队能够添加所有润色和细节,从而使解决方案为他们工作。
对于闭源解决方案,供应商的代表只是其销售人员。他们是代码的代言人,通常对具体细节和特定定制不太了解。虽然开源社区也有销售人员,但也有一个庞大的个人团队在支持该解决方案。在大多数情况下,当您选择使用开源时,您选择与该社区中的个人建立关系。这个社区中的许多人不仅擅长他们所做的事情,而且他们还是他们所做事情的优秀大使。Martin Wimpress 和 Ikey Doherty 经常参加活动,担任他们领导的项目团队的大使。Mark Shuttleworth 具有非常公开的形象。Jim Whitehurst 和 Linus Torvalds 已将他们的大使身份带入印刷书籍。
这个社区的响应速度有时可以超过其竞争对手的响应速度,从而在增加范围的同时缩短时间和成本。2016 年 5 月,奥地利一所学校的员工兼 Linux 爱好者 Thomas 想要使用 KDE Neon 作为其学生实验室的一部分。在实施过程中,他发现了一些几乎使他的项目停滞的事情。他联系了 KDE 开发团队,并在 30 分钟内得到了回复。通过电子邮件进行的快速对话继续进一步确认和澄清问题。在 14 天内,问题得到解决,在此开发过程中,Thomas 没有被蒙在鼓里。他能够在过程中跟踪解决方案的进展。
在项目管理环境中,管理利益相关者通常是一个与他们分享信息的过程。开放式开发使项目经理的这项工作变得更容易。
Thomas 的成本为 0 美元。他现在已将其解决方案从最初的 15 名学生扩展到 40 多名学生,而且这样做并没有显着增加时间和资源。此外,他提供的反馈使 KDE 的所有用户都可以使用更可靠的代码。我怀疑任何闭源竞争对手都能达到这些响应时间和成本。
开源对于技术项目来说,就像飞机对于违抗地心引力一样。虽然许多组织选择沿着熟悉的闭源路径开展项目,但当他们这样做时,他们会屈服于相互关系的规则,即随着任何一个维度的增加,项目会在所有维度上增长。在创新步伐异常激烈的行业中,开源蓬勃发展。对于希望为自己及其项目树立竞争力的项目经理来说,转向开源可以让他们违抗定义学科的规则,他们将超越同行。
1 条评论