¿Cómo puedo gestionar mejor un desarrollador de software remoto?

Hay algunos desafíos específicos que debe tener en cuenta al administrar un equipo que es remoto. No se trata solo de mover los chats del refrigerador de agua de su equipo a un canal Slack, ¡aunque ese es un buen comienzo!

Comunicación del equipo

En su mayor parte, los gerentes han asumido que la proximidad era suficiente para que los equipos se comuniquen de manera efectiva. El equipo remoto ha obligado a repensar estos principios. Esto es algo realmente bueno porque se enfoca en desarrollar la colaboración en los procesos del día a día.

Dependiendo de la estructura de su equipo, es posible que necesite superar problemas de idioma, problemas de zona horaria y problemas culturales.

Un buen lugar para comenzar es elegir el software de comunicación adecuado, usamos Slack y lo convertimos en un centro esencial. Esto lleva tiempo, planificación y aplicación constante. Debe ser beneficioso y divertido de usar o la gente no lo hará. Tenemos proyectos de canales separados y para temas irreverentes. También intentamos canalizar todos los chats de negocios en Slack.

Contacto regular

Slack es excelente para reunir a los equipos, pero debe tener un proceso para registrar a las personas mientras avanzan los proyectos. Usamos Scrum para esto. Es un gran proceso que es fácil de adoptar y muy flexible. Con el tiempo lo hemos adaptado ligeramente a nuestras necesidades, pero aún utilizamos las ceremonias principales:

  • El Standup diario. Esta es una reunión cara a cara que hacemos a través del audio, donde todos miran una pantalla compartida que muestra la tarea en nuestra plataforma de Gestión de tareas. En la ruta escalable, hemos creado nuestro propio conjunto de herramientas para esto, pero Asana, Trello y Basecamp son excelentes sustitutos. El objetivo de esta convocatoria diaria es reunir a todos y discutir el progreso del individuo y cómo se alimenta en el progreso más amplio del proyecto. Esta ceremonia hace que las personas rindan cuentas al resto del equipo. A veces trabajamos con clientes donde una parte del equipo es remota y otra parte está en la casa. Comenzamos haciendo que el equipo interno se reuniera en una sala de conferencias y luego los miembros remotos marcaran. Aprenda de mi error aquí: esta no es la mejor manera de manejar esta situación. Los miembros que llaman tienden a sentirse ciudadanos de segunda clase y no se involucran completamente. Ahora tenemos todos los miembros, internos o remotos, que marcan desde su escritorio. De esta manera, todos están en el mismo pie. Funciona mucho mejor para nosotros.
  • La otra ceremonia Scrum sin la que no podría vivir es Sprint Planning. Podría escribir sobre estas ceremonias para las páginas, pero probablemente sea más fácil si solo mira el artículo que escribimos recientemente sobre él: https://www.scalablepath.com/blo….

La gran conclusión aquí es que debes comunicarte con tu equipo a diario. Discuta lo que se está haciendo hoy, lo que se hizo ayer y los problemas que podrían surgir mañana. Pero discuta más que solo el trabajo, conéctese con su equipo a nivel personal cuando pueda. Cuando puedes probar y recrear interacciones f2f. Es vital no perder por completo en las colas de lenguaje no verbal. En una oficina más tradicional, los empleados están expuestos a pistas visuales de comportamiento y reaccionan a ellas. Si todo lo que hace es comunicarse por correo electrónico y salas de chat, los perderá. Las llamadas de video, e incluso de audio, devuelven gran parte de esto a la ecuación. ¡Aprovecha eso!

Organizar una llamada que funcione bien para todos se vuelve más difícil a medida que extiende a su equipo a través de las zonas horarias. Personalmente, como gerente, este fue uno de los mayores problemas con la gestión remota de equipos. Tanto es así que decidí tener todos mis equipos remotos en zonas horarias similares. Significa que ni yo ni ningún miembro del equipo necesitamos registrarnos a horas inusuales.

Comuníquese claramente

Todos necesitan saber qué se espera de ellos y dónde acceder a la información que puedan necesitar para completar su trabajo. Esto significa que su infraestructura de información debe estar bien administrada. Su software de gestión de tareas no debe ser una idea de último momento, sino el lugar a donde ir para saber qué se está haciendo, quién lo está haciendo y cuándo se debe. Las Standups diarias discutidas anteriormente deben estructurarse en torno a estas tareas. También debe asegurarse de que todos tengan acceso a las credenciales que puedan necesitar.

Conoce tus cosas

Si decides ser el maestro Scrum y administrar tu equipo, asegúrate de saber cómo funciona para que puedas hacer bien el trabajo. Su rol como gerente no es diferente con un equipo remoto: usted debe ayudar a su equipo a hacer su trabajo de manera rápida y eficiente. Para hacerlo, debe comprender por dentro y por fuera las herramientas y metodologías que ha elegido.

