Ingeniería de software y trabajadores del conocimiento en un proceso de producción de simbólica

AutorJosé Guadalupe Rodríguez Gutiérrez
Páginas45-84

Page 45

Los Desarrolladores de antes eran misteriosos y profundos.

No podemos comprender sus pensamientos, por eso, todo lo que haremos, será describir su apariencia: Despierto, como un zorro cruzando el agua.

Alerta, como un general en el campo de batalla. Amable, como un anfitrión saludando a sus huéspedes.

Sencillo, como bloques de madera sin tallar. Opaco, como pozos negros en cuevas oscuras. ¿Quién puede decir los secretos de sus corazones y mentes?

El Tao de la programación

Introducción

Durante las primeras décadas de los años cuarenta y de los sesenta los programas de software se suponían un añadido del hardware, se consideraba el hardware/software como uno solo; la programación de software se consideraba un acto heroico, el software se contemplaba como una obra de "arte" para el que no existía metodología, se realizaba sin ninguna planificación, se consideraba como producto de una "mente brillante" aislada e incomprendida. En esta etapa ar-tesanal en el desarrollo de software era necesario que la empresa lo necesitara y ella misma lo creaba ("desarrollo en casa"); en consecuencia, el desarrollo de software

Page 46

tenía muy poca difusión, habitualmente los programadores que desarrollaban software lo hacían porque lo necesitaban y lo creaban para la empresa que laboraban; estas condiciones hacían que el desarrollo de software fuera caro, aislado y limitaba el desarrollo social del conocimiento del mismo. Hoy día la programación moderna sigue siendo compleja y, en ocasiones, hasta cierto punto lejana y cara; por ejemplo los programas de inteligencia artificial, software para el análisis y modificaciones del adn, software especializado en biotecnológica, etc.; también hay otros tipos de software que se ha socializado su uso, por ejemplo el software comercial (Microsoft, Oracle, Sun, etc.); el software a la medida, el software de libre acceso tipo open source, etc. Entre ambas eras —la "artesanal" y "moderna"— coexisten "puentes" que permanecen hoy día; por ejemplo, la concentración del saber hacer por los programadores; persistencia de las incertidumbres, contingencias y fallos en el software, denominada aflicción del software que la Ingeniería de software con herramientas y normas no ha logrado atenuar. A continuación abordamos el contexto de la industria del software y, la persistencia de fallos y errores en el proceso de trabajo, entendiéndose éstos como aflicción del software, problema "opaco como pozos negros en cuevas oscuras" que aun con avances técnicos de "quinta generación" la Ingeniería de software no logra producir con calidad "cero errores", no se garantiza la entrega justo a tiempo del software, menos aún la garantía "calidad total".

Periodización de la industria del software

¿Qué diferenciación existe entre hardware y software?, brevemente diremos que cuando se construye hardware, el proceso creativo humano basado en el análisis, diseño, construcción, pruebas de calidad, etc., se traduce finalmente en un objeto físico; en cambio para el caso del software éste es un elemento lógico, inmaterial, es decir, el software no se fabrica en el sentido clásico de los bienes físicos; el costo del software radica en el diseño, no en el proceso de manufactura como el hardware; no se facilita proyectar costos como si fuera un proceso de fabricación común.1 A diferencia del hardware, el software no se estropea, no se deteriora, no se corrigen del todo los problemas de calidad, no se cumplen fácilmente las metas de entrega a tiempo. En la manufactura del hardware —según vemos en la gráfica 2— se presenta un periodo de tiempo en que los fallos y errores son comunes, situación que es conocida como "mortalidad infantil" de proyectos de hardware, sin embargo una vez corregidos se regula el proceso y se "sacan en limpio" dichas fallas —que fre-

Page 47

cuentemente son atribuidas a defectos en el diseño o en la manufactura—; cuando se corrigen los defectos de hardware se estabiliza la manufactura durante un cierto periodo. Hoy día en la manufactura de hardware la tasa de cambio técnico es dinámica e inversa al costo y tiene dos efectos, por el lado de la demanda efectiva, por un lado mayor consumo de hardware y por otro, un abaratamiento que "empuja" al desarrollo de la industria del software (gráfica 2).

[VER PDF ADJUNTO]

