El software es una de las herramientas más útiles en los procesos de las organizaciones, cada día se demanda más y se solicita que sea desarrollado en plazos cada vez más cortos. Con el objetivo de que el software sea seguro, óptimo y satisfaga los requerimientos del cliente, se necesita contar con procedimientos y herramientas que permitan evaluar y determinar la calidad y mejora del proceso de software.
En respuesta a esta necesidad, varias empresas e investigadores han propuesto estrategias de modelado, métodos, guías e incluso normas y estándares de calidad que apoyan el desarrollo y/o uso de un producto de software que permita evaluar, si realmente el software desarrollado tiene un nivel de calidad adecuado durante su ciclo de vida. La mejora de procesos significa comprender los procesos existentes y cambiarlos para aumentar la calidad del producto o reducir el tiempo y los costos de desarrollo. Se utilizan dos enfoques muy diferentes para mejorar y cambiar los procesos:
- El enfoque de madurez de proceso se fundamenta en la implantación de las buenas prácticas de la ingeniería de software, para la mejora continua de los procesos y de la gestión del proyecto de desarrollo de software. El objetivo principal de este enfoque es mejorar la calidad del producto entregado y de los procesos involucrados.
- El enfoque ágil se fundamenta en el desarrollo iterativo y la disminución del exceso o sobrecargas de trabajo para lograr una pronta entrega de las funcionalidades del software sujeto a estar en un entorno cambiante de los requerimientos.
Los defensores de cada uno de estos enfoques son generalmente escépticos cuando se trata de reconocer los beneficios del otro.
Medición del software
Las mediciones del software son datos cuantitativos sobre el proceso de software, como el tiempo que se tarda en realizar una determinada actividad en el proceso. Las mediciones de los procesos se pueden utilizar para evaluar si la eficiencia de un proceso ha mejorado o no. Por ejemplo, puede realizar un seguimiento del esfuerzo y el tiempo dedicados a los tests o pruebas.
Las mejoras efectivas en el proceso de prueba deberían reducir el esfuerzo o el tiempo de prueba. Sin embargo, las mediciones del proceso por sí solas no pueden usarse para determinar si la calidad del producto ha mejorado. Los datos de calidad del producto también deben recopilarse y correlacionarse con las actividades del proceso. Las mediciones permiten supervisar, entender, comprobar los proyectos de desarrollo y mantenimiento del software. El dominio de las métricas del software se puede dividir en:
- Respecto del proceso
- El respecto del producto
- Respecto del proyecto
Las métricas de proceso
Hay tres tipos de métricas de proceso que se pueden recopilar:
- El tiempo necesario para completar una tarea particular. Abarca el tiempo total invertido en el proceso, el tiempo de dedicación de un recurso específico, entre otros.
- Los recursos necesarios que se necesitan para completar una tarea particular. Se pueden contabilizar los recursos como el esfuerzo invertido en días-hombres, honorarios pagados, recursos computacionales, costos de viajes, suplidos y similares.
- El número de ocurrencias de un evento particular. Se puede dar seguimiento a los eventos que se desean monitorear, algunos de ellos podrían ser: determinar el número de errores descubiertos durante la inspección del código, el número de cambios solicitados a los requisitos y el número medio de líneas de código cambiado en respuesta a una modificación en los requisitos.
Los dos primeros tipos de medición se pueden utilizar para descubrir si los cambios en el proceso han mejorado la eficiencia de un proceso. Las mediciones del número de eventos que ocurren están más directamente relacionadas con la calidad del software. Por ejemplo, aumentar la cantidad de errores detectados al cambiar el proceso de inspección del programa podría resultar en una mejor calidad del producto.
Sin embargo, esto debe confirmarse con más mediciones del producto. El uso más importante que puede dársele a la medición del software es determinar la calidad del software, ya que, a diferencia de otros productos, este es realizado por personas, se desarrolla, no se fabrica, es artesanal, está sujeto a muchos fallos (muy probablemente ocultos o que se den con el tiempo).
Métricas de productos
Las métricas de productos son privadas para un individuo y a menudo se combinan para desarrollar métricas de proyectos que son públicas para un equipo de software. Se centran en la predicción y el control:
- El tamaño (líneas de código, bytes de código, operadores y operandos).
- La estructura (control de flujo, relación entre componentes, cohesión y acoplamiento).
- Complejidad (combinación de tamaño y estructura).
- Los índices para el control de la documentación.
- Calidad (independencia, completa, comprensible, mejorada).
- Estabilidad (los cambios aumentan el número de errores, se pueden realizar definiendo requisitos o cambiando el entorno).
Métricas de proyecto
Las métricas del proyecto se consolidan para crear métricas de proceso, que son públicas para toda la organización de software. Hay dos aspectos básicos en el uso de métricas para el proyecto:
- Minimizar la planificación del desarrollo, haciendo los ajustes necesarios para evitar retrasos y reducir posibles problemas/riesgos.
- Evaluar la calidad de los productos al momento y cuando se requiera, si es necesario, cambiar el enfoque técnico para mejorar la calidad. Con los indicadores del proyecto, el director del proyecto de software puede:
- Evaluar el estado del proyecto.
- Realice un seguimiento de los posibles riesgos.
- Identifique las áreas problemáticas antes de que se vuelvan «críticas».
- Personalizar el flujo de trabajo y las tareas.
- Evaluar la capacidad del equipo del proyecto para controlar la calidad de los productos de trabajo de software.
Métricas de usabilidad y UX
Los usuarios experimentan e interactúan con el software de diferentes formas. Así como es difícil categorizar las emociones de las personas, también es difícil evaluar su reacción al software. Si bien ninguna métrica de software puede comunicar toda la experiencia del usuario, algunas son útiles.
- Métricas de UX. Las métricas de UX son generalmente cualitativas y pueden incluir las respuestas emocionales o corporales de los usuarios, como su confianza en el software y la forma en que sus ojos se mueven a través de una interfaz de usuario.
- Métricas de usabilidad. La usabilidad mide hasta qué punto el software permite a los clientes alcanzar sus objetivos. La usabilidad se puede dividir en componentes más pequeños, como los siguientes:
- Facilidad de descubrimiento
- Eficiencia
- Memorabilidad
- Facilidad de aprendizaje
- Satisfacción
- Accesibilidad
- Net Promoter Score (NPS). Esta métrica de software refleja la voluntad de los clientes de recomendar una aplicación a otros. La puntuación se muestra como un número de 0 a 10. Del 0 al 6, son detractores, del 7 al 8 son Pasivos y de 9 al 10 son Promotores.
El diseño de software con el usuario como prioridad
Hay que entender que cada producto o servicio que es ofertado debe enfocarse en un grupo de personas, y que son ellos quienes tienen la decisión final. El programador debe comprender esto en su totalidad y dentro de ello llevar a cabo un análisis profundo acerca de la usabilidad de su creación. Por esta razón, debe llevarse a cabo constantemente el proceso de respuesta a cada nuevo problema que surge.
En TECH Universidad Tecnológica cada uno de los programas ofertados se encuentra enfocado en la formación adecuada del profesional. Esto significa que el mismo contará con las herramientas necesarias para desempeñar su labor en cualquier situación que se presente. En el caso de su Facultad de Informática se ofertan programas como el Máster en Tecnología Específica de Telecomunicación y el Máster en Visual Analytics & Big Data. Por otra parte, para aquellos profesionales que buscan establecer su función en el área del desarrollo y programación, no cabe duda que su mejor opción educativa será el Máster en Ingeniería de Software y Sistemas de Información.