Puede utilizar ProofHub, un software de gestión de proyectos en línea para gestionar su desarrollador de software remoto. ProoofHub es un excelente software de colaboración y gestión de proyectos basado en la web que le permite entregar el trabajo de una manera más rápida, fácil y mejor. Le permite trabajar sin problemas junto con su equipo y utilizar una variedad de herramientas integradas que simplifican el proceso de gestión del trabajo. Puede comenzar agregando proyectos y personas a su cuenta. A medida que sus proyectos comienzan, puede utilizar herramientas como debates, tareas, notas, calendario e hitos, chat incorporado, diagrama de Gantt u hojas de tiempo para entregar el trabajo a tiempo. No solo en la fase inicial, sino que, a medida que el equipo y los clientes se expanden a diferentes regiones, esta herramienta facilitará y agilizará la vida de los nuevos propietarios.

Ofrece una forma simple, organizada y profesional de colaborar y gestionar proyectos desde cualquier lugar y en cualquier momento.

Con ProofHub, sus equipos, clientes y toda la comunicación del proyecto se mantienen en un solo lugar. No es necesario invertir en demasiadas herramientas diferentes para administrar su negocio. Nuestro software de gestión de proyectos hace que sea fácil crear planes, colaborar con equipos y clientes, mantener las cosas organizadas y entregar proyectos a tiempo.

Ofrece características como:

Flujos de trabajo y tableros: simplifique la forma en que administra sus tareas definiendo su flujo y asignándoles un flujo de trabajo básico o kanban según sus necesidades.

Pruebas: agilice el proceso de revisión de archivos y documentos, brinde claridad en el intercambio de comentarios e incluso realice un seguimiento de los cambios realizados en ellos.

Roles personalizados: obtenga el control definitivo de sus proyectos estableciendo roles personalizados y definiendo diferentes niveles de acceso para los miembros de su equipo en función de sus responsabilidades.

Etiquetado en blanco: configure la página de inicio de sesión de marca, agregue un color, configure un tema y agregue su logotipo para que la cuenta se vea como la apariencia de su empresa.

Multilingüe: la interfaz está disponible en más de media docena de idiomas, incluidos inglés, francés, español, portugués, polaco y alemán.

Informes: Obtenga una idea clara de cómo se ejecutan los proyectos y la utilización de los recursos, para analizar los planes e iterar en consecuencia.

Diagramas de Gantt: ¡Obtenga un cronograma visual de las tareas para planificar mejor los proyectos y administrar los recursos de manera eficiente, y mantenerse en el camino!

Gestión de tareas: mantenga el trabajo organizado para que las personas no tengan que preguntarse en qué trabajar después y qué está pendiente.

Seguimiento del tiempo: realice un seguimiento del tiempo dedicado a las tareas haciendo entradas de tiempo manuales o utilizando el temporizador para facturar a los clientes con precisión.

