authors are vetted experts in their fields 和 write on topics in which they have demonstrated experience. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
卡洛斯·拉米雷斯三世
验证专家 在工程
15 的经验

Carlos是一位专攻Ruby on Rails框架的专业软件工程师. 他与美国科技公司合作多年.

分享

It is common for a software product to transition from one development team to another during its lifetime. Different stages of the product may c所有 for a different type of development team: a consultancy to build the initial 版本, 一个独奏 自由开发人员 为了维护它,我们需要一个内部团队来扩大它的规模,或者一个专业设计师来添加一些“流行”元素。.

尽管这种情况经常发生, many non-technical founders 和 product owners find themselves unprepared 和 scrambling when the time comes to bring on the next team. 这通常会导致新团队无法快速进步, 浪费时间, 每个人都感到沮丧.

如果这听起来像是你干的, 要么现在,要么将来, 那你应该有点担心了. 幸运的是, we are going to walk through the steps you can take to prepare for this eventuality 和 make the transition as smooth as possible.

传递火炬:新开发团队的培训

在本文中, 我将给你提供一份清单,上面的项目将帮助你为这样的变化做好准备. You will be getting to know your product on a more intimate level 和 gaining more control over 所有 the various services 和 technologies that go into making it, 什么能让你更自信、更轻松地加入一个新团队.

将火炬传递给新开发者? 确保新团队不会被烧死,你也不会浪费时间救火.

将火炬传递给新开发者? 确保新团队不会被炒.

但如果你不替换整个团队呢? 你应该阅读这篇文章吗?

即使之前的一些团队成员仍然留在船上,他们也可能没有 所有 顺利过渡所需的答案和信息. 虽然他们可以提供连续性和 援助 在将知识从老团队转移到新团队的过程中, relying on incumbent team members is no substitute for the product owner taking charge 和 facilitating the transfer. 除了, 未能负责可能会导致新老团队成员之间的摩擦, 或者让老团队成员承担不必要的任务, forcing them to waste too much time communicating with new team members 和 resolving various issues.

仍然, 如果有团队成员留在船上, 在你的转型过程中,他们是无价的财富. 与他们协商, keep them in the loop 和 try to leverage their experience without inundating them with too many transition-related tasks. 不要指望他们做什么 所有 繁重的工作! 那是你的工作.

闲话少说,让我们开始吧!

收集文档

Freelance developers are often asked to jump into an existing codebase that they’ve never seen before. 对于Toptal软件工程师来说尤其如此. Our goal is always to get up to speed as quickly as possible so we can start having a positive impact for our clients.

有办法清除, 关于项目的详细文档可以极大地加快入职过程, 并帮助开发人员避免可能阻碍前进的陷阱.

好的文档需要至少涵盖以下主题:

  • 搭建开发环境 -任何新人的第一个任务是让应用程序在自己的计算机上运行. 这一过程因技术而异. 在一般情况下, 它需要诸如获取源代码之类的任务, 设置数据库, 安装依赖关系, 使用API密钥和凭据配置环境, 导入示例数据, 等等....... 开发人员对他们各自领域中这个过程中涉及的所有内容都有一个很好的想法, 并且应该能够相应地调整细节.
  • 运行自动化测试套件 - Seeing an application’s tests pass ensures that everything has been set up properly 和 that future changes are not breaking any of your existing features.
  • 部署到登台服务器和生产服务器 -使用最新更改更新实时应用程序是一个高度脚本化的过程, 这些操作的顺序应该一步一步地列出, 尽可能详细.
  • 与新入职开发人员相关的任何其他信息 -每个应用程序都有自己的一套怪癖. Writing those down saves future teams a lot of wasted effort debugging issues that the previous team has already figured out how to deal with.

良好的文档是任何成功转换的基石. 确保你的新团队拥有接手工作所需的一切.

良好的文档是任何成功转换的基石. 确保你的新团队拥有他们需要的一切.

文档应该由具有以下经验的开发人员编写 亲身体验 设置应用程序并贡献代码库.

