Cómo crear software confiable

Article header image
📆 March 1st, 2022

En el contexto de la ingeniería de software, la calidad del software mide cuán bien está diseñado el software (calidad de diseño) y cuán bien el software se ajusta a ese diseño (calidad de conformidad). A menudo se describe como la "idoneidad para el propósito" de un software.

Hace un año, cuando pensamos en tener nuestra propia empresa de software, sabíamos que la calidad debería ser parte de nuestro ADN. Pero como la calidad tiene muchas definiciones y significados, necesitamos describir qué es la calidad para The Crafters Lab.

Calidad vs. Confiabilidad

Yendo más allá del significado de calidad, en The Crafters Lab pensamos que debiamos profundizar en este término y analizar si esta palabra es suficiente para reflejar lo que el mercado espera de un buen producto digital.

Está claro que el término calidad no es suficiente. Necesitamos más precisión porque no queremos un producto que simplemente cumpla con las especificaciones. Queremos un producto que evolucione a medida que evolucionan las especificaciones. Hablemos entonces de productos confiables.

Calidad y confiabilidad son términos estrechamente relacionados pero no son lo mismo. La calidad se trata de la conformidad con las especificaciones. La confiabilidad tiene un componente de durabilidad a lo largo del tiempo. Debido a la forma en que se construyen los proyectos de software en la actualidad, la calidad puede cambiar con el tiempo debido a que las especificaciones también cambian. Pero debemos mantener la confiabilidad en el producto.

Como equipo, creemos sinceramente en esta idea y tratamos de hacerla comprensible para todas las personas con las que trabajamos. Es difícil admitir que muchos equipos de software a menudo no entienden que la velocidad tiene un valor mínimo si falta la confiabilidad. Es nuestra responsabilidad como expertos guiar al cliente sobre la importancia de establecerlo como una pieza fundamental y transversal.

De la Confiabilidad a la Felicidad

Cuando una palabra adquiere un significado real, todo cambia. Porque la confiabilidad tiene un gran impacto en la mentalidad de construcción del producto y en cómo trabajan los desarrolladores de software.

A largo plazo es una inversión que no solo se traduce en especificaciones cumplidas, sino en felicidad para todos. Las partes interesadas, los ingenieros y los clientes confiarán en lo que están construyendo y utilizando. Cuando esto sucede, no hay interacciones negativas con falta de confianza y resentimiento.

Felicidad para el cliente. Porque tener un producto que se rompe y no es útil no tiene sentido. Además, a medida que el producto crece, si no hay una base sólida de confiabilidad, será cada vez más difícil entender por qué agregar una etiqueta rompe la página principal.

Felicidad para el equipo de desarrollo de software. La calidad no es solo una cuestión de confiabilidad para el cliente, sino también para el equipo de ingeniería. Es la base para mejorar la experiencia del desarrollador. Hemos trabajado en empresas que no desplegaban los viernes, donde los días de despliegue se marcaban con sangre en el calendario o donde la persona a cargo de los despliegues no podía dormir la noche anterior debido a la ansiedad.

Felicidad para las partes interesadas. Saben que pueden agregar y modificar funciones adaptándose al mercado sin tener que pensar que cada cambio afectará a los clientes, desbloqueando una mentalidad de entrega rápida.

La confiabilidad es una carrera en el tiempo

No importa si estás utilizando una visión ágil o no cuando piensas en la confiabilidad. Todos los clientes quieren tener un producto confiable. Pero siempre la clave es mantener la calidad en el tiempo.

El agilismo es una visión centrada en el cliente para construir un producto. Hay un ciclo de retroalimentación corto donde el cliente influirá en las acciones. Por lo tanto, todo el equipo debe contribuir a tener la confiabilidad como columna vertebral.

Pero lo mismo sucede con otras culturas, donde el producto necesita ser mantenible y sostenible. A medida que el producto evoluciona, la lógica es más difícil de entender y se deben considerar más casos extremos. Debido a que los cambios afectan a todos, todos deben estar implicados en la confiabilidad.

La confiabilidad no puede ser propiedad de una persona o equipo aislado.

La Confiabilidad Debe Ser Parte de la Cultura

Si alguien te pregunta cuál es la característica más importante de tu producto, seguro que no dirás "que funcione". Es algo que todos esperan, ¿pero es real?

¿Recuerdas esto?

[@portabletext/react] Unknown block type "youtube", specify a component for it in the `components.types` prop

Pero si eres de los que piensan que hace algunos años teníamos un mejor software... ¿qué tal esto?

[@portabletext/react] Unknown block type "youtube", specify a component for it in the `components.types` prop

La confiabilidad debe involucrar a todos en el equipo. Debemos evitar centrarnos solo en roles de prueba específicos porque el enfoque debe ser una cultura de calidad. Automatizar la calidad y adpotar un enfoque colaborativo son las claves para un software confiable y de calidad.

Cuando la confiabilidad es parte de la cultura del equipo, todo el equipo comparte la misma responsabilidad a través de ella. La responsabilidad crea una satisfacción positiva a través los equipos y es uno de los motivadores más importantes en los individuos, tal y como apunta Frederick Herzberg en su teoría de los dos factores.

La confiabilidad es una parte esencial de un equipo de alto rendimiento y es especialmente relevante en entornos ágiles donde los cambios son clave para crear productos digitales que cumplan las expectativas de los clientes.

Rubén Sánchez

Miembro fundador de The Crafters Lab

Rubén es desarrollador de software y miembro fundador de The Crafters Lab.

Hablemos y empecemos a construir algo único!

© 2023 The Crafters Lab. Todos los derechos reservados.