Mi equipo ( http://Nascenia.com ) ha estado desarrollando software durante 5 años. Hemos completado más de 50 proyectos para clientes de 12 países diferentes. Entonces, puedo darle una idea bastante buena sobre cómo administrar el equipo de desarrollo de software remoto. Aquí hay algunos consejos:

1. Aclarar requisito
2. Documente tanto como sea posible
3. Haga una visita de vez en cuando
4. Predefinir canales de comunicación y gestión de proyectos.

Aclarar requisito
La base de su software debe ser buena. Para eso es importante que finalice sus requisitos primero y luego solicite el desarrollo.
Los cambios frecuentes en los requisitos aumentan las posibilidades de mala administración. No contrates de inmediato cuando tengas una idea. Investigue y tome tiempo. Habla con el equipo. Diferentes desarrolladores se especializan en diferentes áreas. Luego discuta con qué tecnologías desea desarrollar: Rails, PHP, Django, etc.

Cambiar requisitos es fácil en una hoja de cálculo. Pero no es tan fácil en los códigos. Los códigos están relacionados. Son parte de un sistema. Cuando realiza cambios, afecta a múltiples áreas y crea más errores. Es por eso que el requisito para cada versión debe ser arreglado

Documente tanto como sea posible
Cada requisito y decisión durante las reuniones debe documentarse. La documentación ayuda a realizar un seguimiento del desarrollo. También ayuda a todos a mantenerse al tanto. El desarrollo involucra a mucha gente. Después de 3 a 6 meses de desarrollo y unos pocos cambios de empleados, todos no recuerdan todos los detalles esenciales. Los contratos escritos lo mantienen seguro. Si cree que los desarrolladores remotos están violando una promesa, cada uno puede identificar el lugar correcto.

Haz una visita de vez en cuando
Recientemente uno de nuestros clientes nos visitó desde Noruega. Esta es su primera vez en Bangladesh. El proyecto acaba de comenzar. Estuvo aquí durante aproximadamente una semana. Todas las mañanas llegaba a la oficina y pasaba todo el día con los desarrolladores. Luego se fue con un comentario positivo. Todos nos sentimos mucho mejor al conocernos cara a cara. El desarrollo remoto es rentable y “efectivo en código”, pero solo la experiencia humana puede brindarle la mayor comodidad.

Pasar tiempo con los desarrolladores mejora la química dentro del equipo. La discusión cara a cara siempre ayuda. Tu instinto entra en acción. Puedes tener una buena idea sobre el desarrollo del equipo, la gestión de proyectos y el estilo de comunicación.

Canales de comunicación y gestión de proyectos predefinidos
La comunicación y la gestión de proyectos son dos aspectos cruciales de un proyecto. En desarrollo remoto. La comunicación verbal generalmente ocurre a través de Skype. Hay algunas herramientas robustas de gestión de proyectos disponibles. Personalmente prefiero Trello y Pivotal Tracker. Algunos clientes piden JIRA. Asegúrese de elegir una herramienta de gestión de proyectos con la que usted y los desarrolladores se sientan cómodos.

Espero que mi respuesta ayude. Si necesita más contacto, no dude en ponerse en contacto.

Lo primero que viene a la mente cuando se piensa en desarrolladores de software remotos es la sensación de no tener el control sobre sus desarrolladores de software remotos. Sin embargo, cuando se hace bien, no sentirá la diferencia entre sus equipos internos y remotos. En mi experiencia trabajando con equipos remotos (trabajo con OutsourcingICT, un equipo de desarrolladores de software experimentados especializados en React, PHP y .NET), hay cosas que deben aclararse desde el principio para ser testigo de todos los beneficios de la contratación remota desarrolladores

1. Establezca expectativas claras

Comenzar sin una idea clara es generalmente una mala práctica comercial, pero es especialmente importante establecer expectativas claras cuando se trabaja con equipos remotos. La claridad en este punto es esencial para que ambas partes estén satisfechas y, en última instancia, para la finalización exitosa del proyecto. Para este propósito, es mejor organizar reuniones diarias para discutir el desempeño, el progreso y las tareas. Esto ayudará a todos a estar en la misma página, permanecer transparentes y detectar y resolver cualquier problema que pueda afectar el éxito y la finalización del proyecto.

2. Evitar la microgestión

La idea de que alguien haga el trabajo por usted pero no esté físicamente presente en sus instalaciones podría ser un terreno fértil para que algunas compañías piensen que los trabajadores remotos no harán todo lo posible para lograr los objetivos del proyecto. Si bien es importante que los gerentes controlen la calidad y se responsabilicen por el resultado del proyecto, es aún más importante permitir que los miembros de su equipo tomen la iniciativa, muestren su talento, piensen de manera innovadora y sugieran soluciones creativas que sean el resultado de un esfuerzo conjunto y lluvia de ideas.

3. Propiedad

Esto podría verse como estar al otro lado de la microgestión. Cuando los miembros del equipo no tienen un sentido de sus roles dentro del equipo y una visión clara de lo que se espera de ellos, puede llevar a tener un equipo de desarrolladores sin un objetivo claro y un sentido de responsabilidad. Cuando cada miembro del equipo tiene una visión clara de su rol, pero también la libertad de realizar las tareas a su manera, pondrán su corazón y su alma en el proyecto, se mantendrán motivados y leales.

4. comunicación

A decir verdad, muchos proyectos fracasan debido a una mala comunicación. Además de las reuniones diarias del equipo, es crucial crear una política de puertas abiertas, donde todos puedan acercarse a la gerencia y compartir sus inquietudes e ideas para que todos tengan la sensación de una atmósfera saludable y diálogos respetuosos.

5. Reconocer un logro

Su equipo estaba trabajando las 24 horas para cumplir con la fecha límite y se esforzó por lograr los objetivos del proyecto. Sin embargo, cuando todo estuvo hecho, nadie ha reconocido que todo salió bien y de acuerdo con el cronograma. No reconocer un logro realmente podría afectar la motivación y el sentido de propósito de su equipo. Hecho demasiadas veces podría resultar en una disminución de la productividad y la satisfacción con el trabajo. Asegúrese de no supervisar los logros de uno y organice sesiones de retroalimentación individuales para comunicar los puntos de mejora, pero también aprecie públicamente los que lo merecen.

Si bien todos estos componentes anteriores son muy importantes, es tan importante dónde se encuentra su equipo de desarrollo remoto. En mi experiencia, resultó ser mejor contratar nearshore, en lugar de desarrolladores offshore. Hay muchas razones para esto:

  • Diferencias de zona horaria . Le gustaría tener desarrolladores que estén disponibles al mismo tiempo que su equipo en tierra. Esto lleva a la resolución instantánea de problemas cuando ocurren problemas y también trae una sensación de no diferencia entre los equipos.
  • Diferencias culturales Trabajamos mejor con personas que nos gustan y con las que nos sentimos cercanos. Te gustaría trabajar con alguien con quien te sientas lo suficientemente cómodo como para comunicarte, pero también aportarías un nuevo enfoque a algunos problemas antiguos que podrías encontrar.
  • Barreras lingüísticas . Con el inglés convirtiéndose en el idioma número 1 para la comunicación internacional, hoy en día es imposible hacer un negocio de clase mundial sin hablar inglés competente. La contratación de alguien con un acento fuerte desafortunadamente podría llevar a plazos vencidos u otros malentendidos en el proyecto.

¿Busca desarrolladores expertos, expertos y confiables para su equipo? En OutourcingICT hay muchos desarrolladores dedicados que podrían ser los adecuados para su proyecto.

De acuerdo, parte de esto puede venir como autopromoción, pero la visión detrás de http://www.xamun.com es resolver parte de este desafío exactamente; He estado en la gestión de proyectos de diferentes tipos, especialmente en la bestia de la gestión de proyectos de software, que se vuelve más desafiante cuando está remoto. Esta experiencia ha sido tanto desde el punto de vista de los compradores como desde el punto de vista de los proveedores también , para empleados remotos, autónomos y para recursos subcontratados.

No hay nada como la distancia para comenzar a generar dudas , especialmente si el recurso se paga por hora por su trabajo. Y en el desarrollo de software, cuando muchas cosas están ocultas (el progreso no es visible para el usuario), esto puede ser realmente muy obvio. Estas son las pocas cosas que recomiendo por nuestra experiencia, tanto en términos de proceso como de sistema:
Construir la confianza y la relación en el mundo real (sé que es difícil hacerlo por períodos cortos de un mini proyecto, la solución es elegir y continuar trabajando con el mismo recurso a lo largo del tiempo). Ambos deben poder conocerse como una persona real con desafíos de la vida real para ser empáticos y responsables entre sí, más allá de solo una identificación de correo electrónico y algo de tiempo para chatear.
Comunicación, comunicación frecuente y fluida sobre proyectos, objetivos, desafíos, etc., de forma regular y constante. No hay nada como un chat de texto para esto, además de reuniones cortas en línea regulares sobre video y uso compartido de pantalla
Transparencia en términos de visibilidad de tareas, progreso y hoja de tiempos. Retroalimentación rápida y periódica sobre el progreso o la falta de ella y realmente tratando de entender por qué.
En la misma página , es bueno traer las diferentes partes involucradas en el proyecto en la misma página, por lo que hay una comprensión clara de la dependencia mutua y la comprensión común de la contribución de cada uno al éxito. En la oficina física, esto ocurre naturalmente a través de la proximidad, pero en el mundo virtual tenemos que tomar medidas adicionales para que esto suceda, el tablero de tareas compartido, el panel de discusión, el informe de progreso, el registro de impedimentos, etc., pueden ser útiles para esto.
– por último, si la relación no está mejorando y simplemente no puedes confiar el uno en el otro, es mejor seguir adelante y encontrar a alguien más con quien trabajar, esto también se recomienda en la práctica ágil, deshacerse de aquellos que están frenando al equipo; la vida es demasiado corta para un dolor innecesario 🙂

Espero que esto ayude, pruebe Xamun: plataforma de trabajo en línea y contribuya al foro sobre cómo podemos mejorar el objetivo anterior.

Si aún necesita algunos consejos, aquí hay 7 estrategias de comunicación ágiles para administrar equipos remotos …

1. Fomentar una cultura de integración continua cuando las construcciones se discuten y planifican constantemente.

La creación de una cultura donde la integración continua es la norma es especialmente valiosa en proyectos con plazos extendidos o al administrar equipos remotos. En esta estructura, es fácil optar por dividir el trabajo para los equipos a lo largo de los límites técnicos. Estos límites técnicos pueden dividirse por trabajo frontend / backend o incluso base de datos y servicios / frontend. El ancho de banda o la seguridad del equipo podrían impulsar las divisiones. Además, algunas empresas pueden desconfiar de liberar la propiedad intelectual en una plataforma basada en la nube como GitLab.

Esto a menudo resulta en el mantenimiento de dos repositorios de código fuente con el compromiso de fusionarlos más tarde. Resiste esto. La deuda técnica que resulta de este código fracturado lleva más tiempo superarla que si los equipos hubieran aumentado la comunicación necesaria para mantener un solo repositorio de código en primer lugar. Superar cualquier obstáculo de comunicación para trabajar en la misma base de código vale la pena en todos los sentidos.

Los líderes de equipo tienen éxito en la gestión de equipos remotos y la implementación de esta cultura incluso comenzará a ver evidencia manifiesta en la comunicación diaria y el comportamiento de los miembros del equipo:

  • Todos los miembros se esfuerzan activamente por no romper la construcción.
  • Proporcionarán visibilidad a las construcciones rotas.
  • Todos reaccionarán con urgencia para ajustar los problemas de compilación.

Obtenga el libro electrónico: la guía completa para organizar y dirigir equipos distribuidos

2. Comprométete con las construcciones regulares, para que no priorices mantener el plan sobre la agilidad.

Es fácil producir una especificación gigante en lugar de comunicarse diariamente con el equipo de desarrollo offshore o dejar que la distancia se convierta en una razón para mantener el rumbo y evitar evolucionar la solución cuando surgen desafíos o barreras.

Desarrollar un horario semanal es bueno, todos los días es aún mejor. Haga responsable a su equipo para enviar un conjunto de cambios al control del código fuente cada vez. Luego, aproveche su compilador como miembro del equipo para asegurarse de que su código fuente haya alcanzado o excedido las expectativas de calidad. Agregar pruebas de humo puede mover este dial aún más.

3. Abrace el proceso social de desarrollar software personalizado.

La mayoría de las personas asumen que el desarrollo de software personalizado es un proceso puramente técnico. Si bien es cierto que el proceso es altamente técnico y requiere años de capacitación y experiencia para funcionar con éxito, el desarrollo de software es primero un proceso social y se basa en la confianza creada entre las personas.

Fomentar el intercambio de conocimientos en cada equipo. Esto se trata menos de catalogar procesos en un Wiki y más de cultivar esto naturalmente en stand-ups diarios o en cualquier momento en que los miembros del equipo den actualizaciones.

Anime a su equipo a compartir más allá de lo que pertenece al trabajo de ese día. Si un miembro del equipo anticipa que algo en lo que está trabajando puede afectar otro rol al día siguiente, dígalo. Una vez que los miembros del equipo dominan el hábito de compartir ideas significativas y prospectivas sobre su trabajo, es cuando se logra el verdadero intercambio de conocimientos.

4. Fomentar una estrecha comunicación entre los diseñadores de UX y los analistas de negocios para acelerar el rendimiento en un factor de dos.

Fomentar una estrecha colaboración entre diseñadores y analistas de negocios, alentando la atención adicional a la interfaz gráfica. Esto puede significar que se dedica más tiempo a crear artefactos visuales para que el equipo técnico complemente las historias de usuarios relacionadas. ¿La recompensa? Menos preguntas relacionadas con la estética y menos iteraciones creadas como resultado de las expectativas no coincidentes.

5. Discuta incluso los requisitos no funcionales.

Para los equipos que se ubican conjuntamente, es fácil responder preguntas sobre el rendimiento y la escalabilidad a medida que surgen. Conceptualizar y documentar los requisitos con el nivel de detalle adecuado sirve como enlace entre los equipos técnicos y comerciales.

Para los equipos distribuidos, comprender los detalles de requisitos no funcionales juega un papel aún más importante. Sin instrucciones explícitas documentadas para el equipo técnico, podría dar lugar a la creación de una arquitectura que haga suposiciones sobre los requisitos no funcionales, lo que resultará en un mayor trabajo, tiempo y más tiempo.

¿Cómo selecciona una ubicación para su equipo distribuido?

6. Administrar un equipo distribuido puede significar documentar más.

Si bien todos los equipos ágiles se esfuerzan por escribir los requisitos “lo suficiente”, administrar un equipo distribuido significa aceptar “lo suficiente” puede significar documentar más de lo que se crearía para un equipo de ubicación conjunta.

Los miembros del equipo distribuido no pueden dibujar rápidamente en una pizarra para trabajar a través de un concepto complejo. En lugar de abandonar su desarrollo y los equipos de prueba dejaron de adivinar los matices que de otra manera se entregarían verbalmente, documente y “dé las respuestas” antes de la prueba.

Al aumentar las historias de los usuarios con criterios de prueba o aceptación, puede preparar al equipo técnico para el éxito sin expandir drásticamente la narrativa.

7. Elija un conjunto de herramientas de comunicación para su equipo que permita la escalada natural de las necesidades de comunicación.

Cuando los equipos se ubican conjuntamente, el nivel de comunicación necesario aumenta de forma natural. Podría comenzar con compañeros de trabajo hablando uno a uno en la sala de descanso. Si se necesitan detalles aclaratorios, expertos adicionales en la materia pueden participar en la conversación. Luego, la conversación cambia de muchos a uno o de muchos a muchos, según el contexto. Mantener este proceso de escalado es esencial para crear salidas para respuestas rápidas o conversaciones más profundas a pesar de la distancia que pueda existir entre los miembros del equipo.

Escalada de comunicación

  • Chat 1-1
  • Chat muchos a 1
  • Llamada de voz
  • Llamada visual
  • Compartir pantalla
  • Composición colaborativa

La capacidad de hacer preguntas aclaratorias rápidas está arraigada en la forma en que trabajan la mayoría de los equipos. En el pasado, esto se podía lograr con visitas automáticas en la oficina. Pero, cada vez más, incluso los equipos que se ubican conjuntamente confían en la mensajería instantánea para lograr esto.

La mensajería instantánea es una herramienta poderosa para administrar equipos remotos que incluyen hablantes de inglés no nativos. El medio les brinda el espacio para elaborar respuestas sin la presión de discutir directamente (y rápidamente) con un hablante nativo de inglés. Dicho esto, herramientas como Skype permiten la escalada de mensajes a llamadas de voz y video e incluso compartir pantalla si es necesario.

Si bien la importancia de la mensajería instantánea no se puede enfatizar demasiado para los equipos distribuidos, observar el lenguaje corporal y las reacciones físicas a las declaraciones o preguntas también es de vital importancia, especialmente cuando se discuten desafíos o preguntas para evaluar la viabilidad o la comprensión.

¿Qué se necesita para tener éxito con los equipos de software ágil distribuidos?

Ninguna herramienta electrónica o estrategia de comunicación puede reemplazar la perseverancia de los líderes necesarios para realizar su potencial. Estos líderes deben creer que Agile puede trabajar para equipos distribuidos. Si lo hacen, lo hará.

Creo que estás buscando una solución como Hubstaff. Trabajo para ellos y me gusta tanto que también comencé a usarlo para mis otros clientes de marketing en línea. Así es como funciona y por qué me gusta usarlo.

Configura una lista de tareas que desea que su desarrollador de software (o cualquier otro profesional independiente con el que esté trabajando) trabaje en una suite de administración de proyectos en línea como Asana, Trello, Producteev, etc. Luego integra su cuenta de Hubstaff con esos proyectos e invitas a tu profesional independiente a tu organización. Su temporizador se completará automáticamente con las tareas que le haya asignado, y podrá rastrear el tiempo que pasa trabajando en sus tareas; si lo desea, puede habilitar medidas de seguimiento de la productividad (que controlan la frecuencia de la actividad del mouse y del teclado a lo largo del tiempo) y la captura automática de capturas de pantalla. Las capturas de pantalla y los porcentajes de actividad se cargarán en su cuenta de Hubstaff para que los revise casi de inmediato, lo que le dará una idea de cuán productivo ha estado trabajando su desarrollador.

Sé que no quieres mirar por encima del hombro de tu desarrollador, y algunas personas podrían pensar que este sistema suena draconiano, pero como contratista personalmente me gusta mucho. Me da una copia de seguridad adicional y crea confianza con mis clientes; a veces, incluso si realmente estoy trabajando duro en un proyecto, todavía hay un retraso en los resultados, como con el trabajo de SEO, por ejemplo. Hubstaff me permite tener algo que mostrar para mi tiempo cuando un gran proyecto aún está en progreso.

Volviendo a su desarrollador, al final del período de facturación, Hubstaff compila automáticamente sus horas de seguimiento en una hoja de tiempo, que puede configurar para el pago automático a través de PayPal. Deje en claro que a partir de ahora solo le pagará a través de este sistema, y ​​que su porcentaje mínimo de actividad aceptable debería ser al menos del 50%, pero idealmente dentro del rango del 65-85% (que es totalmente alcanzable). Por lo general, si alguien tiene un problema con este sistema es porque está sucediendo algo más, y es mejor que encuentres a otra persona con quien trabajar. Después de todo, si ha estado trabajando duro durante el tiempo que le factura, entonces no debería haber ningún problema con el seguimiento de su productividad, ¿verdad? Capturas de pantalla y niveles de actividad

Los pros y los contras de contratar un equipo de desarrollo remoto: http://unicsoft.net/business/pro

Y algo así como una guía para administrar un equipo de ingenieros de software remotos:

1. comunicación
2. Gestión: pedirle a un desarrollador remoto que haga algo puede no ser suficiente. En proyectos grandes, tiene requisitos funcionales / no funcionales, pruebas de aceptación, etc. Todo esto no es solo para perder el tiempo; Es útil tener claras las expectativas y asegurarse de que se cumplan. Quizás debería centrarse más en las técnicas utilizadas en la gestión de proyectos reales.

3. Mantenerse conectado con los desarrolladores: si libera a un desarrollador en la naturaleza, es probable que no sienta presión para finalizar el trabajo. Es como esas historias sobre los internos en Daily WTF: le pides al interno que haga algo, te olvidas de este interno y, unas semanas después, descubres que el trabajo no está hecho y que la persona está haciendo algo extrañamente diferente porque estaba Miedo de pedir una explicación.

4. Seguimiento: es una buena idea no solo mantenerse conectado, sino también vigilar lo que se está haciendo. Pedirle a los desarrolladores remotos que se comprometan con su servidor de control de versiones es una buena idea. Con el control de versiones, no solo obtienes actualizaciones diarias, sino que puedes revertir rápidamente un error si algo sale mal. Además, el control de versiones alienta a los desarrolladores a evitar esperar hasta el último minuto.

Instalar el software de seguimiento en la máquina de esta persona no es el movimiento correcto aquí y no es una buena práctica de administración en general. Entiendo que es fácil saltar a la idea de “¡No quiero pagar por que alguien se vaya!” (especialmente con un trabajador remoto), pero monitorear a alguien de esta manera establece un tono negativo para la relación, le pone la carga de vigilarlo todo el tiempo y, lo más importante, no mide las cosas que realmente importan .

O se está haciendo el trabajo o no. O estás obteniendo ganancias del trabajo de esta persona o no lo estás haciendo.

Estas son las cosas en las que quieres enfocarte. Debieras:

  • Acuerden mutuamente que el trabajo se complete dentro de un cierto período de tiempo (no más de una semana o dos).
  • Pídale que tenga en cuenta el tiempo dedicado por tarea, no solo por día / semana. Alternativamente, acepte un precio fijo o límite en la cantidad de horas facturables.
  • Si el trabajo que acordó no se ha completado, pregunte por qué. Las estimaciones se llaman estimaciones por una razón, pero si el trabajo no se completa dentro de la distancia de gritos del tiempo estimado, es justo interrogarlo al respecto.
  • Reúnase con frecuencia (no menos de una vez por semana) para discutir el trabajo en progreso, haga que demuestre el trabajo completado y hable sobre cualquier pregunta o impedimento que haya surgido.
  • Si permaneces insatisfecho con el ritmo o la calidad de su trabajo, despídelo y contrata a otra persona.
  • Si determina que es demasiado caro en relación con el ritmo y la calidad de su trabajo, despídalo y contrate a otra persona.

Acuerde estimaciones razonables para entregables. Entonces verifíquelos. Ningún desarrollador de software querrá seguir diciendo “Oh, corrí horas extras OTRA VEZ” … especialmente si ellos mismos estuvieron involucrados en la elaboración de la estimación. Divida las tareas en trozos lo suficientemente pequeños para que cada día haya una tarea que ambos esperan completar.

Esto te dará resultados. Y una vez que tenga resultados con los que esté satisfecho, entonces si el desarrollador termina en la mitad del tiempo y se burla de la otra mitad, ¿a quién le importa? Si lo lograron en la mitad del tiempo, pueden impresionarlo y ser contratados para futuros trabajos al decidir entregar el doble. Es su pérdida si no se aprovechan de eso.

Sugeriría una ventana de chat abierta, a la que estarían obligados a responder, pero interrumpiría el proceso de desarrollo. JIRA o incluso los correos electrónicos son una mejor forma de comunicación. Además, puede decir fácilmente (tal vez sinceramente) que estaba en el baño o en un descanso para almorzar cuando trataste de contactarlo. Solo mira los resultados.

Actualmente estoy trabajando de forma remota como programador debido a circunstancias especiales, y he trabajado de forma remota en algunos proyectos antes. Este problema sobre la distancia y la confianza es realmente ilusorio, porque un miembro del equipo puede aflojar tanto en la oficina si de todos modos no hay un control adecuado. A menos que monitoree a cada persona todo el tiempo, no hay forma de asegurarse de que en realidad no se relajen.

Pero lo que puede ayudarlo a controlar y medir la productividad de cada miembro, de forma remota o no, es la planificación adecuada y la retroalimentación en un proyecto . Realmente no hay necesidad de todas las cosas elegantes, simplemente delegue las tareas en consecuencia, calcule razonablemente y luego permítales cierta autonomía para demostrar su valía . Si un desarrollador falla constantemente en los plazos, la planificación no fue realista o el desarrollador no es adecuado para la tarea.

Por último, no verifique constantemente a un desarrollador. Puede interrumpir su flujo y afectar su productividad. Al ser un miembro remoto de mi equipo, para no levantar sospechas, a menudo trato de responder a cualquiera que comience una conversación conmigo a través de Slack, incluso si eso significa ser interrumpido constantemente. Un desarrollador no es un servicio de asistencia que espera tickets ni nadie que solicite su ayuda fácilmente. A menudo estoy ocupado e interrumpir mi flujo significa tomar más tiempo para terminarlo.

Entonces, si prometí entregar algo al final del día o de la semana, déjenme hacerlo en paz. Las interrupciones constantes en persona o en línea solo dan un sentido de control ilusorio, pero en realidad afectan negativamente al desarrollador. Simplemente discuta cuánto tiempo necesitarían para terminar sus tareas dadas y dejar que hagan su trabajo. Si no están entregando con demasiada frecuencia, discuta con ellos lo que está sucediendo. A veces los desarrolladores pueden fallar algunos plazos porque las estimaciones a veces fallan, pero algo podría estar mal si uno falla los plazos demasiado a menudo.

En primer lugar, asegúrese de contratar a las personas adecuadas. La gente trabaja remotamente la mayor parte del tiempo tiene que estar motivada. Hará tu vida mucho más fácil.

Diariamente, necesita las herramientas y los procesos correctos para que las cosas se muevan sin problemas.

  1. Comunicación abierta. La comunicación es la clave para trabajar con equipos remotos. Usamos Slack, que es el mejor.
  2. Mantenga las tareas en camino. Usamos Trello para la mayoría de los proyectos.
  3. Compartir conocimiento dentro del equipo. Utilizamos Allanswered e integrado con nuestros canales de Slack.
  4. Eventos presenciales regulares y trabajo en equipo. Se requiere viajar.

Intenta usar oDesk.

“El software oDesk permite a los empleadores monitorear, en tiempo real, el trabajo realizado por los freelancers que han contratado. El software oDesk toma capturas de pantalla regulares de una pantalla de freelancers cuando se activa, y monitorea de cerca la cantidad de trabajo realizado durante el transcurso del contrato “.

Escritura independiente en Elance vs oDesk

Realmente necesitas pedirle que informe lo que ha estado haciendo, no hay forma de evitarlo. La cuestión es que si solo vas y le dices que comience a hacerlo, seguramente sentirá que sospechas y que podría ser malo lo que siente por ti.

Supongo que algunas formas de decirle que serían:

“Oye, estoy realmente emocionado de ver que esto funcione, realmente siento que podríamos estar haciendo algo aquí … ¿Me pueden dar algunos informes sobre qué funcionalidades específicamente han estado trabajando para satisfacer mi entusiasmo?”

“¡Necesito comenzar a planificar los próximos pasos (¿financiación?) Y realmente necesito tener una buena idea de cuándo tendremos algo listo para mostrar! Si pudieran brindarme información sobre el progreso de la aplicación de manera regular , realmente me ayudaría ”

“Soy un poco nuevo en esta tarea de contratación y he estado en contacto con otras personas que también lo están haciendo y me dicen que generalmente solicitan un resumen diario del trabajo realizado para tener una buena idea del progreso del proyecto. ¿Podríamos implementar eso también? ”

Otra cosa que puede hacer es dividir el trabajo por hitos, como “tener un subgrupo de funcionalidades listo”. Y en realidad sugiero una fecha ambiciosa para tenerlo listo. Ciertamente reaccionará a eso con “¡Oh, eso es imposible, solo alrededor del día X!” y en ese momento puede ver cuán aceptables son sus estimaciones, como … Necesita un mes para este primer objetivo, y usted prevé otros 4 de aquellos con aparentemente tanto trabajo asociado. ¿Son aceptables 5 meses? Si es así, solo hágale saber todos los días que espera que lo haga para entonces. Si no, dile que no puedes esperar tanto, tendrás que encontrar a alguien más. Básicamente, lo que creo es que durante esa conversación realmente sentirás si está tratando de engañarte. Si yo fuera el desarrollador y no estuviera tratando de engañarte, seguramente me tomaría mi tiempo para hacerte entender que estoy haciendo lo mejor que puedo y que es realmente difícil hacerlo más rápido. Si te estuviera engañando, simplemente iría más a “¡no tienes idea!”, “¡Solo tienes que ser paciente!”, “Nadie más lo haría más rápido”, y así sucesivamente.

Contrata a una empresa para que lo haga por ti: contratarán a la persona adecuada y se preocuparán si algo sale mal. Sin riesgo.

Debería consultar empresas como el Equipo de desarrollo dedicado de Pragmio y BetaDevs.

Mantenga actualizaciones periódicas a través del canal de comunicación bidireccional .

Date prisa para unirte a este seminario web en el que obtienes comentarios competentes sobre tu problema.

Cómo gestionar seminarios web de equipos de desarrollo de software

En términos generales, debe haber un complejo de medidas que debe tomar para obtener resultados a tiempo y dentro del presupuesto sin ningún tipo de estrés. La comunicación es el componente central de su éxito. ¡Nos vemos en 3 horas!

Aquí hay una breve descripción de la agenda:

  • mala comunicación dentro del equipo y del equipo al cliente;
  • estimaciones inexactas;
  • requisitos incompletos o no entendidos;
  • cambio de especificaciones;
  • falta de participación del cliente y del equipo en el proyecto.

¿Quizás restablecer tus objetivos? ¿Es importante que trabaje horas específicas? ¿O que él haga algo?

¿Podrías estar de acuerdo con él en que esta semana trabajará en la tarea X y que debería hacerlo en Y horas?

More Interesting

¿Qué se entiende por desarrollador de software?

¿Qué tan importante es la universidad si quiero ser desarrollador de software?

Para convertirme en un gran desarrollador de software, ¿debería comenzar con algoritmos o debería comenzar la programación primero?

¿Qué es el principio de responsabilidad única y por qué es importante en el desarrollo de software?

¿Qué es mejor, aprender diseño web o desarrollo de software?

Desarrolladores de software profesionales: ¿cuál fue el código de código más feo y provocador que escribiste que te sorprendió al trabajar bien?

¿Cuáles son las mayores dificultades cuando se trabaja con desarrolladores de software?

¿Por qué la gente dice que los proyectos de Android son pequeños y que a los desarrolladores se les paga menos en comparación con los de Java, SAP, etc.?

¿Qué porcentaje de desarrolladores de software profesionales han contribuido a proyectos de código abierto?

¿Cuál es la mejor computadora portátil económica para desarrolladores?

¿Qué habilidades / idiomas debo aprender para convertirme en desarrollador de software o arquitecto de software?

¿Cuáles son las diferencias en el crecimiento profesional como desarrollador de software y probador de software?

¿Es apropiado desarrollar un producto de TI pero no somos dueños de la unidad de desarrollo de software?

¿Podré encontrar empleo como desarrollador de software junior si completo el campo de entrenamiento en línea Ruby on Rails en la Academia Tealeaf?

¿Por qué la vida es tan difícil ya que no importa cuánto aprenda, todavía no puedo convertirme en un buen desarrollador de software?