保持冷静并过渡到新的开发团队
已发表: 2022-03-11软件产品在其生命周期内从一个开发团队过渡到另一个开发团队是很常见的。 产品的不同阶段可能需要不同类型的开发团队:构建初始版本的顾问,维护它的独立自由开发者,扩大规模的内部团队,或添加一些“流行音乐”。
尽管这种情况经常发生,但许多非技术创始人和产品负责人发现自己在引入下一个团队时措手不及并且手忙脚乱。 这通常会导致新团队无法快速取得进展、浪费时间并让所有相关人员感到沮丧。
如果这听起来像是现在或将来可能是你,那么你应该有点担心。 幸运的是,我们将逐步介绍您可以采取的步骤,为这种可能性做准备,并使过渡尽可能顺利。
传递火炬:入职新的开发团队
在本文中,我将为您提供一份清单,这些清单将帮助您为此类更改做好准备。 您将在更亲密的层面上了解您的产品,并获得对制造产品的所有各种服务和技术的更多控制权,这将使您能够自信且相对轻松地加入新团队。
但是,如果您不更换整个团队怎么办? 你应该费心读这个吗?
即使之前的一些团队仍然留在船上,他们也可能没有顺利过渡所需的所有答案和信息。 尽管他们可以在将知识从旧团队转移到新团队的过程中提供连续性和帮助,但依靠现任团队成员并不能替代负责和促进转移的产品所有者。 此外,不负责可能会导致新老团队成员之间产生摩擦,或者给老团队成员带来不必要的任务,迫使他们浪费太多时间与新团队成员沟通和解决各种问题。
尽管如此,如果一些团队成员留在船上,他们可以成为您过渡工作中的宝贵资产。 与他们协商,让他们了解情况,并尝试利用他们的经验,而不会让他们被太多与过渡相关的任务淹没。 不要指望他们会做所有繁重的工作! 那是你的工作。
所以事不宜迟,让我们开始吧!
收集文档
自由开发人员经常被要求跳入他们以前从未见过的现有代码库。 对于 Toptal 软件工程师来说尤其如此。 我们的目标始终是尽快跟上进度,这样我们就可以开始对我们的客户产生积极的影响。
获得有关项目的清晰、详尽的文档可以显着加快入职流程,并帮助开发人员避免可能阻碍前进的陷阱。
好的文档至少需要涵盖以下主题:
- 设置开发环境- 任何新手的首要任务是让应用程序在他们自己的计算机上启动并运行。 这样做的过程因技术而异。 一般来说,它需要诸如获取源代码、设置数据库、安装依赖项、使用 API 密钥和凭据配置环境、导入示例数据等任务。 开发人员对他们各自领域内这个过程所涉及的一切都有很好的了解,并且应该能够相应地调整细节。
- 运行自动化测试套件- 看到应用程序的测试通过可确保一切都已正确设置,并且未来的更改不会破坏您现有的任何功能。
- 部署到登台和生产服务器- 使用最新更改更新实时应用程序是一个高度脚本化的过程,并且应该逐步概述这些操作的顺序,尽可能详细。
- 与新入职开发人员相关的任何其他信息- 每个应用程序都有自己的一组怪癖。 把这些写下来可以为未来的团队节省大量的精力来调试以前的团队已经想出如何处理的问题。
文档应该由具有设置应用程序和为代码库做出贡献的第一手经验的开发人员编写。
在任何过渡发生之前,请要求以前的开发团队通过创建涉及上述主题的资源来促进知识的转移!
如果写作不是他们的强项,请他们录制一个或多个截屏视频,演示开发环境的设置、部署等。如今,甚至有诸如 Vagrant 和 Docker 之类的工具可以将整个开发环境打包并分发给其他人。 从本质上讲,与其给别人指导如何制作锤子,不如给他们锤子本身。
一个项目文档的全面性和有效性的试金石是新开发人员可以多快地设置他或她的开发环境并运行您的应用程序。
了解您的产品
拥有出色的文档并不能成为您无需了解自己产品技术基础知识的借口。 作为软件产品的所有者,您有责任尽可能地了解您的应用程序,即使您不是很懂技术。
以下问题很常见,您应该无需查找即可知道答案:
- 您的应用程序使用什么技术堆栈? - 后端和前端有许多通用的应用程序框架,任何新的开发团队都应该熟悉您的应用程序使用的框架。 后端 Web 技术的一些示例包括 Ruby on Rails、Node.js 和 Django。 前端 Web 技术的一些示例是 React.js、Angular.js 和 Ember.js。
- 它在哪里托管? - 不同的网络主机有不同的部署过程,这需要不同程度的经验。 近年来,云技术创造了许多新的托管选项,您需要确定您正在使用哪个特定的选项,并描述为什么选择它而不是其他选项。
- 发展过程是怎样的? - 您的团队是否使用特定的源代码控制管理工具,例如 Git? 如果是这样,开发、测试、批准和部署新功能的过程是什么? 该过程必须标准化、正确记录并易于被新人复制。
- 您的应用程序使用哪些第三方服务? - 某些应用程序是基于 Shopify 等第三方服务构建的。 请记住,对第三方服务的依赖正在逐渐增加,即使您目前不使用任何额外的服务,您的项目也可能会在以后的某个时间决定使用第三方服务。
- 您的应用程序可以在哪些平台上运行? - 您的应用程序是桌面应用程序、Web 应用程序、响应式移动网站、原生 iOS 应用程序、原生 Android 应用程序还是其他什么? 它是否在几个不同的平台上运行? 在任何给定时间,哪个平台是您的首要任务? 你的产品在哪个平台上最强和最弱? 确保了解应用程序当前平台的所有详细信息,甚至可以将其扩展到哪些平台。
取得所有权
今天的软件开发过程使用了大量的第三方服务和工具。 无论您是否知道,您的应用程序也不例外。