在任何转变发生之前, request that the previous development team facilitates the transfer of knowledge by creating a resource that touches on the topics above!

如果写作不是他们的强项, 要求他们录制一个或多个演示开发环境设置的屏幕视频, 部署, 等. 今天甚至有工具,如 流浪的码头工人 哪一个允许将整个开发环境打包并分发给其他人. 在本质上, 而不是告诉别人怎么做锤子, 把锤子本身给他们.

The litmus test for how comprehensive 和 effective a project’s documentation is is how quickly a new developer can get his or her development environment setup 和 running your application.

了解你的产品

Having great documentation does not excuse you from needing to know the basics of your own product’s technology. 作为软件产品的所有者, 尽你所能理解你的应用程序是你的责任, 即使你不是很懂技术.

没有技术背景? 没有理由不能正确理解项目的构建模块. 这会让你付出很大的代价.

没有技术背景? 没有理由不能正确理解项目的构建模块. 这会让你付出很大的代价.

以下问题很常见, 你不需要去查就能知道答案:

  • 您的应用程序使用什么技术栈? 有许多常见的应用程序框架 后端和前端,任何新的开发团队都应该熟悉您的应用程序使用的那些. 后端web技术的一些示例如下 Ruby on Rails, 节点.js, Django. 前端web技术的一些例子是 反应.js, 角.js, 灰烬.js.
  • 宿主在哪里?? —不同的web主机有不同的部署进程, 这需要不同程度的经验. 近年来, 云技术创造了许多新的托管选项, you’ll need to identify which particular one you are using 和 describe why it was chosen over the others.
  • 开发过程是怎样的? -您的团队是否使用特定的源代码控制管理工具,例如 Git? 如果有,开发、测试、批准和部署新特性的过程是什么? 这个过程必须标准化, 正确记录,而且很容易被新人复制.
  • 您的应用程序使用了哪些第三方服务? —部分应用建立在第三方服务上,如 Shopify. 请记住,对第三方服务的依赖正在逐渐增加, 即使你目前没有使用任何额外的服务, 您的项目以后可能会决定使用第三方服务.
  • 您的应用程序可以在哪些平台上运行? -你的应用是桌面应用吗, web应用程序, 响应式移动网站, 原生iOS应用, 原生Android应用程序, 或者其他任何东西? 它在几个不同的平台上运行吗? 在任何时候,哪个平台是你优先考虑的? 你的产品在哪个平台上最强和最弱? 确保了解应用程序当前平台的所有细节, 甚至它可以扩展成哪些.

获得所有权

今天的软件开发过程利用了大量的第三方服务和工具. 无论您是否知道,您的应用程序也不例外.

在发展过程中, 你以前的团队可能代表你报名了, 甚至用他们自己的账户来获得所需的服务. Transitioning to a new team means that you must take ownership 和 be in control of every single one of the services 和 tools that your application relies on so that you can grant access to your new team without needing to go through a middleman or chase down the original developers.

The following is a list of the various external tools or services that your application might make use of:

询问即将离职的开发团队哪些是适用的. 对于任何服务 拥有 通过开发团队,要求他们将所有权转让给您. 如果不可能的话, then ask them to help you create a new account of your own 和 ensure that the application uses your account instead of theirs. 这应该只需要更改应用程序的一些配置设置.

不用说, make sure that every development contract protects your interests from day one 和 assures a smooth transition, 无论如何.

授权访问

With a solid underst和ing of the ecosystem of your application 和 ownership over 所有 the various tools 和 services your application uses, 您现在可以为即将到来的团队或个人提供完全访问权限.

Most services will 所有ow you to add a collaborator to your account 和 grant them a particular level of access. 在这里保守一点没关系. 许多创业者, 尤其是个人创业者, prefer to give their developers full administrator access to their services 和 have them h和le everything. 这有一个负面的副作用,就是把你排除在圈子之外, 我们已经学过了, 会让未来的转型变得更加困难吗.

