Software Delivery: La entrega de valor en el desarrollo de software
Te dispones a entregar un incremento de tu producto de software. Cuando lo haces, comentas con tus compañeras lo bien que os sentís al haber entregado valor a las usuarias y el impacto positivo que estáis generando al hacerlo.
El valor es una de esas palabras que repetimos mucho en el desarrollo de software: entrega de valor, el valor de negocio, maximizar el valor, etc. pero ¿qué es realmente eso del valor?
Hay algunos tipos de valor que son fáciles de ver y medir, como el valor económico, pero cuando entregamos software ¿por qué decimos que estamos entregando valor? ¿cómo se visualiza y mide ese valor?
Son preguntas que me hago, para las que probablemente no te daré una respuesta clara, pero sí que te puedo contar cómo me he acercado al valor a través otro concepto: la utilidad.
El concepto de utilidad
La utilidad la definiría como el grado en el que un producto, servicio o actividad satisface las necesidades, motivaciones e intereses de una persona o grupo de personas.
Cosas a destacar en esta definición:
- Se trata de un grado por lo que puede cubrir tus intereses en mayor o menor medida. Por ejemplo, a medida que evolucionamos un producto de software, este puede ir dando mayor utilidad a las usuarias.
- La utilidad puede ser negativa, es decir, puede que perjudique tus intereses, como por ejemplo, si una aplicación te cobra cuando no debe.
- Depende de cada persona, es decir, solo tu sabes en qué grado una determinada actividad está satisfaciendo o perjudicando tus intereses. Tu eres quien conoce tus intereses, y el grado de felicidad y sufrimiento que te produce algo.
Esto último es uno de los motivos que hacen que el desarrollo de software sea tan complejo, porque además de las usuarias, somos más personas las que participamos en la creación y explotación del producto, y también tenemos nuestros propios intereses a satisfacer.
¿Desarrollamos para dar valor a las usuarias?
No desarrollas productos de software solo para dar valor a las usuarias. Si maximizar el valor de las usuarias fuera tu único fin, podrías acabar trabajando 16 horas al día y sin cobrar nada. Estarías entregándoles el máximo valor, pero no parece demasiado inteligente ¿verdad?.
Y es que no podemos negar nuestros propios intereses, los intereses de cada persona de la organización, de los socios, de los inversores, etc. cada organización es única y tiene unos actores y una forma de organizarse diferente, pero en el fondo, todos tenemos unas motivaciones, necesidades e intereses que nos gustaría cubrir.
Y ahí está la gran complejidad, porque maximizar los intereses de alguien puede llevar a perjudicar gravemente los de otras personas. Nuestras decisiones nos llevan a conflictos de intereses y a dilemas morales que no son fáciles de resolver.
El dilema de la baja de suscripciones
Existen plataformas en las que con un par de clicks ya estás suscrito y aportando dinero a una organización. Ambas partes estáis satisfechas porque la suscripción está cubriendo vuestros intereses, pero ¿qué pasa cuando te quieres dar de baja?
La experiencia de usuario se vuelve horrible, un proceso interminable, con muchas pantallas y bifurcaciones, requisitos de solo poderte dar de baja desde el ordenador, y un sin fin de obstáculos.
La organización se ha encontrado ante un dilema, la de tener que cubrir los intereses de los clientes (darse de baja) y para ello tener que perjudicar los suyos (la cuenta de resultados).
Cada organización es responsable de cómo solventa estos dilemas morales, tanto hacia los actores externos (inversores, proveedores, usuarios, clientes, etc.), como internos (socios y/o empleados).
No hay una respuesta fácil ni ideal, cada decisión tiene su contexto y sus consecuencias, y evaluar constantemente las decisiones y sus implicaciones es nuestro trabajo para construir mejores productos y organizaciones más justas.
Por cómo funciona el mundo, hay cosas que no vamos a poder cambiar en el corto plazo, pero con nuestras decisiones y acciones, podemos caminar hacia situaciones mejores, tal y como comentábamos en el pragmatismo idealista.
¿Qué cosas te aportan utilidad?
Te listo aquí algunas cosas que me aportan utilidad cuando estoy contratado como desarrollador de software y technical coach:
- El salario
- La flexibilidad horaria
- La reducción de jornada
- Ayudar al crecimiento de otras personas
- Definir y conseguir objetivos comunes
- Desarrollar y entregar software a las usuarias
- Explorar y practicar nuevas formas de hacer software
- Las relaciones sociales
- El crecimiento profesional
- La sostenibilidad de la organización
- El aporte a la sociedad del producto
Por ejemplo, no he mencionado los beneficios económicos de la empresa, porque como asalariado no me da una utilidad directa. En cambio sí que menciono la sostenibilidad de la organización, para que así todas las partes, yo incluido, podamos cubrir en mayor o menor medida nuestros intereses.
Cuando programo en mis ratos libres, hay otras cosas que me aportan utilidad:
- Programación hedonista, es decir programar por placer, aunque lo que construya no sirvan para nada
- Práctica deliberada para mejorar mis habilidades
- I+D en busca de nuevas formas de hacer software
- Solventar mis propias necesidades, automatizando procesos por ejemplo
Si bien me encanta la programación hedonista, sé que eso choca con los intereses de quien me contrata, por lo que no es algo que haga en el trabajo. En función de las limitaciones del contexto, obtendremos utilidad a través de diferentes actividades.
El contexto en este mundo que vivimos puede ser muy duro e injusto y a veces a lo máximo que puedes aspirar es a hacer algo que reduzca un poco tu sufrimiento.
¿Es la utilidad lo mismo que el valor?
Si lo que he descrito hasta ahora como utilidad tú le llamarías valor, entonces sí, son lo mismo.
El concepto de utilidad, más allá de la definición del diccionario, lo conocí a través de la filosofía moral llamada Utilitiarismo. Es un concepto más general aplicable más allá de nuestro contexto socio-económico actual, para lo cual el concepto de Business Value lo intenta abordar de forma más concreta.
Independientemente de si le llamamos utilidad o valor y cómo lo definamos, la propiedad subjetiva que tiene el valor, lo hace muy difícil de cuantificar, por lo que creo que es más útil enfocarnos en ser capaces de encontrar y resolver los conflictos morales y de intereses entre las diferentes partes:
- Entre empleado y empleador
- Entre organización y usuarios/clientes
- Entre empleados
- Entre compañeras de equipo
- Entre áreas de la organización
- etc.
Dejar claro que no me considero utilitarista, porque no creo que a día de hoy seamos capaces de cuantificar las consecuencias de todas las posibles acciones en un contexto determinado, y además hacerlo sin los sesgos e intereses de quien los cuantifica.
Lo que sí que creo que podemos hacer es estimar el valor y el riesgo para tomar mejores decisiones, un tema que está relacionado con la teoría de juegos y que dejo para otro capítulo.
El software delivery y la entrega de valor
Volvamos al inicio. Estás iterando el producto y entregando una nueva evolución del mismo a tus usuarios. Te sientes bien porque:
- Has cubierto los intereses de las usuarias
- Has cubierto los intereses de la organización
- Has cubierto los intereses de tus compañeras
- Has cubierto tus intereses
No te olvides del valor negativo, de cuando perjudicamos a los actores anteriores cuando construimos software que falla o que no es útil para nadie, tema que trataremos en el próximo artículo.
Y acuérdate siempre de pregúntate si lo que haces te aporta suficiente valor a ti, porque mejorar la vida de otras personas no tiene sentido si en el camino te estás viendo perjudicado.
✉️ Apúntate a Reflexiones de Software
Recibe mis reflexiones más significativas sobre desarrollo de software, solo cuando surjan.
👷 Por aquí irán los comentarios y esas cosas. Mientras tanto puedes: