¿Cómo resuelvo algunos de los mayores problemas de TI con el desarrollo de software offshore?

El desarrollo offshore atrae a las empresas con su potencial de ahorro de costos emocionante y tiempos de respuesta más rápidos. La subcontratación ha visto proyectos exitosos y no exitosos. Aun así, muchas empresas dudan en dar el salto y subcontratar debido al estigma que conlleva. Hoy, incluso con la creciente conciencia de los inconvenientes de la subcontratación, hay un número cada vez mayor de empresas que optan por externalizar el desarrollo y el mantenimiento de su software. Este blog no aborda los méritos y desventajas del outsourcing y si una empresa debe decidir invertir o no en él. En cambio, tiene como objetivo guiar a las empresas que ya han implementado o están pensando en implementar el desarrollo offshore. Además, si no está trabajando con un equipo offshore experimentado y talentoso, el desarrollo offshore fracasará, simple y llanamente, sin importar las prácticas que intente emplear. Por otra parte, este punto es válido incluso si el equipo inexperto con el que está trabajando está en tierra. Aquí está la perspectiva del proveedor de servicios.

1. Un proceso claro

Los problemas de comunicación son uno de los problemas más frecuentemente citados en la contratación externa. Ahora, la comunicación es un término amplio. Comience por observar más de cerca las causas específicas de estos problemas de comunicación, y encontrará hilos que conducen a una idea clara de qué mejorar. ¿Es difícil manejar la documentación adicional necesaria para transferir los requisitos del proyecto? ¿Son las diferencias de zona horaria? ¿O la falta de interacciones frecuentes que normalmente tiene con sus colegas?

Comience por mejorar el proceso. Comience con un ciclo estrictamente programado de reuniones diarias y semanales. En la metodología de software Agile, las paradas diarias están organizadas por defecto. No todas las empresas de software usan Agile, al garantizar que todos los miembros del equipo se reúnan durante 15 minutos todos los días y durante aproximadamente una hora cada semana, las cosas comienzan a moverse mucho más rápido. Las personas que asisten, los horarios y la agenda deben anotarse en una descripción clara del proceso. Si las reuniones se convierten en una rutina y el proceso se sigue de una manera estructurada, usted ha establecido una base estable para la contratación externa para agilizar la comunicación. Los problemas de comunicación comenzarán a resolverse por sí solos ya que las personas tienen la oportunidad diaria de discutir y alinear el comportamiento. Los equipos comienzan a encontrar sus soluciones, sin que la gerencia tenga que pasar días en sesiones de capacitación y resolución de problemas.

La mayoría de las veces, todo está escrito en papel, y las personas tratan de entenderse entre sí a través del medio escrito, mientras que, en palabras habladas, las aclaraciones se eliminan de manera más eficiente y mucho más rápida. Por lo tanto, organice una sesión de una hora al comienzo de un proyecto donde los equipos puedan discutir los requisitos.

2. Una herramienta confiable de gestión de proyectos

Una herramienta de gestión de proyectos en línea es esencial. Para los equipos de desarrollo de software, esta herramienta debe venir con secciones distintas para informar errores, tareas y preguntas. Nuevamente, cree una rutina alrededor de esta herramienta. Comienza escribiendo pautas claras sobre cómo usar el sistema en línea, si tres personas usan el mismo sistema de manera diferente, terminarás teniendo problemas de comunicación nuevamente. Además, asegúrese de que toda la comunicación se realice a través de la herramienta en línea.

3. Directrices claras sobre el desarrollo de requisitos.

Escribir documentos de requisitos claros puede ser un obstáculo. Los equipos pasan horas escribiendo la documentación solo para descubrir al día siguiente que el equipo externo tiene tres páginas de preguntas. El problema es que no hay un estándar para desarrollar especificaciones. Establezca un formato único y tanto los autores como los lectores comprenderán mejor los requisitos.

4. Comparta su contexto comercial

A menudo no proporcionamos una comprensión del dominio comercial ni compartimos nuestras expectativas con todo el equipo. Los miembros de su equipo en el sitio tienen el privilegio de interactuar con usuarios comerciales. Por lo tanto, el conocimiento del dominio debe ser transferido por su equipo en el sitio a los miembros del equipo offshore. Entonces todo el equipo está en la misma página.

5. Jefe de equipo técnico en tierra

