¿Estás atrapado con algunos malos desarrolladores?
Intentar deshacerse de los malos desarrolladores durante un proyecto puede ser una pesadilla.
Imagina la escena…
Usted es un empresario o un gerente de proyecto sénior en una empresa empresarial. Tiene un equipo de desarrollo de software competente, sin embargo, necesita más desarrolladores para un nuevo proyecto.
Después de escanear el mercado, contrata a algunos autónomos o desarrolladores de una empresa de desarrollo de software. Entonces comienza tu pesadilla.
Se desempeñan de manera subóptima, lo que afecta el proyecto al causar sobrecostos y sobrecostos. Al llegar a su punto de ruptura, decide que ya es suficiente y decide deshacerse de ellos.
¿Reconoces la historia? Bueno, si lo haces entonces no eres el único.
Este es un problema diario en la industria del desarrollo de software. Puede leer más sobre esto en mi artículo «10 mayores desafíos al desarrollar una aplicación».
DevTeam.Space se hizo cargo recientemente del desarrollo del proyecto para Adventure Aide, una aplicación de turismo y recreación. Varios desarrolladores independientes habían estado trabajando en este proyecto desde 2014, sin embargo, el proyecto se estancó y fracasó. Nuestro equipo de desarrollo DevTeam.Space se hizo cargo del proyecto.
Refactorizamos y reconstruimos la arquitectura de la aplicación tanto para el sitio móvil como para el backend (lea más sobre esto en «Adventure Aide»).
Nuestro trabajo en este proyecto nos motivó a escribir esta guía para ayudar a otras empresas a deshacerse de los malos desarrolladores durante un proyecto.
Si usted es una de esas empresas, siga leyendo, ya que ahora le explicaremos los pasos que debe seguir para asegurarse de que su proyecto vuelva al camino del éxito.
1. Encontrar desarrolladores competentes para reemplazar a los de bajo rendimiento
Primero debe encontrar desarrolladores competentes para poder reemplazar a los ineficaces con los que se ha quedado atrapado. El tipo de desarrollador de software que está buscando debe poseer las siguientes habilidades y competencias:
- Deben demostrar constantemente una alta ética profesional.
- Dado que no puede guiarlos a través de cada paso de un proyecto de desarrollo de software, necesita desarrolladores con capacidad de toma de decisiones.
- Si bien los desarrolladores no necesitan ser expertos en informática, sí necesitan tener conceptos sólidos de los fundamentos de la informática.
- Necesita desarrolladores que dominen los lenguajes de programación populares; sin embargo, los requisitos de su proyecto determinarán la elección del lenguaje. Por ejemplo, necesita programadores de Node.js para el desarrollo web, desarrolladores de Kotlin/Java para el desarrollo nativo de Android, programadores de Swift para el desarrollo nativo de iOS, etc. Habilidades de desarrollo de Ethereum o Hyperledger Fabric en un proyecto de blockchain.
- Los desarrolladores competentes deben conocer bien los modelos SDLC populares como Agile y Waterfall. He explicado la importancia de esto en nuestra guía “Cómo encontrar un buen desarrollador de software”.
- Necesita desarrolladores que sepan cómo mitigar los principales riesgos de seguridad de las aplicaciones.
- Los buenos desarrolladores de software deben tener suficiente conocimiento de los patrones de arquitectura populares, como el patrón de microservicios.
- La escalabilidad de su aplicación es importante, por lo tanto, debe contratar programadores que sepan cómo codificar aplicaciones escalables.
- Los programadores que contrate deben estar lo suficientemente familiarizados con las plataformas de servicios en la nube administrados, por ejemplo, plataformas de plataforma como servicio (PaaS), plataformas de backend móvil como servicio (MBaaS) y Blockchain-as-a-Service ( plataformas BaaS).
- Necesita desarrolladores con buenos conocimientos de herramientas y marcos de desarrollo.
- El conocimiento de la industria suele ser importante, especialmente en industrias fuertemente reguladas como la atención médica. Debe buscar ese conocimiento en los desarrolladores que contrate.
- Necesita programadores que puedan trabajar de manera coherente con su equipo más grande, por lo tanto, la capacidad de colaborar es importante.
No es fácil encontrar tales desarrolladores, sin embargo, nosotros en DevTeam.Space tenemos la experiencia para ayudarlo con esto. Lea nuestra guía «7 consejos esenciales para contratar a los mejores desarrolladores para su proyecto» para obtener más información.
2. Invocando la cláusula de “salida” en el contrato con los promotores ineficaces
Después de identificar nuevos desarrolladores, es hora de invocar la cláusula de «salida» en el contrato con respecto a los programadores de bajo rendimiento. Su contrato con ellos variará dependiendo de si contrató a trabajadores independientes o desarrolladores de una empresa de desarrollo de software.
Sin embargo, debe asegurarse de lo siguiente cuando invoque la cláusula de «salida»:
- Los desarrolladores salientes deben documentar su trabajo.
- Deben proporcionar suficiente información sobre las herramientas de código abierto que estaban utilizando.
- Necesita que los desarrolladores salientes proporcionen los detalles relevantes sobre los repositorios de código fuente.
- También deben asignar tiempo suficiente para la transición a los nuevos desarrolladores.
Puedes leer más sobre esto en “Entonces, ¿necesita salir de su proveedor actual?”.
3. Tome el control de cualquier herramienta de código abierto utilizada por los desarrolladores anteriores
Las herramientas de código abierto son muy populares, por lo tanto, a muchos desarrolladores les encanta usarlas. Los proyectos de desarrollo de software se han beneficiado significativamente del software de código abierto, sobre el que puede leer en “Creando mejor tecnología con código abierto”.
Los programadores suelen utilizar sus herramientas y marcos de código abierto favoritos en los proyectos en los que trabajan. Es posible que tenga una situación en la que sus desarrolladores anteriores hayan utilizado dichas herramientas en su proyecto.
Esto requiere una consideración cuidadosa de su parte, y debe tener discusiones detalladas con los desarrolladores anteriores sobre esto. Tenga en cuenta todas las herramientas de código abierto que hayan aportado a su proyecto.
Podría haber requisitos de licencia complejos dependiendo de cómo use una herramienta de código abierto. Estas complejidades podrían ser mayores con respecto a un producto de nivel empresarial.
Debe tomar todas las medidas apropiadas para no enfrentar desafíos legales con su proyecto. Leer «Explicación de las licencias de software de código abierto” para aprender más sobre esto.
4. Transición en el código fuente
Sus nuevos desarrolladores deben tener claridad sobre el código fuente, por lo tanto, ahora necesita hacer la transición en el código fuente de los desarrolladores salientes. Debe involucrar a los nuevos desarrolladores en este proceso tanto como pueda.
Asegúrese de anotar los repositorios de código fuente, las últimas versiones, el historial de cambios, etc. para que los nuevos desarrolladores no necesiten depender de los desarrolladores salientes más adelante. Lea más sobre esto en “Una guía para cambiar de equipo de desarrollo en medio de un proyecto”.
5. Asegure la documentación suficiente para que los nuevos desarrolladores comiencen
A medida que realiza la transición del trabajo de los desarrolladores de bajo rendimiento a los nuevos desarrolladores, debe asegurarse de que los nuevos desarrolladores tengan acceso a la documentación suficiente. Tiene dos aspectos, que son los siguientes:
- La documentación debería ayudar a los nuevos desarrolladores a comprender el proyecto, y usted debería poder ayudar aquí. Su PM o arquitecto de TI ya debe tener documentación que cubra los requisitos, la arquitectura, el diseño, el plan de prueba, los casos de prueba, etc.
- Ahora, también necesita documentación sobre el trabajo específico que realizaron los desarrolladores de bajo rendimiento. Esta documentación debe cubrir los módulos que codificaron, los planes de prueba de la unidad, los errores detectados, etc.
Ahora, es probable que los desarrolladores de bajo rendimiento no documentaran su trabajo lo suficiente. En tales casos, debe trabajar con ellos para crear la documentación necesaria.
Le recomiendo que involucre a los nuevos desarrolladores en este paso de documentación. Los desarrolladores de DevTeam.Space documentan constantemente su trabajo y garantizamos una documentación de alta calidad. Lea «Documentación de software: 6 mejores prácticas que funcionan» para juzgar nuestras capacidades de documentación.
6. Evaluar el impacto de los desempeños inferiores a la media
Si bien ha visto los impactos adversos en el proyecto causados por el desempeño inferior a la media de los trabajadores independientes originales, haría bien en realizar una evaluación detallada. Debe incluir a los nuevos desarrolladores en este ejercicio, además, debe cubrir los siguientes aspectos:
- ¿Los desarrolladores anteriores codificaron de acuerdo con los requisitos y el diseño técnico?
- ¿Están los módulos codificados por ellos alineados con el patrón arquitectónico elegido en este proyecto, o están desalineados?
- ¿Los desarrolladores de bajo rendimiento mitigaron los riesgos clave de seguridad de las aplicaciones?
- ¿El código escrito por los desarrolladores anteriores presenta nuevos riesgos de seguridad?
- ¿Cuál fue el resultado de las sesiones formales de revisión, por ejemplo, cuáles fueron los defectos identificados por los revisores del código?
- ¿Usaron los desarrolladores anteriores los marcos y las pautas de codificación correctos?
- ¿Qué problemas identificaron sus evaluadores con el código escrito por los desarrolladores anteriores? Además, ¿cuál es el estado de estos problemas?
Esta evaluación puede ser compleja, sin embargo, nosotros, en DevTeam.Space, tenemos la experiencia adecuada para esto. Puede juzgar nuestra experiencia en «Cómo cambiar su empresa de desarrollo de software a mitad de proyecto».
7. Transición de los subproyectos relevantes a los nuevos desarrolladores
Acaba de evaluar el impacto de los desarrolladores por debajo de la media en su proyecto y, con esto, tiene suficiente información para hacer la transición de los subproyectos afectados a los nuevos desarrolladores. Este ejercicio implica lo siguiente:
- Debe proporcionar todos los documentos relevantes a los nuevos desarrolladores.
- La información sobre los repositorios de código fuente, las versiones y los cambios es importante para los nuevos desarrolladores, por lo tanto, debe brindárselos.
- Proporcióneles todos los informes de revisión, informes de errores y el estado de los elementos de acción relacionados con los módulos/subproyectos afectados.
- Tenga la discusión necesaria con los nuevos desarrolladores y asegúrese de que tengan todo lo que necesitan para hacer un buen trabajo.
- Los nuevos desarrolladores necesitarán la información de autenticación para usar sus herramientas/entornos de desarrollo, y usted debe proporcionárselos.
Puede obtener más información sobre esta transición en “Mejores prácticas: transición de proveedor a proveedor de servicios de TI”.
8. Integra a los nuevos desarrolladores en tu equipo
Supongo que ha contratado nuevos desarrolladores altamente competentes para reemplazar a los desarrolladores de bajo rendimiento. Todavía necesita hacer que los nuevos desarrolladores sean productivos, y la mejor manera de hacerlo es integrarlos en su equipo.
Debería considerar usar la técnica «Scrum» para administrar sus proyectos ágiles, ya que Scrum funciona bien para dichos proyectos. Con esta técnica, puede crear equipos de alto rendimiento que se centren en ofrecer valor comercial a través de la colaboración.
Los «equipos Scrum» son equipos multifuncionales donde los desarrolladores y evaluadores trabajan juntos. Un “Scrum master” lidera un equipo de scrum. Dado que los equipos Scrum no funcionan en silos, facilitan la colaboración, como expliqué en «¿Cómo crear un equipo de desarrollo Scrum?». Los desarrolladores de DevTeam.Space están muy familiarizados con scrum.
Los equipos de Scrum trabajan en base a los requisitos que les da un «Propietario del producto». Dichos equipos están empoderados y planifican «Sprints», es decir, iteraciones en «reuniones de planificación de Sprint».
Los equipos de Scrum usan procesos y documentación, sin embargo, su enfoque está en brindar valor comercial a los clientes. Por lo tanto, no crean documentación innecesaria, sino que hacen hincapié en trabajar juntos para ofrecer un valor incremental.
9. Facilitar la colaboración entre los nuevos desarrolladores, evaluadores e ingenieros de DevOps
Dado que ya estaba ejecutando un proyecto y solo necesitaba reemplazar a uno o más desarrolladores de bajo rendimiento, asumo que ya tiene procesos sólidos de prueba y DevOps.
Bueno, incluso los mejores procesos funcionarán solo cuando las personas los usen de manera inteligente. Cuando contrata nuevos desarrolladores, debe permitirles colaborar con sus equipos de pruebas y DevOps.
Probablemente haya trabajado duro para establecer un entorno de «Integración continua» (CI)/»Entrega continua» (CD). La colaboración entre el experto en scrum, los desarrolladores, los evaluadores y los ingenieros de DevOps es la clave para establecer un entorno de CI/CD sólido.
Lea más sobre esto en “5 errores comunes de CI/CD y cómo evitarlos”. Si sus nuevos desarrolladores no colaboran, le resultará difícil mantener un entorno de CI/CD eficaz.
En DevTeam.Space, contamos con desarrolladores que demuestran un alto grado de habilidades técnicas, así como la competencia para colaborar. Solo necesita permitirles colaborar integrándolos en su equipo.
10. Asegúrese de que el proceso de revisión del código cubra el trabajo de los nuevos desarrolladores
Suponiendo que haya incorporado desarrolladores de alta calidad para reemplazar a los de bajo rendimiento, puede esperar obtener un código de calidad. Sin embargo, debe asegurarse de que sus revisores de código revisen su código a fondo. Esto tiene muchos beneficios, por ejemplo:
- Identifica errores antes y logra coherencia en la entrega de su proyecto.
- Espere menos errores de codificación con el tiempo cuando revise el código constantemente; además, puede esperar que el código en su proyecto mitigue de manera proactiva los riesgos de seguridad de la aplicación.
- Dado que las revisiones de código muestran errores al principio del ciclo, puede experimentar una mejora general en su cronograma de desarrollo y eficiencia.
Obtenga más información sobre estos beneficios en «Cree su propia solución de revisión de código para sus proyectos futuros».
En DevTeam.Space, nuestros desarrolladores están bien familiarizados con los procesos de revisión de código. Nuestros equipos de desarrollo también conocen bien las listas de verificación de revisión de código, y puede juzgar nuestras capacidades leyendo «Lista de verificación de revisión de código: ¡Deje de producir errores ahora!».
Administrar su proyecto después de reemplazar a los desarrolladores a mitad del proyecto
Ahora ha reemplazado a sus desarrolladores de bajo rendimiento con otros competentes, posteriormente, también ha hecho la transición de su proyecto a los nuevos desarrolladores. El éxito de su proyecto ahora depende de la gestión eficaz del proceso en cada paso.
Debe usar procesos, métodos y herramientas avanzados de gestión de proyectos (PM&T) para esto. Sin embargo, los nuevos desarrolladores deben ser centrales en este proceso. Esto requiere que tengan un conocimiento práctico de dicho PM&T.
Dados los procesos ágiles impulsados por IA utilizados por DevTeam.Space, si aún necesita ayuda experimentada, ¡nuestros desarrolladores son los más adecuados para ayudarlo! Comuníquese con nosotros a través de este formulario rápido de especificaciones del proyectoy uno de nuestros gerentes se comunicará con usted para obtener más ayuda.
Preguntas frecuentes
• Plazos incumplidos
• Mala comunicación
• Promesas rotas
• Exigencias de más dinero sin completar tareas
• Código pobre
• Incapaz de trabajar bien en un equipo
• No maneja bien la retroalimentación
La respuesta más obvia es contratar a sus desarrolladores a través de una plataforma de desarrollo de software acreditada como DevTeam.Space, que invierte en el futuro de sus desarrolladores y garantiza todo el código que escriben.
Puede ser un desafío, especialmente si no lo ha hecho antes. Deberá obtener la mayor cantidad de información posible de su antiguo desarrollador junto con todo el código que han escrito. Es una buena idea incorporar a un desarrollador administrado para que tome su lugar, ya que esto ayudará a facilitar el proceso de transferencia. Lee este artículo para obtener más información.