La crisis del software alude a un conjunto de problemas que
aparecen en el desarrollo del software de computadoras. Los problemas no se limitan al software que "no funciona correctamente". Es ms, el mal abarca los problemas asociados a cmo desarrollar software, cmo mantener el volumen cada vez mayor de software existente y cmo poder esperar mantenernos al corriente de la demanda creciente de software. Problemas
Los problemas que afligen el desarrollo del software se
pueden caracterizar bajo muchas perspectivas, pero los responsables de los desarrollos de software se centran sobre los aspectos de "fondo":
La planificacin y estimacin de los costes son
frecuentemente imprecisas; La "productividad" de la comunidad del software no se corresponde a la demanda de sus servicios, y La calidad del software no llega a ser a veces ni aceptable. Tales problemas son slo las manifestaciones ms visibles de otras dificultades del software:
No se tiene tiempo para recoger los datos sobre el proceso
de desarrollo del software.
La insatisfaccin del cliente del sistema "terminado" se
produce demasiado frecuente.
La calidad del software es normalmente cuestionable.
El software existente puede ser muy difcil de mantener.
Causas Los problemas asociados con la crisis del software se han producido por el propio carcter del software y por los errores de las personas encargadas del desarrollo del mismo.
Los trabajadores del software (en la pasada generacin se llamaban
programadores; en esta generacin se ganar el ttulo de ingenieros del software) han tenido muy poco entrenamiento formal en las nuevas tcnicas de desarrollo de software. Cada individuo enfoca su tarea de "escribir programas" con la experiencia obtenida en trabajos anteriores. Algunas personas desarrollan un mtodo ordenado y eficiente de desarrollo del software mediante prueba y error, pero muchos otros desarrollan malos hbitos que dan como resultado una pobre calidad y mantenibilidad del software. Mitos del Software
El hardware es mucho ms importante que el software.
El software es fcil de desarrollar. El software consiste exclusivamente en programas ejecutables. El desarrollo del software es slo una labor de programacin Es natural que el software contenga errores. Mitos del Software
Muchas de las causas de las crisis del software se pueden
encontrar en una mitologa que surge durante los primeros aos del desarrollo del software. Hoy, la mayora de los profesionales competentes consideran a los mitos por lo que son actitudes errneas que han causado serios problemas, tanto a los gestores como a los tcnicos. Sin embargo, las viejas actitudes y hbitos son difciles de modificar, y todava se cree en algunos restos de los mitos del software. Gestin
Los gestores con responsabilidad sobre el software, como en la
mayora de las disciplinas, estn normalmente bajo la presin de cumplir los presupuestos, hacer que no se retrase el proyecto y mejorar la calidad.
Mito: Existe un libro que esta lleno de estndares y
procedimientos para construir software. No le proporciona a la gente involucrada todo lo que necesita saber?.
Realidad: Esta muy bien que el libro exista, pero se usa?,
conocen los trabajadores su existencia?, refleja las prcticas modernas de desarrollo de software?, es completo?. En muchos casos, la respuesta a todas estas preguntas es "no". Mito: Disponen de las herramientas de desarrollo de software ms avanzadas, despus de todo, se compra computadoras modernas.
Realidad: Se necesita mucho ms que el ltimo modelo de
computadora grande (o de PC) para hacer desarrollo de software de gran calidad. Las herramientas de ingeniera del software asistida por computadora (CASE), aunque la mayora todava no se usen, son ms importantes que el hardware para conseguir buena calidad y productividad. Mito: Si se falla en la planificacin, se pueden aadir ms programadores y adelantar el tiempo perdido (el llamado algunas veces "concepto de la horda mongoliana").
Realidad: El desarrollo de software no es un proceso
mecnico como la fabricacin. En palabras de un autor: << ... aadir gente a un proyecto de software retrasado lo retrasa an ms>>. Al principio, esta declaracin puede parecer un contra sentido. Sin embargo, cuando se aaden nuevas personas, le necesidad de aprender y comunicarse con el equipo puede y hace que se reduzca la cantidad de tiempo gastado en el desarrollo productivo. Puede aadirse gente, pero slo de una manera planificada y bien coordinada. Cliente
Un cliente que solicita una aplicacin de software puede ser
una persona del despacho de al lado, un grupo tcnico de la sala de abajo, el departamento de ventas o una compaa exterior que solicita un software bajo contrato. Los mitos conducen a que el cliente se cree una falsa expectativa y finalmente, quede insatisfecho con el que desarrolla del software. Mito: Una declaracin general de los objetivos es suficiente para comenzar a escribir los programes; podemos dar los detalles ms adelante.
Realidad: Una mala definicin inicial es la principal causa del
trabajo baldo en software. Es esencial una descripcin formal y detallada del mbito de la informacin, funciones, rendimiento, interfaces, ligaduras del diseo y criterios de validacin. Estas caractersticas pueden determinarse slo despus de una exhaustiva comunicacin entre el cliente y el analista. Mito: Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fcilmente, ya que el software es flexible.
Realidad: Es verdad que los requisitos del software cambian,
pero el impacto del cambio vara segn el momento en que se introduzca. El cliente puede revisar los requisitos y recomendar las modificaciones con relativamente poco impacto en el costo. Cuando los cambios se solicitan durante el diseo del software, el impacto en el costo crece rpidamente. Ya se han acordado los recursos a utilizar y se ha establecido un esqueleto del diseo. Los cambios pueden producir trastornos que requieran recursos adicionales e importantes modificaciones del diseo; es decir, costo adicional. Cuando se solicitan al final de un proyecto, pueden producir un orden de magnitud ms caro que el mismo cambio pedido al principio. Desarrolladores Los mitos en los que an creen muchos desarrolladores se han ido fomentando durante cuatro dcadas de cultura informtica. Durante los primeros das del desarrollo del software, la programacin se vea como un arte. Las viejas formas y actitudes tardan en morir.
Mito: Una vez que se escribe el programa y funciona, el
trabajo ha terminado.
Realidad: Alguien dijo una vez: << cuanto ms pronto se
comience a escribir cdigo, tardara en terminarlo >>. Los datos industriales indican que entre el cincuenta y el sesenta por ciento de todo el esfuerzo dedicado a un programa se realizar despus de que se le haya entregado al cliente por primera vez. Mito: Hasta que no se tiene el programa << ejecutndose >> realmente no hay forma de comprobar su calidad.
Realidad: Desde el principio del proyecto se puede aplicar
uno de los mecanismos ms efectivos para garantizar la calidad del software: la revisin tcnica formal. La revisin del software es un << filtro de calidad >> que se ha comprobado que es ms efectivo que la prueba, para encontrar ciertas clases de defectos en el software. Mito: Lo nico que se entrega al terminar el proyecto es el programa funcionando.
Realidad: Un programa funcionando es slo parte de una
configuracin del software que incluye programas, documentos, y datos. La documentacin es la base de un buen desarrollo y, lo que es ms importante, proporciona guas para la tarea de mantenimiento del software.
Mucho profesionales del software reconocen sobre los mitos
descritos anteriormente. Lamentablemente, las actitudes y mtodos habituales, fomentan una pobre gestin y malas prcticas tcnicas, incluso cuando la realidad dicta un mtodo mejor. El reconocimiento de las realidades del software es el primer paso hacia la formulacin de soluciones practicas para su desarrollo. Muchas gracias!