应该给开发人员完全的管理员权限吗? 这是你的决定,大多数人对这种方法没有问题. 然而, you always need to plan ahead 和 make sure your decision does not negatively affect a new development team. 如果在项目的早期阶段没有做到这一点,可能会在未来产生令人烦恼的后果.

管理交接

既然你已经万事俱备了, 你需要管理好从一个团队到下一个团队的交接. 这里有一些基本的技巧,可以帮助你应对新员工和即将离职的员工.

确保正确管理项目移交的技术和个人方面. 让你的新团队有宾至如归的感觉,不要与你的老团队对抗.

确保正确管理项目移交的技术和个人方面. 让你的新团队感到宾至如归.

传入的团队

  • 设定预期 - The new team should know what your most important goals are so they can focus in the right direction. 管理好自己对新团队能马上完成的任务的期望也同样重要.
  • 经常检查 -不要让新团队沉浮. 你要经常检查,以确保他们有他们需要的一切, 也不觉得他们需要自己照顾自己. 试着不要事无巨细地管理. 确保他们知道,如果他们需要,你会在那里支持和帮助他们, 但是不要给他们施加不必要的压力.
  • 要有耐心 -开发人员需要时间来适应新的代码库. Underst和 that there will be some learning time before the new team can match the pace of the previous one.

即将离任的团队

  • 收集所有未完成的代码 -确保所有源代码都签入主存储库, 你知道哪些已经部署,哪些还没有部署. 新团队需要确切地知道从哪里开始工作. I myself have experienced a situation where I took over for a team that had deployed code without putting it in the main repository. 这就导致了bug, 重复的工作, headaches that could have easily been avoided if the outgoing team left the source code in a consistent state.
  • 更新他们的访问级别 -如果你们友好分手的话, 您可能希望让他们访问您的代码和/或部署. 许多团队都乐于在过渡阶段提供帮助,直到新团队完全接管. 如果不是, consider downgrading or revoking access to prevent any accidental issues or conflicts with the new team.
  • 感谢他们的工作 -过渡可能会很紧张. 在你忙着应付新团队的时候, 不要忘记感谢即将离任的团队对项目的贡献.

结论

生活中的任何转变都是可怕的, 带来的不确定性是否会成功, 对未知的恐惧, 等等....... 过渡到一个新的开发团队也是一样, 但是你可以而且应该采取措施让它变得更容易. 在大多数情况下,它只需要一点长期的计划.

对软件产品有更深入的技术和非技术理解, 开发过程, 所有 the things that went into the process will help make any transition from one team to the next as seamless 和 painless as possible.

最重要的是,你的新团队会尊重并感谢你的出色表现! 你可能会节省他们的时间和精力,这也意味着你会省钱. 此外,新团队越早意识到坚持高专业水准越好. 一旦他们接管了项目,他们很可能会继续执行这些实践, 确保下一个过渡顺利进行.

So let’s review the key points that should precede any transfer of ownership of your software product:

  • 收集或创建尽可能多的关于应用程序的文档, 开发环境, 以及部署过程.
  • 彻底了解你的产品.
  • 保持对…的控制 所有 应用程序的第三方服务和依赖项, 还有所有东西的用户名和密码.
  • 准备好让你的新团队接触到他们需要的一切,让他们开始运作.
  • 要积极主动,不要把任何事情留给机会,或者留给即将离职的开发团队.
聘请Toptal这方面的专家.
现在雇佣
卡洛斯·拉米雷斯三世

卡洛斯·拉米雷斯三世

验证专家 在工程
15 的经验

圣拉斐尔,加州,美国

2014年12月6日成为会员

作者简介

Carlos是一位专攻Ruby on Rails框架的专业软件工程师. 他与美国科技公司合作多年.

authors are vetted experts in their fields 和 write on topics in which they have demonstrated experience. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.

世界级的文章,每周发一次.

输入您的电子邮件,即表示您同意我们的 隐私政策.

世界级的文章,每周发一次.

输入您的电子邮件,即表示您同意我们的 隐私政策.

Toptal开发者

加入总冠军® 社区.