La curva de desarrollo de la industria del hardware ha ingresado en una fase de cierto grado de estabilización, lo cual no ocurre con el ciclo de vida del software.2 Por ejemplo, en la medida en que se desarrolla o se le da mantenimiento al software, éste acumula una serie de cambios que terminan por alterar el sistema de algoritmos (problemas de configuración y operabilidad) y conforme se acumulan dichos cambios es probable que se introduzcan nuevos errores (problemas de intraoperabilidad), implicando que la curva de desarrollo se modifique, que, junto con los defectos originales no descubiertos o ignorados (aflicción del software) harán que falle durante las primeras etapas de la vida del programa; una vez que éstos se corrigen (parches), suponiendo que no se introduzcan nuevos errores, la curva se aplanará, sin embargo, con el tiempo se solicitarán modificaciones (actualizaciones y/o mantenimiento) como resultado de nuevas necesidades no previstas o que surgieron con la implementación de nuevo hardware o software, generándose nuevos fallos. En la gráfica 3 damos

Page 48

[VER PDF ADJUNTO]

cuenta del índice de fallos posibles que están ocultos y son contingentes al proceso de trabajo.

Mientras que en el hardware, sí se deteriora una pieza, se sustituye por una nueva e incluso se incrementa la potencia del mismo —en caso de una pieza como micro-chip, memoria más potente, etc.—, en cambio para el software no hay piezas de repuesto disponibles. Cada fallo oculto en el software indica un error en el diseño o en el proceso de trabajo y, en caso de sustituirse el software no implica mayor eficiencia porque los usuarios requieren de una curva de aprendizaje. Por otro lado, el mantenimiento y actualización del software supone una complejidad considerablemente mayor que el mantenimiento del hardware. Para el caso del software a la medida, se crea acorde con los requerimientos del usuario o cliente, no es que se ensamblen códigos preexistentes, sino que se crean algoritmos específicos a las necesidades del cliente (en este sentido el software a la medida representa innovaciones específicas); en este sentido la figura 3 es una simplificación de los modelos reales de fallos y errores en el proceso de desarrollo de un programa informático que no se rompe, pero se deteriora. Otro argumento de la coexistencia de contingencias, incertidum-bres y fallos en el proceso de trabajo, es la falta de socialización del conocimiento, una deficiente acumulación de conocimientos tácitos y limitados flujos de aprendizaje en la programación.

Hoch y otros (1999) señalan que el origen de la industria del software es reciente, puede situarse hacia mediados de la década de los cincuenta (1955-1960) fecha en la

Page 49

cual se fundó la primera empresa de software independiente denominada Computer Usage Company (cuc); en estas fechas los programas de software fueron desarrollados y distribuidos gratuitamente por los fabricantes de hardware (software empotrado) o bien se desarrollaban en áreas especializadas de los clientes (software embebido), quienes ocasionalmente elaboraban el sistema operativo que pone en funcionamiento las computadoras (inicios del software a la medida). En esta década se intercambiaba gratuitamente el software desarrollado (inicios del software privado) entre los grupos de usuarios. Por ejemplo la asociación share de usuarios de ibm, o bien la asociación use para usuarios de Univac, entre otras asociaciones, intercambiaban y facilitaban el acceso gratuito a los programas e información (inicios del software libre) entre los usuarios. Hacia mediados de los sesenta y principios de los setenta, se incrementan las ventas de hardware empresarial, empezando a crearse una demanda insatisfecha por parte de los usuarios que no contaban con recursos o capacidades tecnológicas para producir su propio software o establecer un convenio del tipo share con ibm. Empresas como cuc, use entre que comercializaban software independiente del hardware, aparecieron en la segunda mitad de los cincuenta y comienzos de los sesenta para cubrir la naciente demanda de software; iniciándose lo que Hoch, Roeding, Purkert y Linder (1999) definen como "la era de los servicios profesionales a la medida" que se inicia con las primeras empresas de software que hacían desarrollos a la medida, específicos y adaptados a las necesidades de cada cliente. Empresas que se desempeñaban como subcontratistas de fabricantes de computadoras o de grandes usuarios (tanto del gobierno como del sector privado) que subcontrataban parte de sus actividades de desarrollo (Chudnovsky, 1986; Hoch, Roeding, Purkert y Linder, 1999; Campbell, 1995). Esta etapa entre 1950 y 1960 se caracterizó por:

• Robustecimiento tecnológico del hardware y mejorías en el diseño, así como en funciones; mientras que el software se veía simplemente como un añadido.

• La mayor parte del hardware se dedicaba a la ejecución de un único programa que a su vez se dirigía a una aplicación específica (terminales para una sola tarea).

• La programación de software se consideraba un arte de "andar por casa". No existían métodos, herramientas, técnicas de...

Para continuar leyendo

Solicita tu prueba

VLEX utiliza cookies de inicio de sesión para aportarte una mejor experiencia de navegación. Si haces click en 'Aceptar' o continúas navegando por esta web consideramos que aceptas nuestra política de cookies. ACEPTAR