Hay un debate clásico en los proyectos de desarrollo de software, entre dedicar tiempo a mejorar la calidad del código versus concentrarse en entregar más características valiosas. En general, la presión por entregar más características es dominante al tomar esta decisión, llevando a que muchos desarrolladores externen no tener el tiempo suficiente para trabajar en la arquitectura y en la calidad del código.
La calidad interna sí es importante.
El software puede percibirse por los usuarios como una caja negra que recibe información, la procesa y nos da un resultado esperado de acuerdo con la tarea que el programa automatiza, donde los detalles del ¿cómo? se implementó el proceso son completamente desconocidos y por lo tanto en ocasiones es difícil percibir el nivel calidad con que fue construido, a esto podemos llamarlo “calidad interna” y lo notamos cuando sucede algo inesperado o alguna falla se presenta.
Ya que la calidad interna es algo que los clientes o los usuarios no pueden ver, ¿nos debería importar?
Un usuario puede juzgar si quiere pagar más por una mejor interfaz de usuario, ya que resulta ser “tangible”, pueden acceder a dicha interfaz y evaluar si es lo suficientemente más cómoda como para pagar el costo adicional.
Pero un usuario no puede ver la estructura modular interna del software, y mucho menos evaluar cuál es mejor en cuanto a funcionamiento, ¿Por qué pagar más por algo que a simple vista no tiene efecto? y siendo este el caso, ¿por qué los desarrolladores de software deberían usar su tiempo en mejorar la calidad interna de su trabajo?
Facilita la mejora del software.
¿Por qué a los desarrolladores de software les importa tanto la calidad interna?
El cambio es la única constante en los procesos de negocio y los programadores pasan la mayor parte del tiempo modificando código. Incluso en un sistema nuevo, casi toda la programación ocurre en el contexto de una base de código existente.
Cuando se requiere agregar una nueva característica al software, la primera tarea consiste en ver cómo esta nueva característica encaja en el flujo actual de la aplicación. Luego es necesario cambiar el flujo para permitir incorporar la característica.
Con frecuencia se usan datos que ya existen en la aplicación, por lo que se necesita comprender lo que representan los datos, cómo se relacionan con los que están a su alrededor, y cuales son necesarios para agregar la característica nueva.
Una de las principales características de la calidad interna es hacer más fácil el entender cómo funciona una aplicación, para poder ver cómo agregar nuevas cosas y con ello reducir el esfuerzo necesario para la implementación de un cambio que modifique el funcionamiento o agregue valor.
Si el software está bien dividido en módulos separados identificables y documentados, no será necesario por parte del programador leer las 500.000 líneas de código, para encontrar unas pocas de un par de módulos donde es necesario implementar una modificación. También, usar nombres claros permitirá entender rápidamente lo que hacen las distintas partes del código facilitando su adaptación y reduciendo significativamente el esfuerzo necesario para liberar nuevos requerimientos.
Software cada vez más completo.
Aquí es donde empezamos a ver porqué la calidad interna le importa a los usuarios y a los clientes. Una mejor calidad interna se traduce en que agregar nuevas funciones será más fácil, y por lo tanto más rápido y barato, haciendo que el software sea más completo.
Es importante considerar que un código bien diseñado e implementado (con un mejor nivel de calidad interna) funcionará mejor ante el posible crecimiento horizontal, es decir, cuando el negocio crezca y se tengan muchos más usuarios usando la misma ventana. Un buen programador habrá hecho una implementación que optimice los recursos permitiendo que el producto de software sea más escalable.
Más barato y fácil de producir.
Para resumir:
-
Descuidar la calidad interna lleva a una rápida acumulación de errores de código.
-
Estos errores ralentizan el desarrollo de nuevas características.
-
Cuando el nivel de calidad interno es alto, mantiene los errores o complicaciones al mínimo, permitiéndole a los equipos agregar nuevas características con menos esfuerzo, menos tiempo y menos costo al no tener que voltear atrás a corregir características liberadas anteriormente.
Si no se cuida la calidad interna del software, le hace la vida más difícil a los desarrolladores, y le cuesta más dinero a la empresa y por consiguiente a los clientes.
La calidad interna reduce el costo de las características futuras, por lo que asignar tiempo en desarrollar software de buena calidad y escribir buen código en realidad reduce significativamente el costo.
En Q&K nuestro equipo está altamente capacitado para implementar soluciones a la medida de tu empresa, nos complacerá atender todas tus consultas acerca de cómo iniciar un proyecto de desarrollo de software a la medida. Si necesitas alguna asesoría no dudes en contactarnos y con gusto le atenderemos.