迎接重建遗留产品的挑战

通过马特绿4月15日,二千零一十九

在过去的18个月里,我们的团队一直致力于使用全新技术重建现有系统,方法学,以及一个新的开发团队。我的公司,Hindawi在2000年代中期开发了一个平台,允许学者在线同行评审学术论文。10年来,系统运行良好,帮助公司迅速成长为学术期刊的出版商。

随着时间的推移,平台变得越来越复杂,成为紧密耦合服务的迷宫。最近,我们开始努力跟上新技术的步伐。我们放弃了有吸引力的商机,因为我们很难融入或适应老龄化系统。

在评估了我们的选择之后,我们决定从头开始,开发一个新的平台。

虽然这是一项艰巨的任务,我们找到了几种方法来分解事情,让它更容易管理。我想克服一些挑战,我们是如何通过它们的…

挑战

1。起点

如此庞大复杂的系统,很难知道在哪里以及如何开始。

结果:MVP开发的一个传统模型描绘了滑板从自行车演变成汽车的过程。当你已经有车的时候,想办法把你的旧滑板拿出来可能很难。当用户习惯了汽车体验后,要求他们重新使用滑板也是一个挑战。

MVP必须简单,但它还必须为我们的用户捕获至少一个完整的端到端工作流,否则,它将无法替代现有系统。我们希望MVP能让我们的用户感觉到功能均等,即使它在引擎盖下要简单得多。

我们投入巨资定义MVP应该是什么。我们询问了用户和利益相关者,他们没有什么“更高级”的功能可以生存。我们去掉了所有的集成,提醒,或者可以手动处理的自动化。我们的出发点是系统核心工作流程所必需的任何东西,而其他东西则成为次要的。

学习:了解产品的核心。对于不同的“新”产品,MVP可能意味着不同的东西。一旦我们确定了发射所需的东西,发展的优先次序变得更加明确了。在定义产品的这个阶段时,预先投资是值得的。

2。长期与短期

为什么要花费时间和金钱来重建一个没有被破坏的东西?

结果:这是一场战略辩论,涉及整个企业的关键利益相关者。重建过程在短期内将是昂贵且具有破坏性的。但是为了实现我们的长期战略目标,我们需要一个灵活的系统来应对业务变化,现有系统无法执行的操作。

很幸运,我们很早就开始了重建过程,在我们面对现有平台的危机之前。这意味着我们可以在开发新产品的同时依赖现有产品。它给了我们时间来证明使用新技术可以建造什么,而不是必须证明立即回报。它允许我们推迟迁移和集成问题。它使我们能够测试和比较新系统,并验证我们正在寻求的改进。

学习:尽早启动项目。短期需求会影响决策,因此,在进入这个规模的项目之前,了解长期的业务目标是很重要的。为了实现我们的长期目标,我们必须做出一些短期的牺牲。我们竭尽全力确保每个人都明白原因。

三。重建还是购买?

我们可以选择采用商业现成的解决方案,以满足我们的大多数需求。

结果:开箱即用的解决方案,虽然足以满足我们自己的需要,并没有为我们提供适应新的业务机会,我们希望从这个系统。在控制了我们自己的发展路线图多年之后,我们觉得很难放弃拥有自己平台的灵活性。我们想控制自己的计划,不要依赖外部合作伙伴来满足我们的要求。作为一家企业,我们的目标之一是使我们的产品更加开源,这是商业产品无法提供的。我们也觉得在我们的案例中,我们自己的系统的全部拥有成本与商业平台的成本并无显著差异。

学习:你必须在这里做研究。考虑维护平台的所有成本,包括工资,发展,并主持。但也要考虑执行成本,支持,或者定制商业产品。考虑到发布周期较慢和产品路线图输入有限的业务成本。当我们评估我们的长期抱负时,并详细研究了其他解决方案提供的内容,很明显,重建我们的系统是正确的方法。

4。现有团队与新团队?

您的开发人员是否能够顺利地从传统产品过渡到新平台?

结果:我们后退了一步,从技术角度重新评估我们正在努力实现的目标。我们希望成为开放源码社区的一部分。一旦我们承诺了这一点,这使得我们在我们的空间中以势头寻找项目。我们必须权衡视力,质量,尺寸,以及社会的稳定与技术的选择。我们知道我们想要怎样处理事情,最终我们选择了最好的社区,而不是坚持我们的传统技术。因为我们在改变技术,唯一的前进道路是我们建立一个新的团队。

然而,这有意想不到的好处,我们同意,当前的产品团队将继续维护现有平台,而不更改其路线图。一个新的,外部产品团队将在新平台上开始开发,作为开源社区的一部分工作。

通过保持新团队的独立性,我们阻止他们简单地通过旧平台的一部分迁移到新产品。他们避免被遗留的设计决策困住。老团队能够坚持他们当前的发展路线图,从而最大限度地减少了对用户的短期干扰。它给了新团队实验和冒险的自由。

虽然我们知道这将是一个财政和行政方面的挑战,我们欣然接受了与一个有着新想法的团队合作的好处,而不是与现有的工作方式联系在一起。

学习:让团队并行工作。这种方法很昂贵,但风险较小,更灵活。这个过程最终在很多方面都令人耳目一新,让我们怀疑我们在做什么。我们发现了新的有效的工作方式,现在看来很明显。我们还认为,从行业外的角度来处理行业问题有助于确定我们可以重点关注的领域,以建立竞争优势。

5。利益相关者买入

当试图将整个业务从一个系统过渡到另一个系统时,你会受到很多监督的。

结果:十年后,我们对当前系统的问题有大量的了解,并且在过去的18个月里积累了大量的特性请求。这个积压工作是一个非常宝贵的资源,但也是一个挑战。我们知道团队对新系统将是解决所有生活问题的方法的想法充满信心。

我们通过仔细研究和与每个团队合作,帮助他们了解新开发的时间表和预期成果,来实现这一目标。我们非常小心,没有做出任何无法兑现的承诺,确保我们正在构建的内容考虑到了现有的积压工作。我们还与每个利益相关者小组合作,帮助他们从思考“如何修复旧系统”到“我如何从头开始正确地构建它”。

我们设立定期会议,确保主要利益相关者及时了解发展计划和时间表,以及获得优先顺序的输入。我们使用我们的通讯工具(Slack,在这种情况下)要共享线框,设计,以及直接与利益相关者在各个阶段提出的问题。这有助于我们确保我们的初始版本是每个人都能接受的。

学习:及早和经常沟通。这听起来很简单……但也很容易忘记!

今天,我们已经过了新系统首次发布的六个月,我们有一个有效的同行评审系统,我们正在扩展新系统的功能,以重新添加我们删除的复杂层。我们计划在年底前彻底更换旧系统。

这个项目之所以成功,是因为我们设定了现实的目标,我们过分注重初始工作系统的核心特性。这使我们能够验证新系统的好处,鼓励利益相关者的长期思考和耐心。我们现在面临的挑战是,确定旧系统中的功能是否足够有用,可以重新构建成新系统,或者我们是否应该以新的方式做事。挑战,就像系统一样,继续进化。

十二分享
化身

关于

马特绿

产品经理,在领先的技术公司有10年以上的工作经验。在印达维之前,他在比特费尔,在与门德利和爱思唯尔一起进入出版业之前。最近在印达维的挑战是采取一些已经存在的东西,工作精细,以对公司和行业未来挑战有意义的方式重建。除了产品,我喜欢跑步,滑雪场所,骑自行车的地方,看看地方。