在开发过程中,您以前的团队可能已经代表您注册,甚至使用他们自己的帐户来访问所需的服务。 过渡到新团队意味着您必须拥有所有权并控制您的应用程序所依赖的每一项服务和工具,以便您可以授予新团队访问权限,而无需通过中间人或追查原始开发人员。
以下是您的应用程序可能使用的各种外部工具或服务的列表:
- 源代码控制管理- GitHub、Bitbucket、Gitlab
- 虚拟主机- Heroku、EngineYard、Digital Ocean、Bluehost、亚马逊网络服务
- 文件托管- 亚马逊网络服务 (S3)
- DNS 提供商- GoDaddy、DNSimple、Hover
- 开发服务——NewRelic、FileStack、Segment、Bugsnag(以及无数其他)
- 支付服务- Stripe、Braintree、PayPal
- 博客服务- WordPress、Tumblr、Ghost
- 电子商务解决方案- Shopify、Squarespace
- 分析/跟踪- Google Analytics、Mixpanel、Kissmetrics
- 电子邮件营销: MailChimp,持续联系
询问你即将离任的开发团队哪些是适用的。 对于开发团队拥有的任何服务,请他们将所有权转让给您。 如果这不可能,请让他们帮助您创建自己的新帐户,并确保应用程序使用您的帐户而不是他们的帐户。 这应该只需要更改应用程序的一些配置设置。
不用说,确保每份开发合同从一开始就保护您的利益,并确保顺利过渡,无论如何。
授予访问权限
凭借对应用程序生态系统的深入了解以及对应用程序使用的所有各种工具和服务的所有权,您现在可以为即将到来的团队或个人提供完全访问权限。
大多数服务将允许您将协作者添加到您的帐户并授予他们特定级别的访问权限。 在这里保守一点也没关系。 许多创始人,尤其是独立企业家,更愿意让他们的开发人员完全管理员访问他们的服务,让他们处理一切。 这会产生负面影响,即让您置身于循环之外,正如我们所了解的那样,这会使您在未来更难过渡。
你应该给你的开发者完全的管理员权限吗? 这是你的电话,大多数人对这种方法没有问题。 但是,您始终需要提前计划并确保您的决定不会对新的开发团队产生负面影响。 在项目的早期阶段不这样做可能会在未来产生令人讨厌的后果。
管理移交
既然您已经覆盖了所有基础,您将需要管理从一个团队到下一个团队的交接。 以下是处理传入和传出团队的一些基本技巧。
传入团队
- 设定期望——新团队应该知道你最重要的目标是什么,这样他们才能专注于正确的方向。 管理自己对新团队可以立即完成的任务的期望同样重要。
- 经常签到——不要让新团队下沉或游泳。 您想经常检查以确保他们拥有所需的一切,并且不觉得他们需要自谋生路。 尝试在不进行微观管理的情况下做到这一点。 确保他们知道您会在他们需要时提供支持和帮助,但不要对他们施加不必要的压力。
- 要有耐心——开发人员需要时间来适应新的代码库。 要知道,在新团队能够赶上前一个团队的步伐之前,还需要一些学习时间。
即将离任的团队
- 收集所有未完成的代码- 确保将所有源代码签入主存储库,并且您知道已部署或尚未部署的内容的状态。 新团队需要确切知道从哪里开始工作。 我自己也经历过这样的情况,我接手了一个团队,该团队部署了代码而没有将其放入主存储库中。 这会导致错误、重复工作和令人头疼的问题,如果即将离任的团队将源代码保持在一致状态,这些问题很容易避免。
- 更新他们的访问级别- 如果您以良好的条件分道扬镳,您可能希望让他们访问您的代码和/或部署。 许多团队很乐意在过渡阶段提供帮助,直到新团队完全接管。 如果没有,请考虑降级或撤销访问权限,以防止与新团队发生任何意外问题或冲突。
- 感谢他们的工作- 过渡可能会很忙。 当您忙于与新团队打交道时,不要忘记感谢即将离任的团队为您的项目所做的贡献。
结论
生活中的任何转变都可能令人恐惧,会带来是否会成功的不确定性,对未知事物的恐惧等等。 过渡到新的开发团队没有什么不同,但您可以而且应该采取措施使其更容易。 在大多数情况下,它只需要一些长期规划。
对您的软件产品、开发过程以及进入该过程的所有内容有更深入的技术和非技术理解,这将有助于从一个团队到另一个团队的任何过渡尽可能无缝和轻松。
最重要的是,您的新团队将尊重并感谢您在比赛中的表现! 您可能会为他们节省时间和精力,这也意味着您会省钱。 此外,新团队越早意识到坚持高专业标准越好。 一旦他们接管项目,他们很有可能会继续实施这些做法,从而使下一次过渡也顺利进行。
因此,让我们回顾一下在您的软件产品所有权转让之前应注意的要点:
- 尽可能多地收集或创建有关您的应用程序、开发环境和部署过程的文档。
- 从内到外了解您的产品。
- 保持对应用程序的所有第三方服务和依赖项的控制,并拥有所有内容的用户名和密码。
- 准备好让您的新团队获得启动和运行所需的一切。
- 积极主动,不要把任何事情留给机会或即将离任的开发团队。