Por qué nunca nada es obvio: el arte de la comunicación en el desarrollo de software

Publicado: 2020-10-22

Todos tenemos que comunicarnos entre nosotros todos los días. En la vida privada, en la escuela, en el trabajo. En todas partes y todo el tiempo. Algunos tienen mejores habilidades de comunicación que otros, pero al final del día, todos cometemos errores de vez en cuando.

Si bien algunos errores de comunicación tienen un impacto menor en nuestras vidas (no es el fin del mundo si pides una cerveza sin alcohol;)), algunos pueden tener consecuencias mayores (señalar el diente equivocado para extraerlo). Los malentendidos en la comunicación en el desarrollo de software son más bien estos últimos y pueden tener implicaciones financieras.

Uno de los problemas más comunes que todos tenemos es asumir que otra persona puede leer nuestra mente. Todos somos culpables de esto alguna vez. ¿Alguna vez has escuchado esta frase: '¡Era obvio!'? Apuesto a que tienes.

No creo en la obviedad objetiva. Creemos que algunas cosas son obvias para todos, pero lo que es claro para una persona puede no ser tan evidente para otras. Para lograr una comunicación efectiva en el desarrollo de software dejemos de creer en la lectura de la mente y digamos lo que tenemos en mente.

¿Por qué es más fácil decirlo que hacerlo? Analicemos primero el proceso de comunicación.

elementos de comunicacion

Hace más de 50 años, Roman Jakobson presentó un modelo de comunicación que puede ser muy útil para analizar problemas de comprensión mutua. Echa un vistazo al diagrama:

Está claro que la comunicación es algo más que un mensaje entre un emisor y un receptor. El contexto, el canal y el código influyen en el mensaje y pueden cambiar la recepción de las palabras. Incluso si dos de los factores están en su lugar y falta uno, se producirán problemas.

Dado que estamos hablando de comunicación en el desarrollo de software en específico, debemos analizar qué sucedería durante las sesiones de refinamiento del proyecto si perdiéramos alguno de los factores mencionados anteriormente. En otras palabras, echemos un vistazo más de cerca a la importancia de la comunicación en la gestión de proyectos.

Proporciona siempre contexto

El contexto proporciona una explicación del panorama general en torno a cualquier problema. Es posible que uno no vea el sentido de decirle a un desarrollador de back-end sobre el grupo objetivo del producto. Puede parecer que el equipo de desarrollo solo necesita saber lo que se requiere de su lado, y no las razones comerciales detrás de esto. Nada mas lejos de la verdad.

La comunicación en el desarrollo de software no se trata solo de requisitos funcionales. Cuanto más contexto pueda proporcionar al equipo, mejor. La introducción adecuada al concepto del producto puede llevar mucho tiempo y parecer una pérdida de tiempo y dinero pero, a la larga, ayuda a evitar una implementación técnica deficiente.

Si el equipo sabe cuáles son los planes a largo plazo para el producto, pueden proporcionar soluciones técnicas más adecuadas. Incluso si no desea implementar códigos de promoción en la primera versión de su aplicación móvil de entrega de alimentos, es bueno informar a los programadores de software que vendrá en la próxima versión.

Para asegurarse de haber proporcionado el contexto completo, pregúntese si ha compartido toda la información que tiene. Si se encuentra pensando 'esto no es importante para los desarrolladores, no necesitan saberlo, al menos pregúntele al equipo si esta información podría ayudarlos. Es posible que se sorprenda de los factores que otros pueden encontrar cruciales.

Usa el canal sabiamente

El canal es un factor de comunicación comúnmente olvidado en la gestión de proyectos. Hoy en día, cuando los equipos de desarrollo trabajan muy a menudo desde diferentes países, cuando el backend está en la India (ahora, hasta el 85 % de las empresas estadounidenses subcontratan la mayoría de sus operaciones a la India), el desarrollo del frontend está en Polonia y el propietario del producto está en los EE. UU. , todos usamos muchas herramientas diferentes para comunicarnos.

Elegir el canal adecuado y usarlo de manera efectiva puede tener un impacto. Las conferencias telefónicas, los correos electrónicos y los chats son excelentes y nos permiten estar en contacto constante. Pero también crean nuevas formas de malinterpretar el mensaje.

No podemos pretender que chatear en línea es lo mismo que tener conversaciones en la misma sala con el equipo. Lo que podemos hacer es tener en cuenta las limitaciones de la comunicación remota e intentar superarlas.

