Product Crafter Emilio Carrión

Los desarrolladores deben saber más del negocio que negocio

Lo más importante es saber para qué desarrollamos

Cuando creamos software hay una cosa realmente importante que hay que tener en cuenta: para qué lo hacemos.

Y la realidad es que no desarrollamos y creamos sistemas en el vacío, lo hacemos para cubrir la necesidad de un usuario, para aportar valor a un stakeholder o para aportarnos valor a nosotros mismos. El centro de todo es el por qué, por lo tanto, entender el objetivo final de nuestro trabajo hace que podamos hacerlo de la mejor manera posible.

Tenemos que convertirnos en expertos del negocio

El primer paso para entender el negocio es entender las necesidades que está cubriendo. Eso es entender al usuario a la perfección.

Como ya se dijo en el primer principio del manifiesto ágil:

Nuestra máxima prioridad es satisfacer al cliente mediante la entrega temprana y continua de software valioso.

Y satisfacer al cliente es entenderlo, saber qué es lo que necesita (que no lo que quiere) y ser capaz de comprender y analizar las razones detrás de ello. Esto facilita enormemente la identificación de los requisitos del software de una manera más precisa y relevante.

Saber sobre el negocio amplia la visión de los desarrolladores.

Cuando los desarrolladores cogemos conciencia de negocio dejamos de ser implementadores de funcionalidades y nos convertimos en compañeros que reman en la misma dirección. Si conocemos las métricas y los desafíos a los que se enfrenta el negocio, es más fácil crear soluciones de software que no solo cumplan con los requisitos técnicos, sino que también aborden los desafíos a alto nivel. Esto conduce a soluciones más efectivas y orientadas a resultados.

Saber sobre el negocio es hablar un mismo idioma

Los desarrolladores no trabajamos solos en un trastero aislados del resto del equipo, interactuamos con profesionales de otras áreas como procesos, marketing, finanzas, etc. Comprender el lenguaje y los objetivos de estas áreas facilita la comunicación y colaboración efectiva, mejorando la eficiencia del equipo. Si no hablamos un mismo idioma (el de nuestro negocio) es imposible entenderse.

Al tener conocimientos sobre el negocio, podemos comunicarnos de manera más efectiva con partes interesadas no técnicas, traduciendo la jerga técnica en términos comprensibles para aquellos que se centran en los otros aspectos.

Además, el lenguaje ubicuo debe trasladarse al código y al software que desarrollamos. Si cuando hablamos sobre un concepto está representado en todos los sitios de la misma manera será más fácil comunicarnos y evitar malentendidos.

Saber sobre el negocio es saber tomar las mejores decisiones

Un conocimiento profundo del negocio nos permite también tomar decisiones informadas durante el proceso de desarrollo. Podemos evaluar el impacto de las decisiones técnicas en los resultados y tomar medidas proactivas.

Además, entender el negocio nos permite agregar valor extra a nuestras creaciones. Podemos proponer características y mejoras que beneficien directamente a los usuarios y, por ende, al negocio en general.

Y conocer los objetivos, la visión y la misión del negocio también nos da la oportunidad de diseñar soluciones que no solo satisfacen las necesidades actuales, sino que también son escalables y pueden evolucionar para enfrentar desafíos futuros. Así, los desarrolladores podemos alinear nuestros esfuerzos para contribuir directamente a la visión y misión de la organización.

Saber sobre el negocio es satisfacer

Y es que al final desarrollar software es satisfacer. Al alinearnos con los objetivos de negocio y comprender las necesidades del cliente, los desarrolladores podemos ofrecer productos que satisfagan mejor las expectativas del usuario final, resultando en una mayor satisfacción del cliente.

Cómo convertirnos en expertos del negocio

A continuación, os comparto algunas de formas para acercarnos más a negocio y que me han ayudado a mí y a los equipos en los que he trabajado.

  • Fomentar el ownership: Los desarrolladores tienen que asumir la propiedad de los productos o proyectos en los que trabajan. Esto implica que no solo se centren en escribir código, sino que también se responsabilicen de su éxito y comprendan en profundidad de cómo el producto contribuye a los objetivos del negocio. Al adoptar la mentalidad de ownership, los desarrolladores se sentirán más comprometidos y conectados con el impacto real de su trabajo en el rendimiento general de la empresa.
  • Formación en el negocio: La mejor forma de conocer el negocio es ser formado sobre ello. Dar oportunidades de formación sobre el negocio a los desarrolladores y hacer que puedan participar en sesiones de capacitación, seminarios o workshops les ayudará a conocer cómo funciona la empresa, sus metas y cómo el software contribuye a esos objetivos.
  • Participación en reuniones comerciales: Que los desarrolladores asistan a reuniones de ventas les permitirá escuchar de primera mano las metas y desafíos del negocio. Incluirlos también en discusiones estratégicas fomentará su comprensión y compromiso.
  • Rotación de roles: Considera la posibilidad de rotar a los desarrolladores en roles que los acerquen al negocio. Por ejemplo, podrían trabajar temporalmente en el servicio de atención al cliente o en la fase de ventas para comprender mejor las necesidades y expectativas de los usuarios finales. En Mercadona Tech por ejemplo tenemos la Colmena Experience y el ACMO Experience (atención al cliente) donde pasamos todo un día conociendo a nuestros usuarios.
  • Retroalimentación del cliente: Ofrece a los desarrolladores recibir comentarios directos de los usuarios o clientes. Escuchar las experiencias y desafíos del usuario final puede motivar a los desarrolladores y ayudarles a comprender mejor el impacto de su trabajo.
  • Establecimiento de metas claras: Asegúrate de que los desarrolladores comprendan cómo las metas del proyecto se alinean con los objetivos del negocio. Esto proporciona un propósito claro y ayuda a que vean la relevancia de su trabajo.
  • Comunicación abierta y transparente: Fomenta una cultura de comunicación abierta donde se comparta información sobre el estado del negocio y los objetivos estratégicos. Una comunicación transparente ayuda a los desarrolladores a comprender la dirección general y su contribución a esa dirección.
  • Visión del producto: Proporciona a los desarrolladores una visión clara del producto final y cómo encaja en el mercado. Esto les dará un contexto más amplio y les ayudará a comprender la importancia de sus contribuciones individuales.
  • Feedback regular: Proporciona retroalimentación regular sobre cómo el trabajo de los desarrolladores impacta en los resultados del negocio. Reconoce y celebra los logros, y también brinda orientación constructiva cuando sea necesario.
  • Creación de equipos multidisciplinarios: Fomenta la colaboración entre equipos técnicos y no técnicos. Al trabajar junto con profesionales de otras áreas, los desarrolladores pueden ganar una comprensión más completa de cómo sus habilidades técnicas contribuyen al éxito global de la empresa.

Cuándo los desarrolladores conocemos y nos implicamos más en el producto y en el negocio somos capaces de aportar muchísimo más valor.

TL;DR

El desarrollo de software va más allá de la programación. Los desarrolladores deben ser expertos del negocio para ofrecer soluciones efectivas. Esto implica comprender a fondo al usuario, hablar el mismo idioma que otros equipos, y tomar decisiones informadas que beneficien al negocio.

Para lograr esto, se sugiere formación en el negocio, participación en reuniones comerciales, rotación de roles, retroalimentación directa del cliente, metas claras, comunicación abierta, visión del producto y equipos multidisciplinarios.

En última instancia, esta conexión estrecha no solo garantiza el éxito a corto plazo, sino que también permite diseñar soluciones escalables que contribuyan a la visión y misión de la organización, satisfaciendo las expectativas del cliente.