IS un pilar para el éxito de todo proyecto
Ingeniería de Software: un indicador para asegurar la calidad y evaluar el éxito del proyecto
“La calidad nunca es un accidente; siempre es el resultado de un esfuerzo de la inteligencia.”
John Ruskin
La Ingeniería de Software (IS) precisamente es esta rama de la ingeniería la encargada de establecer los principios necesarios para la obtención de un software económico, fiable, que funcione eficientemente y por sobre todas las cosas: un software con calidad.
En la actualidad, a nivel mundial la industria del software se ha convertido en un enorme gigante, el cual crece y se desarrolla a ritmo agitado. Todas las empresas quieren producir aplicaciones informáticas con alta calidad, en el menor tiempo posible y a costos mínimos. Aumentando así la competitividad entre ellas debido a que los clientes son cada vez más exigentes.
En el mundo globalizado de hoy, donde las organizaciones se ven enfrentadas a competencia de nivel mundial, la calidad surge como una necesidad y se convierte en un importante punto diferenciador, ya que aumenta la satisfacción general del cliente, disminuye costos y optimiza recursos. La Ingeniería de Software es muy importante ya que con ella se puede analizar, diseñar, programar y aplicar un software de manera correcta y organizada, cumpliendo con todas las especificaciones del cliente y el usuario final.
¿Qué es la Ingeniería de software?
Este término que empezó a utilizarse a finales de 1950 fue estimulada por la llamada crisis del software de las décadas entre 1960 y 1980.
El IEEE (Institute of Electrical and Electronics Engineers por sus siglas en inglés) define la Ingeniería de Software como la rama de la ingeniería que aplica los principios de la ciencia de computación y las matemáticas para lograr soluciones eficaces económicamente a los problemas de desarrollo de software.
Según Roger S. Pressman, ingeniero de software, profesor, consultor y autor de productos centrados en la Ingeniería del Software, es la disciplina o área de la informática o ciencias de la computación que ofrece métodos y técnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo.
Tanto estas definiciones como otras propuestas tienen como elemento común que la Ingeniería de Software trata la construcción de sistemas informáticos utilizando principios de ingeniería para el desarrollo de estos con la mayor calidad posible. Permite identificar y corregir mediante metodologías y principios los diferentes procesos de desarrollo y mantenimiento de software.
Objetivos de la Ingeniería de Software
Esta disciplina tiene como objetivos principales: mejorar la calidad de los productos de software, aumentar la productividad y trabajo de los especialistas, facilitar el control del proceso de desarrollo, y definir una disciplina que garantice la producción y el mantenimiento de los productos de software desarrollados en el plazo fijado y dentro del costo estimado.
La ISW y el fracaso de los proyectos
Estudios realizados por varias empresas a nivel mundial han demostrado la existencia de problemas en el desarrollo de software de forma general. Ejemplo de ello es el Grupo Internacional Standish (Standish Group International), empresa dedicada a estudiar los factores que inciden en el éxito o fracaso de los proyectos de Tecnología de la Información.
Investigaciones realizadas por este grupo han mostrado que el porcentaje de proyectos de software terminados con éxito sigue siendo bajo con relación a estudios realiza- dos en años anteriores, mientras que la necesidad de crear software con calidad sigue aumentando. Desde 1994, el Standish Group International realiza estudios en los que se encuesta a directores de proyectos sobre la situación y problemas de los mismos. Como se puede observar en el gráfico, resultado del estudio en 1994, todos los factores que conllevan a los fracasos de los proyectos están estrechamente relacionados con una mala aplicación de la Ingeniería de Software. Otros factores que influyen decisivamente en el fracaso de los proyectos y también vinculados a una pobre Ingeniería de Software son los siguientes:
Gráfico que muestra las principales causas que llevan al fracaso a los proyectos, según los estudios realizados por Standish Group International.
Planificación irreal: los usuarios solicitan un sistema para hoy que tenga costo 0 y los ingenieros no cuentan con la capacidad de enfrentar un plan porque no están entrenados para usar métodos de planificación y, frecuentemente, las estimaciones no se basan en datos reales.
Mala calidad del trabajo: las prácticas pobres de ingeniería, la carencia de métricas adecuadas de calidad y las decisiones de los directivos guiadas por una planificación irreal; traen como consecuencia tiempos de pruebas impredecibles, productos con muchos defectos, demoras en la aceptación de los usuarios y una extensa garantía de servicio y reparaciones. Una pobre calidad afecta la planificación y torna ineficiente el proceso de prueba.
Personal inadecuado: en múltiples ocasiones el personal asignado a un proyecto se incorpora tarde, no cubre las necesidades en cuanto a cantidad y calidad y están a tiempo parcial al proyecto. Como consecuencia el trabajo se demora o descuida, es ineficiente y sufre la moral del equipo. Con independencia del plan, los proyectos deben comenzar en tiempo y con todo el personal.
Cambios no controlados: es importante recordar que siempre ocurren cambios en los requerimientos, que los planes del proyecto se basan en el alcance del trabajo conocido, que los cambios siempre requieren más trabajo, sin planes detallados los equipos no pueden estimar el efecto o magnitud de los cambios y que si los equipos no controlan cada cambio, se pierde gradualmente el control del plan del proyecto.
Para enfrentar esta situación las empresas requieren desarrollar o adquirir una disciplina en el desarrollo del software y controlar que los ingenieros usen de forma consistente los nuevos métodos. En los últimos años de la industria del software se han ido definiendo modelos basados en experiencias de la Ingeniería de Software sirviendo de guía para las mejoras y unificando los criterios de evaluación para las empresas.
Las normas ISO, el modelo estadounidense Modelo de Madurez y Capacidad (CMM – Capability Maturity Model), el Estándar Europeo para Evaluación y Mejoras de Procesos de Desarrollo de Software (BOOTSTRAP) son algunos de los modelos que se destacan. Y aún con la existencia de metodologías, estándares, normas, técnicas y herramientas para lograr un mejor resultado en las aplicaciones informáticas, muchos sistemas siguen fallando, no por falta de presupuesto o tecnología, sino porque se siguen cometiendo errores en las diferentes etapas de desarrollo del software, o lo que es lo mismo, no se lleva a cabo una Ingeniería de Software con calidad.
Finalmente… ¿es necesario aplicar esta Ingeniería?
La práctica de la Ingeniería de Software tiene por objeto la construcción de todo tipo de sistemas informáticos de una forma rentable. Por tanto, no es exagerado sugerir que la prosperidad futura de toda empresa, StartUp, en general Grupos Desarrolladores de Software depende de una Ingeniería de Software efectiva. Es necesario que las entidades que se dedican a desarrollar este tema comprendan que la Ingeniería de Software dentro de la creación de productos de alta calidad juega un papel fundamental y constituye un factor de primer nivel en la dirección de la empresa.
Cualquier camino que siga una empresa de software para obtener buena calidad, implica que tiene que mejorar el proceso de desarrollo de software, por lo tanto, se requiere utilizar los métodos y procedimientos de la Ingeniería y Gestión de Software. Deben crear grupos de informáticos con la preparación necesaria para llevar a cabo tal empresa que les permita desarrollar el software que realmente desea y necesita el cliente.