扩大跨团队对本地移动应用的贡献
Flagship applications are home to myriad functionalities that serve different parts of your userbase. Often, adding a new feature unintentionally causes reduced velocity, single points of failure, and monoliths that are hard to navigate. Such flagship apps are built from contributions from multiple teams each with varying degrees of familiarity with the codebase.
旗舰应用程序是无数功能的家园,为你的用户群的不同部分服务。通常情况下,增加一个新的功能会无意中导致速度下降、单点故障和难以浏览的单体。这样的旗舰应用程序是由多个团队共同完成的,每个团队对代码库的熟悉程度各不相同。
Onboarding a new team to such a codebase is expensive and usually prohibited for reasons like:
让一个新的团队加入到这样的代码库中是很昂贵的,而且通常是被禁止的,原因如下。
- Onboarding costs — It simply takes too long to bring someone up to speed with the codebase such that they can contribute. The cost of training and mentoring someone to do so is often as high if not more significant than implementing the feature would have been. This investment does not make sense for someone who will develop one feature and then move back to their team.
- 上手成本- 要让一个人掌握代码库的速度,使其能够做出贡献,简直需要太长时间。培训和指导一个人这样做的成本往往和实现该功能的成本一样高,甚至更高。这种投资对于那些开发完一个功能就会回到自己团队的人来说是没有意义的。
- Maintenance cost — Who will maintain this feature once the temporary developer has returned to their original team?
- 维护成本--一旦临时开发者回到他们原来的团队,谁来维护这个功能?
- Quality — What risk does the new feature, developed by someone without a strong understanding of the architecture and codebase pose to the main application?
- 质量--由对架构和代码库没有深刻理解的人开发的新功能会对主应用程序造成什么风险?
We’ve seen this play out before with many enterprise apps, including the Salesforce Mobile app. But there’s a way to enable contributions from other teams while addressing the above challenges. This blog outlines the strategy we used within Salesforce to make it happen: an approach we call our “Plug-in Architecture.”
我们曾经在许多企业应用中看到过这种情况,包括Salesforce移动应用。但是有一种方法可以让其他团队做出贡献,同时解决上述挑战。本博客概述了我们在Salesforce内部用来实现这一目标的策略:我们称之为 "插件架构 "的方法。
Plug-in architecture
插件式结构
In a traditional plug-in architecture, third-party developers create plug-ins that are installed separately from the host application. These plug-i...