Consejos para una comunicación remota efectiva

  1. Encienda la cámara mientras mantiene una conversación a través de llamadas de conferencia. Dependiendo de la situación, la comunicación no verbal puede representar más del 50% del mensaje. Es mucho más fácil de atrapar si estás siendo sarcástico cuando otros pueden verte, por ejemplo. También puedes ver las reacciones en tiempo real de tus interlocutores. Eres capaz de notar si los demás están confundidos con tus palabras o no.
  2. Use salas separadas en el chat para categorizar las conversaciones. Cuando el proyecto es complejo, la comunicación en el desarrollo de software tiende a complicarse también y constantemente aparecen nuevos temas de discusión. Las salas separadas le permiten mantener los mensajes organizados y llegar a los destinatarios adecuados con menos problemas.
  3. Etiqueta a los destinatarios de los mensajes mientras escribes a través del chat. No es fácil seguir cada conversación. Le conviene asegurarse de que se notifique a la persona a la que le escribe.
  4. En la conversación escrita, use emoticonos cuando sea adecuado. No use demasiados, pero hágale saber a la audiencia que está bromeando sobre el despliegue del viernes por la tarde.

Revisión del código de comunicación

Al comienzo del trabajo, debe establecer un código común para comprender los términos principales de la misma manera. Incluso los 'obvios'. Por ejemplo, tenemos un requisito: 'Como usuario, puedo hacer un pedido solo por la mañana para que el producto elegido se envíe el mismo día'. Parece claro, ¿no?

Bueno... Entonces, ¿qué significa exactamente la mañana en esta función? ¿Cuándo comienza la mañana? ¿Cuándo sale el sol oa una hora exacta, es decir, las 7:00 a. m.? Si a las 7:00 a.m., ¿qué zona horaria tienes en mente?

La comunicación en la gestión de proyectos, especialmente en TI, debe ser muy clara. No hay lugar para adivinar. En nuestro caso, puede causar una situación en la que los productos no se pueden pedir antes de las 10:00 (cuando el desarrollador principal se despierta y eso es lo que significa la mañana para él) y el propietario de la aplicación pierde dinero por la falta de pedidos de madrugadores.

Mejores prácticas del código de comunicación común

  1. Crear un glosario con términos de uso común. Ayuda al comienzo del proyecto y es extremadamente útil para que los nuevos miembros entiendan el idioma que habla el equipo de desarrollo.
  2. También es bueno preguntarle al receptor cómo entiende el requisito o la frase. Y no hablo de inútiles: '¿Está todo claro?'. Se específico. Pregunta por los detalles. Asegúrese de que se le entienda. Haga una revisión del código de comunicación.

    Veamos nuestro ejemplo una vez más: para llegar a un entendimiento común del término “mañana”, pídale a la persona que lo usó que lo reformule.
  3. La regla general es que es mejor ser repetitivo en la comunicación en el desarrollo de software que dejar espacio para los juegos de adivinanzas.

El problema de la pericia

Además de todos los métodos de comunicación en la gestión de proyectos mencionados anteriormente, hay una cosa más crucial que es bueno tener en cuenta al analizar los requisitos del software. No importa si es una startup o un producto corporativo, en la mayoría de los casos, antes de que un cliente vaya a la casa de software, pasa bastante tiempo pensando en su producto. Cuanto más tiempo dedican a ello, más experiencia adquieren en el tema.

Cuando eres un experto, es fácil olvidar que no todos los que te rodean tienen el mismo conocimiento del dominio que tú. Esto significa que los problemas que son obvios para usted no son tan claros para el equipo de desarrollo con el que está hablando.

Cómo evitar el problema de la experiencia

  1. Da un paso atrás al comienzo de tu viaje con el producto y explica al equipo de desarrollo todas las decisiones que has tomado. Cuando entiendan cómo empezó todo, encontrarán mejores soluciones técnicas o incluso llenarán los vacíos en su forma de pensar.
  2. Permita que el equipo haga tantas preguntas como sea necesario. No hay exageración en el proverbio de que no hay preguntas tontas.

Cómo comunicarse efectivamente en el equipo de ingeniería de software

¡Lo más claro posible! No hay lugar para la falta de comunicación ya que las consecuencias pueden ser dolorosas. Recuerda que no existe una obviedad objetiva y es mejor repetirte varias veces que perderte un dato importante.

Icono de talleres

Convierte tu idea en un producto digital excepcional

Vamos a trabajar juntos

Tenga en cuenta los tres factores de las comunicaciones y verifique dos veces para ver si su mensaje se entendió como lo pretendía. Con el tiempo, la comunicación en el desarrollo de software será más fácil para usted y explicar los requisitos correctamente ya no será un problema.

Si está buscando una casa de software que sea experta tanto en el desarrollo de aplicaciones como en la comunicación, ¡no busque más!

¡Simplemente hable con nuestros especialistas de Miquido y haga realidad sus ideas!