作者是各自领域的专家,并就其所展示经验的主题撰写文章. 我们所有的内容都由同一领域的顶级专家同行评审和验证.
Carlos Ramirez III's profile image

Carlos Ramirez III

Carlos是一名专门研究Ruby on Rails框架的专业软件工程师. He has worked with US tech companies for years.

Years of Experience

15

Share

软件产品在其生命周期中从一个开发团队过渡到另一个开发团队是很常见的. 产品的不同阶段可能需要不同的开发团队:构建初始版本的咨询, un desarrollador independiente para mantenerla, un equipo interno para llevarlo a escala, 或者专业的设计师让它在视觉上引人注目.

A pesar de que esto ocurre con frecuencia, 许多非技术创始人和产品所有者还没有准备好,在引进下一个团队时苦苦挣扎. 这通常会导致新团队无法快速前进, una pérdida de tiempo, 以及包括所有成员在内的挫败感.

Si esto suena como que podrías ser tú, ya sea ahora o en el futuro, entonces deberías estar algo preocupado. Por suerte, 我将指导你遵循的步骤,为这种可能性做好准备,并使过渡尽可能简单.

传递火炬:接近一个新的开发团队

En este artículo, 我会给你一份清单,帮助你为这种变化做好准备. 你将开始在一个更亲密的层面上了解你的产品,你将获得更多的控制各种服务和技术所涉及的, 这将帮助你以相对平静和自信的态度接近一个新的团队.

Passing the torch to new developers? 确保新团队不会被烧毁,你不会浪费时间进行消防.

当将火炬传递给新开发人员时,确保新团队不会被烧毁.

¿Pero si no estás reemplazando todo el equipo? ¿Deberías tomarte el tiempo de leer esto?

即使之前的一些团队成员仍在船上, 他们可能没有顺利过渡所需的所有答案和信息. 虽然它们可以在知识从旧设备转移到新设备的过程中提供连续性和帮助, 对所有权团队成员的依赖并不能取代产品所有者接管并促进转让的事实. Además, 不能接管可能会导致新老团队成员之间的摩擦, o让前团队成员承担不必要的任务, 迫使他们浪费太多时间与新团队成员沟通和解决不同的问题.

Sin embargo, si algunos miembros del equipo se quedan a bordo, 对你的过渡努力有很大的价值. Consulta con ellos, 让他们了解情况,试着从他们的经验中获益,而不是用太多的过渡任务淹没他们. 不要指望他们做所有繁重的工作! Ese es tu trabajo.

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

Reunir Documentación

独立开发人员经常被要求跳转到他们以前从未见过的现有代码库. 对于Toptal的软件工程师来说尤其如此. 我们的目标总是尽快开始,这样我们就可以开始对我们的客户产生积极的影响.

获得清晰和完整的项目文档可以极大地加快入职过程, 并帮助开发人员避免可能阻碍进展的错误.

一份好的文档至少应该涵盖以下主题:

  • Creación de un entorno de desarrollo -任何新员工的第一个任务是安装应用程序并在自己的电脑上运行. 这样做的过程因技术而异. En general, 需要获取源代码等任务, la creación de la base de datos, la instalación de dependencias, 使用API键和凭据配置环境, la importación de datos de muestra, y así sucesivamente. 开发人员对各自领域内与此过程相关的一切都有很好的了解, 他们应该有能力相应地调整细节.
  • Ejecutar el conjunto de pruebas automatizadas -通过一个应用程序的测试,我们确保一切都配置正确,即将到来的更改不会破坏任何当前的功能.
  • 在测试和生产服务器上部署 -用新的变化更新实时应用程序是一个高度结构化的过程, 这些操作的顺序应该尽可能详细地一步一步地概述.
  • 任何其他与新开发人员相关的信息 -每个应用程序都有自己的一套特性. Al escribir estas peculiaridades, se le ahorra a futuros equipos, 不必要的调试问题的努力,以前的团队已经知道如何解决.

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

良好的文档是任何成功转换的基石. 确保你的新设备有它需要的一切.

文档应该由具有应用程序配置和代码库贡献的第一手经验的开发人员编写.

¡Antes de que ocurra cualquier transición, 要求以前的开发团队通过创建与以前主题相关的资源来促进知识转移!