Mantenga el liderazgo de un equipo en tierra cuyo único trabajo es trabajar con el equipo en tierra. Las empresas suponen que alguien puede gestionar el desarrollo offshore cada vez que encuentran tiempo entre sus otras responsabilidades. Esto demostrará ser una receta para el desastre. El equipo lidera las responsabilidades de establecer estándares y prácticas de codificación, revisar el código, ayudar a resolver desafíos técnicos difíciles, ayudar a brindar dirección técnica y ayudar a capacitar y asesorar al equipo offshore. Este es un trabajo de tiempo completo, no es diferente de un líder de equipo que trabaja con un equipo en tierra.

6. Apégate a equipos pequeños altamente calificados

Intente ir a empresas más pequeñas y con experiencia en lugar de empresas grandes con múltiples capas de gestión, con una mayor probabilidad de falta de comunicación y gastos generales innecesarios. Un equipo de seis a siete desarrolladores expertos en alta mar será más eficiente que un equipo más grande de desarrolladores promedio.

7. Desafía a tus desarrolladores offshore

Los desarrolladores expertos y experimentados disfrutan de ser desafiados incluso si son offshore. Es posible que tenga ideas para diseños en su cabeza, pero brinde una oportunidad al equipo offshore y se sorprenderá de cuántas ideas se les ocurren. Esto es cuando sabes que tienes un buen equipo offshore. Además, los desarrolladores offshore sentirán un sentido de propiedad y querrán permanecer en su proyecto y contribuir más si sienten que están ayudando con los problemas técnicos críticos que enfrenta la organización.

Conclusiones

Todos los proyectos en alta mar no fallan, así como mantener proyectos en tierra no resolverá mágicamente todos sus problemas. Los desgloses de proyectos se producen debido a diversos factores, como el desarrollo deficiente del proceso, la recopilación de requisitos incompletos o una inversión insuficiente en la gestión de proveedores. Desarrollar software con su equipo a medio mundo de distancia, trabajar en diferentes zonas horarias es muy desafiante. Entendemos que las prácticas mencionadas anteriormente no resolverán todos sus problemas y, además, no todas las prácticas serán factibles de implementar en todas las empresas.

El outsourcing aún se mantiene fuerte y, además, las empresas más experimentadas expresan satisfacción con sus relaciones offshore, y la mayoría de los contratos de outsourcing de TI se reviven después de su vencimiento. Sin embargo, no todas las empresas tienen lo necesario para hacer uso del mercado laboral internacional. El dinero seguirá siendo el factor decisivo para la mayoría de las empresas. [1]

Notas al pie

[1] ¿Cómo resolver los 7 problemas más grandes con el desarrollo de software offshore?

More Interesting

¿Cuáles son algunos buenos proyectos de software que usan una base de datos?

¿La programación de software integrada y la programación de software normal son lo mismo?

¿Cuánto más desordenada es la condición de trabajo de los ingenieros de software en India que en Estados Unidos?

¿Cómo obtienes un trabajo de programación o una pasantía si eres estudiante de segundo año de CS pero no tienes experiencia? ¿Cómo elige un proyecto y establece objetivos para él?

¿Qué partes del ecosistema de Java son las más valiosas a partir de 2014?

¿Realmente necesito experiencia en desarrollo para solicitar trabajos de QA en Google?

Ingeniero mecánico pasando por un cambio de carrera en Ingeniería de software (aplicando a Hack Reactor y MakerSquare). ¿Qué tan crítico es tener un título en Ciencias de la Computación al solicitar / entrevistar para puestos de Ingeniería de Software DESPUÉS de completar uno de estos programas?

¿Cómo determinan los ingenieros si un sistema tiene suficientes redundancias?

¿Cuál es el uso principal del lenguaje de programación Go? ¿Alguna compañía lo usa para construir su software? Si es así, ¿cuáles son algunos ejemplos?

¿Cuáles son las implicaciones de un concepto como TrueTime api (de Google Spanner) en el diseño de sistemas distribuidos?

Algún moderador sigue bloqueándome en el foro. ¿Cómo puedo cambiar mi dirección IP? ¿Cambiar mi dirección IP interrumpiría la transferencia de un archivo?

¿Cómo podría impulsar mi carrera como ingeniero de sistemas integrados en India?

¿Por qué seguí siendo rechazado después de una entrevista in situ para el rol de ingeniero de control de calidad en Silicon Valley?

¿Qué es akka? ¿Cómo se puede explicar de manera simplista? ¿Por qué es importante para crear aplicaciones web?

¿Debería Blackberry deshacerse del hardware y centrarse en el software?