Adsence

martes, 19 de abril de 2016

Por que es dificil construir software de calidad


Dentro de la calidad de software existen dos procesos complementarios:

Verificacion.-

La verificacion se trata de asegurar que el software (codigo) esta correcto con todo lo que implica, pruebas de diferentes clases, automatizacion de pruebas etc.

Validacion

La validacion asegura que el producto es correcto, es decir todos los requerimientos funcionales y no funcionales debe ser cubiertos.

Entonces para comprobar la calidad del software no es suficiente que no haya bugs, sino que la aplicacion haga lo que se requeria es decir funcione como debia , sin embargo ahi radica principalmente el problema: como saber todo lo que aplicacion debe hacer? , es decir conocimiento claro del dominio de negocio., y mas aun Cuales son los requerimientos no funcionales? es decir los requerimientos como calidad, rendimiento, como saber el crecimiento de una aplicacion a futuro, son cuestiones basicamente imposibles de saber su totalidad a un tiempo determinado, para este caso lo que promulgan las metologias agiles por ejemplo como tomar una desicion lo mas tarde posible, el continuo refactoring para poder tener un control en el crecimiento y tener unos niveles de deuda tecnica aceptable es lo mas cercano a la realidad de la industria.

Por cierto no hay que dejar de lado que el software es desarrollado por personas esto quiere decir mientras mas altos skills tenga el equipo mejor calidad de codigo se puede generar sin embargo no somos perfectos y requerimos aprendizaje continuo.

El software tiene una complejidad creciente y mucha presión respecto al coste y los tiempos de entrega, factores que pueden complicar conseguir un nivel de calidad razonable. La ingeniería del software como disciplina introduce procesos, técnicas y herramientas que hacen más manejable los proyectos de desarrollo y mejoran la calidad del software final. Pero. como dice el chiste, “Dios y yo tenemos un acuerdo, él no hace software y yo no hago milagros“.