Si la escritura no es el punto fuerte del equipo, 要求他们记录一个或多个显示开发环境配置的屏幕截图, despliegue, etc. Hoy en día incluso hay herramientas como Vagrant y Docker 允许打包完整的开发环境并分发给其他人. En esencia, 而不是给别人如何制作锤子的指导, entregales el martillo.

了解项目文档的可理解性和有效性的关键测试, 新开发人员理解其开发环境和应用程序执行的配置的速度.

Entiende tu Producto

拥有大量的文档并不能免除您了解自己产品的技术基础知识的需要. Como propietario de un producto de software, 你有责任尽可能地理解你的申请, 即使你没有很多技术知识.

No technical background? 没有理由不能正确理解您的项目的构建块. It could cost you dearly.

¿Sin antecedentes técnicos? 没有理由不正确理解项目的基本组件. Te puede costar muy caro.
  • 您的应用程序使用了哪些技术元素? - Hay muchos marcos de aplicación común para el back-end y el front-end,任何新的开发团队都应该熟悉使用您的应用程序的团队. 后端web技术的一些例子是 Ruby on Rails, Node.js, y [Django](http://en.wikipedia.org/wiki/Django_(web_framework). 一些前端web技术的例子是 React.js, Angular.js, y Ember.js.
  • ¿Dónde se encuentra alojado? —不同的web服务器有不同的实现流程, que requieren diversos niveles de experiencia. En los últimos años, 云技术创造了许多新的网络托管选项, y tendrás que identificar cuál de estos, en concreto, 你在使用和描述为什么你选择它而不是其他人.
  • ¿Cuál es el proceso de desarrollo? -你的团队是否使用特定的源控制管理工具,如[Git](http://en).wikipedia.org/wiki/Git_(software)? Si es así, 开发新功能的过程是什么?, probado, aprobado, e implementado? El proceso debe ser normalizado, debidamente documentado y fácil de reproducir por los nuevos integrantes.
  • ¿Qué servicios de terceros utiliza tu aplicación? -部分应用程序依赖第三方服务,如 Shopify. Por favor, 请注意,对第三方服务的依赖正在逐渐增加, 即使你目前没有使用任何额外的服务, 您的项目以后可能会决定使用第三方服务.
  • 您的应用程序可以在哪些平台上运行? - ¿Tu aplicación es una aplicación de escritorio, aplicación web, sitios web responsive para teléfonos móviles, una aplicación nativa de iOS, aplicación nativa de Android, o alguna otra? ¿Se ejecuta en varias plataformas diferentes? 在任何给定的时间,哪个平台是你的优先级? 你的产品在哪个平台上最强或最弱? 确保你知道应用程序当前平台的所有细节, e incluso a cuáles se puede ampliar.

Toma Posesión

今天的软件开发过程使用了大量的第三方服务和工具. 不管你知不知道,你的应用程序也不例外.

Durante el trascurso de desarrollo, 您以前的团队可能已经注册或订阅了您的名字, 甚至使用自己的账户访问所需的服务. 过渡到一个新的团队意味着您必须拥有并控制应用程序所基于的每个服务和工具, 这样你就可以访问你的新设备了, 不需要通过中介或追逐原始开发者.

下面的列表显示了应用程序可以利用的不同外部工具或服务:

询问你的外发开发团队哪些是适用的. 对于开发团队拥有的任何服务, pídeles que te transfieran la propiedad. Si eso no es posible, 然后请求他们帮助创建一个新账户,并确保应用程序使用的是你的账户而不是他们的账户. 这只需要更改应用程序的一些配置设置。. 不用说,您必须确保每个开发合同从第一天起就保护您的利益,并确保顺利过渡, sin importar la situación.

Autoriza el Acceso

对应用程序的生态系统及其使用的各种工具和服务的所有权有扎实的理解, 现在您可以完全访问即将到来的团队或成员.

大多数服务将允许您添加一个合作者到您的帐户,并给予他们一定的访问级别. 在这种情况下保守是可以的,很多创始人, especialmente los empresarios individuales, 他们更喜欢让开发人员对他们的服务进行管理员访问,并让他们处理一切. 这有一个副作用,让你远离电路, que como hemos aprendido, 可能会使未来的过渡更加困难.

你应该给开发人员完全的管理员权限吗? 这是你的决定,大多数人似乎不介意使用这种方法. Sin embargo, 你应该始终为未来做计划,确保你的决定不会对新的开发团队产生负面影响. 在项目的早期阶段不这样做可能会在未来产生令人不安的后果.

Gestionando el traspaso

现在你已经涵盖了所有的基础知识,你需要管理从一个团队到另一个团队的转移. 这里有一些基本的技巧来应对即将到来的球队和即将到来的球队.

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

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

Equipo Entrante

  • Establece expectativas -新团队应该知道你最重要的目标是什么,这样他们才能专注于正确的方向. 同样重要的是,管理你自己对新团队能够立即完成什么的期望.

  • Realiza visitas de control a menudo - No dejes al nuevo equipo a su suerte. 你应该经常进行检查,以确保他们有他们需要的一切, 他们不觉得他们必须照顾自己. 试着在不做微观管理的情况下做到这一点. 确保他们知道,如果他们需要,你会支持和帮助他们, pero no pongas presión innecesaria sobre ellos.

  • Sé paciente -开发人员需要时间来适应新的代码库. 要明白,在新设备赶上旧设备的速度之前,还需要一段时间的学习.

Equipo Saliente

  • Recolecta todo el código en circulación -确保所有源代码都已注册到主存储库中, 你知道什么已经部署,什么没有部署的状态. 新团队需要确切地知道在哪里恢复和开始工作. 我自己也经历过这样一种情况:我跟随一个团队的工作,该团队部署了代码,但没有将其放入主存储库. Esto llevó a que se crearan bugs, 重复的工作和头痛是很容易避免的,如果离开的团队让源代码保持一致的状态.

  • Actualiza el nivel de acceso - Si se separaron en buenos términos, 您可能希望通过访问代码和/或部署来维护它们. 许多团队愿意在过渡阶段提供帮助, 直到新团队能够完全接管. Si no, 考虑更改或撤销访问权限,以避免与新设备发生意外问题或冲突.

  • Dales las gracias por su trabajo - Las transiciones pueden ser agitadas. Mientras estás ocupado con el nuevo equipo, 不要忘记感谢你即将离任的团队对项目的贡献.

Conclusión

Cualquier transición en la vida puede dar miedo, 这就带来了它是否会起作用的不确定性, el miedo a lo desconocido, y así sucesivamente. 过渡到一个新的开发团队也不例外, 但你可以也应该采取措施让事情变得更容易. 在大多数情况下,只需要一点长期规划.

对软件产品有更多的技术和非技术知识, el proceso de desarrollo, 所有进入这个过程的东西都将有助于从一个团队过渡到另一个团队, sea tan tranquila y sin dolor como sea posible.

最棒的是:你的新团队会尊重你,感谢你的准备! 这可能会节省他们的时间和精力,这也意味着你将节省金钱. Además, 新团队越早意识到对高专业水平的坚持, mejor. 一旦他们控制了项目,他们很可能会继续实施这些实践, 所以下一个过渡也会很顺利.

因此,让我们回顾一下在任何软件产品所有权转移之前应该发生的关键点:

  • 收集或创建尽可能多的关于应用程序的文档, 开发环境和部署过程.
  • Conocer tu producto dentro y por fuera.
  • 保持对应用程序的所有第三方服务和依赖关系的控制, 并拥有所有东西的用户名和密码.
  • 准备好让你的新团队获得启动所需的一切.
  • 要积极主动,不要让任何事情碰运气,也不要让开发团队退出.
Hire a Toptal expert on this topic.
Hire Now
Carlos Ramirez III's profile image
Carlos Ramirez III

Located in San Rafael, CA, United States

Member since December 6, 2014

About the author

Carlos是一名专门研究Ruby on Rails框架的专业软件工程师. He has worked with US tech companies for years.

Toptal作者是各自领域的专家,并就其所展示经验的主题撰写文章. 我们所有的内容都由同一领域的顶级专家同行评审和验证.

Years of Experience

15

World-class articles, delivered weekly.

Subscription implies consent to our privacy policy

World-class articles, delivered weekly.

Subscription implies consent to our privacy policy

Toptal Developers

Join the Toptal® community.