Sei sulla pagina 1di 39

Capítulo 2: ¿Qué son las Ciencias de la Computación?

: Una
Interpretación Ecléctica

… todos llegaron a la computación desde otros campos. Sin precedentes


inherentes para su trabajo, tuvieron que encontrar sus propios precedentes.

(Mahoney, 1998, p. 121)

… las ciencias de la computación son una ciencia emergente; yo veo que es una
ciencia experimental como aquellas cuya naturaleza es a lo más
interdisciplinaria…

(Birbaum citado por Serra, 1992)

2.1. Introducción

Cuando nuestros interlocutores nos lanzan la demoledora pregunta:

— ¿En qué trabajas?

— En computación - atinamos a responder.

— Y, ¿qué es computación?

— Este… computación es… hummmm! Trabajo haciendo programa de


computadora, pero...

Es entonces cuando nuestra respuesta es, por lo general, vaga, ambigua o la


vestimos de términos que intentan volverla menos inteligible ante nuestro
interlocutor. Así, caemos en la cuenta de que la computación es algo que, de una
u otra manera, todo mundo usa y nadie sabe, a ciencia cierta, qué es y lo que es
peor todavía, este sentido de ignorancia aún está presente entre los estudiantes,
practicantes y profesionales de la computación.

En México, los términos “computación”, “ciencias computacionales”.


“ciencias de la computación”, “ciencias informáticas” e “informática” equivalen

38
Capítulo 2. ¿Qué son las ciencias de la computación? 39

a los términos norteamericanos “computer science” y “computing” que se


asocian al “rigor científico” y la “orientación matemática” de la “teoría de la
computación”. Los términos “ingeniería en computación” e “ingeniería en
sistemas computacionales” (que se le conoce coloquialmente como “ingeniería
en sistemas”) y muchos otros nombres derivados de éstos son utilizados para
definir a las carreras profesionales o a los grados académicos en estas áreas que
equivalen a los términos norteamericanos “computer engineering” y “software
engineering”. Hoy en día, ya se posicionó el término “information technology”
(tecnología o tecnologías de la información) y se ha convertido en la "buzz
word" o el término de moda más común en este campo (cf. Denning, 2001b, p.
3).

Este capítulo introduce al tema invocando a lo que se ha denominado como


la revolución de la computadora en todos los campos de la actividad humana,
un aspecto que se retoma en el capítulo 4. En segundo lugar, discute lo que se
puede considerar como los antecedentes y establecimiento de las ciencias de la
computación en 1958. Después analiza los problemas y desafíos que tuvo para
lograr reconocimiento académico ante la ausencia de antededentes y de teoría
bien establecidas. Posteriormente, analiza la importancia de haberse
considerado como la ciencia de los algoritmos, pero en el camino, haberse
impulsado más allá. Enseguida analiza la política en torno al surgimiento de la
ingeniería de software y su separación como una disciplina antagónica. También
se analizan las importantes consecuencias de la separación de una de sus
disciplinas esenciales y se propone una solución. Posteriomente se analiza el
estado del arte de la discusión en torno a la identidad disciplinaria de las
ciencias de la computación desde 1970 hasta la fecha. Al final se exponen
brevemente los modelos curriculares utilizados en México para la normalización
de planes de estudios en computación y se cierra con unas conclusiones

Acercarse a la computación desde una perspectiva interdisciplinaria


permitió ligar el origen con la actualidad, y a la vez, soportar el argumento
40 La ingeniería de software: Una discusión epistemológica Jesús Zavala

central de que la naturaleza epistemológica de las ciencias de la computación es


diferente a la que soporta las ciencias clásicas, aspecto que se ampliará en el
capítulo 4.

2.2. La revolución de la computadora

El cálculo con la ayuda de máquinas es muy antiguo, sin embargo, el cálculo


electrónico y la computación, como disciplina académica, como ocupación y
como negocio, se originó en los años 1930s como veremos a continuación.

La computadora no es una cosa, sino muchas cosas distintas a la vez


(Mahoney, 1998, p. 117), pero más que nada, es la principal tecnología producto
de la Segunda Guerra Mundial. Las primeras computadoras fueron
desarrolladas en Estados Unidos, Alemania, Gran Bretaña y Japón (Rojas y
Hashagen, 2000). Luego de terminada la guerra continuó la carrera
armamentista y surgió la Guerra Fría entre 1945 hasta su desmantelamiento en
1991 y con ella, la competencia tecnológica entre las dos grandes potencias de la
época: los Estados Unidos y la Unión Soviética. En 1958, en respuesta al
lanzamiento del satélite soviético Sputnik, el Departament of Defense de los
Estados Unidos (DoD) se reorganizó. Primero, el DoD creó la Advanced
Research Projects Agency (ARPA), (después y hasta la fecha, Defense Advanced
Research Projects Agency, DARPA) con grandes implicaciones, entre ellas, que
se convirtió en el primer promotor de esa “nueva” tecnología y de todos los
programas científicos y tecnológicos centrados en la innovación, desde
entonces. En el capítulo 4 se hace una reconstrucción de la historia del
surgimiento de la computadora electrónica desde antes de su invención.

Desde fines de los años 1950s, se impulsaron las investigaciones científicas


en ciencias de la computación en los Estados Unidos y alrededor del mundo y
que hoy abarcan también: la biología, la medicina, la química, la física, la
ingeniería, las matemáticas, las ciencias de los materiales, las ciencias sociales,
las neurociencias y mucho más (DARPA 2011). De estas investigaciones se
Capítulo 2. ¿Qué son las ciencias de la computación? 41

desarrollaron la microelectrónica, los sistemas interactivos y en tiempo real, la


inteligencia artificial y la ingeniería de software (Mahoney, 1998, p. 119),
nuestra disciplina de investigación que abordaremos ampliamente en el
siguiente capítulo.

El desarrollo de la tecnología militar ha sido la base de las aplicaciones


civiles, varios años después, así que no resulta descabellado afirmar que la
computarización de la sociedad ha sido esencialmente un “efecto colateral” de la
computarización de la guerra (Rose, 1984 citado por Mahoney, 1998, p. 119). El
Internet y los teléfonos celulares, los dispositivos de alta resolución, los sistemas
de posicionamiento geográfico (Global Position System, GPS), los sistemas de
información geográfica (Geographical Information Systems, GIS), el FLOSS,
entre otros, (la lista es inmensa), todos son producto, directa o indirectamente,
de estas investigaciones y el desarrollo tecnológico continúa en la misma tónica.

Como toda revolución, la computadora electrónica también significó


preocupaciones, pero sobretodo un nuevo poder sin precedente para la ciencia,
la industria y los negocios, pero con él también llegaron las dificultades y los
peligros (Mahoney, 1998, p. 123). Sin embargo, los beneficios de esa revolución
no siempre han sido contundentes, de hecho, década tras década, versión tras
versión y generación tras generación tecnológica, los beneficios prometidos se
posponen, justificados por dificultades técnicas o gerenciales; “el campo ha sido
vasto en promesas y corto en desempeño” (Mahoney, 2005, p. 120). Los
escépticos, por su parte, aseguran que si es cierto que esta “tecnología
revolucionaria” tiene algún beneficio, éste ya se dio sin percatarnos de ello, o
bien, que sus beneficios están asociados a otros componentes de la
productividad como la adecuación organizacional y la administración o que los
beneficios son a mediano o largo plazo, como lo ilustraron los estudios de
Brynjolfsson y Hitt:

La computarización no es simplemente un sinónimo simplemente de


comprar capital en computadoras; sino que implica un grupo más
42 La ingeniería de software: Una discusión epistemológica Jesús Zavala

amplio de inversiones y de innovaciones complementarias, algunas de


las cuales puede llevar años implementarlas. […] Específicamente,
aunque la inversión en computadoras genere retornos de inversión útiles
en sus primeros años de servicio, encontramos que las mayores
contribuciones se acrecientan en un cierto plazo. […] Sobre horizontes de
tiempo más largos (entre tres y siete años), la computarización está
asociada a una contribución de la producción que es sustancialmente
mayor que la parte del factor solamente de las computadoras - entre dos
y cinco veces tanto como el impacto a corto plazo. Esto implica una
contribución sustancial al crecimiento duradero de productividad según
su medida convencional. (Brynjolfsson y Hitt, 2003, pp. 26-27,
traducción libre).

En mi opinión, la tecnología por sí sola no ha dado los resultados


prometidos porque la productividad de los negocios se desarrolla a partir de la
combinación de muchos factores, donde los más importantes son los factores
organizacionales. Lo que sí es indudable es que, así como Ford introdujo su
famoso Modelo T de automóvil, en un intento porque cada familia
norteamericana (y del mundo entero) tuviera un automóvil en su cochera
(espacio arquitectónico que surgió precisamente con este motivo), se ha
intentado la misma estrategia con la computadora y los dispositivos
electrónicos: la Apple, la Atari, la laptop, la BlackBerry, la netbook, el IPod, el
teléfono celular, etc., son lo que para Michael S. Mahoney (1998, p. 122) es la
verdadera revolución de la computadora que se inscribe en la tendencia hacia la
sociedad de la información.

Algunos autores consideran que la primera revolución industrial surgió con


el invento del automóvil, que con la construcción de la primera computadora
comenzó la segunda y que con la invención del Internet comenzó la tercera, sin
haber pleno consenso. Sin embargo, lo que sí es innegable es que con el uso de
la computadora, el cambio ha sido drástico en el trabajo y en la vida cotidiana
de los trabajadores (Mahoney, 1998, p. 123) y de todos los seres humanos en los
países industrializados y en menor medida en los demás, pero con tendencias
crecientes. Hoy es impensable la vida sin el Internet, la comunicación
Capítulo 2. ¿Qué son las ciencias de la computación? 43

instantánea por mensajes vía teléfono celular, los juegos electrónicos y las redes
sociales.

¿De qué naturaleza es la computadora como para haber resultado tan


revolucionaria? La computadora tiene la propiedad de ser abstracta y concreta y
su doble naturaleza así lo refleja: hardware y software, igual abstractos y
concretos, ambos con fundamentos matemáticos, separados y complementarios,
son dos y uno sólo a la vez. La computadora es hardware (los dispositivos
eléctricos y electrónicos, el equipo) y es software (la lógica, las instrucciones y
los mecanismos que la hacen accesible su utilización). “Se pensó que [el
hardware y el software] llegarían juntos en la computadora, [pero] no se
unieron [… y la] computadora permanece como una amalgama de un
dispositivo tecnológico y un concepto matemático, que retiene identidades
separadas a pesar de la influencia en uno y otro.” (Mahoney, 1998, pp. 117-118,
cursivas en el original, traducción libre). El hardware es “tangible”, En cambio,
el software es “elusivamente intangible”. Sin embargo, sólo el comportamiento
de las máquinas, cuando “corren” el software y ocurre algo, lo intangible
adquiere valor, que va más allá de su representación física.

A continuación se analizará el proceso de legitimación de las ciencias de la


computación como disciplina científica.

2.3. El origen de la nueva ciencia

La computación como fenómeno se inventó a sí misma a fines de los años


1940s:

[La computación tal como la conocemos hoy en día] no existía antes de


fines de los años 1940s. No había computadoras, ni programadores, ni
científicos en computadoras, ni “managers” de computadoras. Por lo
tanto, aquellos que inventaron y mejoraron la computadora, aquellos que
determinaron cómo programarlas, aquellos que definieron sus
fundamentos científicos, aquellos que la establecieron como una
industria en sí misma y la introdujeron en los negocios y en la industria,
todos llegaron a la computación desde otro campo (“background”). Sin
44 La ingeniería de software: Una discusión epistemológica Jesús Zavala

precedentes inherentes para su trabajo, tuvieron que encontrar sus


propios antecedentes. (Mahoney, 1998, p. 121, cursivas agregadas,
traducción libre).

Así, sus protagonistas inventaron una nueva disciplina de naturaleza


interdisciplinaria, en una época dominada por el positivismo lógico que se volcó
hacia el impulso de un desarrollo tecnológico sin precedentes. Este origen
interdisciplinario y su orientación pragmática le dieron un estatus y una
evolución, teórica y práctica distinta a las otras disciplinas. El origen de la
computadora y de las nuevas ocupaciones surgidas en torno a ésta, se analiza
más detalladamente en el capítulo 4, pero baste decir que las consecuencias de
este vuelco han desembocado en el impulso de la sociedad red de la información
centrada en el conocimiento y la innovación de principios del siglo XXI.

La historia nos reveló que la primera disciplina que abordó la computadora


fue la ingeniería eléctrica, que ya estaba bien establecida desde antes de la era
de las computadoras. Con ella surgieron las primeras computadoras: la Z1,
considerada la primera computadora binaria del mundo del inventor alemán
Konrad Zuse, entre 1936 y 1938, luego construyó la Z2, Z3 y la Z4; la Atanasoff-
Berry Computer (ABC), la computadora digital binaria de John V. Atanasoff y
Clifford E. Berry en 1939; la Harvard Mark I, la primera computadora electro-
mecánica basada en las ideas de Babbage y Hollerith, de Howard H. Aiken y la
Electronic Numerical Integrator and Computer (ENIAC), construida por J.
Presper Eckert, Jr. y John W. Mauchly, que operaba bajo el modelo lógico
desarrollado por John von Newmann entre 1943-1946, se utilizó para apoyar los
cálculos militares. De estos primeros modelos, se crearon las siguientes
computadoras alrededor del mundo con fines militares, académicos y de
negocios.

De la ingeniería eléctrica surgió posteriormente la ingeniería electrónica y


años más tarde, la microelectrónica, la nano electrónica y la fotónica y que
“refleja su orientación básica hacia el dispositivo” electrónico y la “computer
Capítulo 2. ¿Qué son las ciencias de la computación? 45

science” (la ciencia o ciencias de la computación) (Mahoney, 1998, p. 118) que


poco a poco fue ganando reconocimiento.

Las ciencias de la computación se crearon en el sentido literal del término


en un juego de intereses de la academia, de las asociaciones profesionales, de las
empresas y de su poderoso “sponsor” de proyectos, el DoD.

En busca de reconocimiento académico, a esta nueva ciencia se le


atribuyeron antecedentes en el modelo de máquina de cálculo universal o
Máquina de Turing que se publicó en el artículo “On Computable Numbers,
with an Application to the Entscheidungsproblem”, publicado en los
Proceedings de la London Mathematical Society en 1936-1937 (Flynn, 2002, p.
199; Turing, 1936-7; Denning, 2009, p. 3; Petzold, 2008). Debido a que Turing
trabajó para proyectos militares de criptografía en Gran Bretaña y Estados
Unidos, algunos de sus trabajos no se publicaron, ni fueron ampliamente
conocidos hasta varios años después de su muerte en 1954. Se dice que él y von
Newmann se conocieron y qué éste se basó en las ideas de Turing para
desarrollar el modelo lógico de la ENIAC, pero más bien Newmann tuvo otras
influencias además de la de Turing. La ACM, en honor a Turing, otorga desde
1966 el Alan Turing Award, considerado el Premio Nobel en Computación, para
distinguir a los científicos destacados por sus aportes a las ciencias de la
computación. Otro de los trabajos seminales de Turing fue “Computing
Machinery and Intelligence” (1950) que sentó las bases de la inteligencia
artificial.

Aquellos primeros científicos en computación, inspirados en el Institute of


Radio Engineers (IRE, creado en 1912), crearon la Eastern Association for
Computing Machinery en una reunión en la Columbia University en Nueva York
el 15 de septiembre de 1947:

El propósito de esta organización será el avance de la ciencia, el


desarrollo, construcción y aplicación de la nueva maquinaria para
46 La ingeniería de software: Una discusión epistemológica Jesús Zavala

computación, razonamiento y cualquier manejo de información. (ACM,


2011), traducción libre, énfasis agregado).

Para enero de 1948, la asociación se renombró y quedó como Association


for Computing Machinery (ACM), cuyo propósito central permanece casi sin
cambios hasta la fecha:

La asociación es una organización científica y educacional internacional


dedicada al avance del arte, ingeniería y aplicación de la tecnología de la
información, sirviendo tanto a los intereses profesionales y públicos
promoviendo el crecimiento del intercambio abierto de información y la
promoción de los más altos estándares profesionales y éticos. (ACM,
2011), traducción libre, énfasis agregado).

En 1949 se creó la National Machine Accountants Association (NMAA)


luego renombrada como Data Processing Management Association (DPMA) en
1962 (Ensmenger, 2001, p. 136) y convertida en la actual Association of
Information Technology Professionals (AITP) a partir de 1996. La ACM y la
DPMA se disputaron la membresía de los nuevos “profesionales” en
computación en estos primeros años.

Nótese que el nombre de la ACM fue Association for Computing


“Machinery” no “Science”. Sin embargo, su nombre no cambió desde entonces a
pesar de los álgidos debates que se han dado en torno a que debería reflejar la
esencia de la disciplina y que han quedado documentados en su primera
publicación, la Communications of the ACM. Lo que sí vale la pena destacar es
el carácter científico más que mercantil de sus actividades.

Por último, y no por ello menos importante, conviene señalar que con la
creación de la ACM, las ciencias de la computación se separaron de su matriz, la
ingeniería eléctrica y con ello se inició una lucha política y académica por
establecer su identidad y el reconocimiento como ciencia. Esta separación
también provocó un divorcio intelectual y político entre los científicos en
computación representados por la ACM y los ingenieros en computación,
representados entonces por el Institute of Radio Engineers (IRE) y el American
Capítulo 2. ¿Qué son las ciencias de la computación? 47

Institute of Electrical Engineers (AIEE) (hoy agrupados en torno al Institute of


Electrical and Electronics Engineers (IEEE o I triple E) formado en 1963 de la
unión de las dos primeras asociaciones). Las consecuencias de esta separación
se discutirán posteriormente.

2.4. El reconocimiento científico

A principios de los años 1950s, la disciplina académica que hoy conocemos


como ciencias de la computación (“computer science”, “science of computing” o
“computing”, en inglés) existía sólo en unas cuantas asociaciones de
instituciones, individuos y técnicos y a pesar de que el uso de las computadoras
se [había incrementado] como instrumentos de producción científica, su estatus
como objetos legitimados de escrutinio científico y profesional no estaba bien
establecido aún” (Ensmenger, 2001, p. 98). Durante esa época, las oficinas de
computación en las universidades pertenecían a los departamentos de
ingeniería eléctrica, matemáticas, física o negocios. Fue hasta finales de los años
1950sque surgieron laboratorios de investigación e institutos, conferencias
profesionales, sociedades profesionales y “journals” técnicos en los Estados
Unidos (Ensmenger, 2001, p. 98) y que “muchas de las grandes universidades
norteamericanas comenzaron a ofrecer entrenamiento de posgrado en
especialidades relacionadas con la computadora” (ídem, p.17). Para entonces, en
todo el mundo, principalmente en Estados Unidos, Europa y en la extinta Unión
Soviética, había laboratorios de investigación en computación, o estaban en
construcción, como se reportó en 1959 (Por ejemplo Carr, Perlis, Robertson y
Scott 1959).

Justificar que las raíces de las ciencias de la computación eran matemáticas


le valió el reconocimiento casi inmediato. Para 1958, la ACM, principal sociedad
de computación en Estados Unidos, ocupó un asiento en el National Academy of
Sciences National Research Council como parte de la Mathematical Sciences
Division (Ensmenger, 2001, p. 132) y con ello, se aceleró su institucionalización.
48 La ingeniería de software: Una discusión epistemológica Jesús Zavala

Ese mismo año, llegó a México la primera computadora, aunque de segunda


mano, a la Facultad de Ciencias de la Universidad Nacional Autónoma de
México (UNAM) (CINVESTAV 2008) y se publicó el primer artículo sobre la
experiencia del uso de la primera calculadora electrónica en el país, la “604-4
electronic calculator” (Pavon, 1958) en la industria, la hoy extinta Compañía de
Luz y Fuerza. Desde entonces, las principales universidades mexicanas y las
grandes compañías públicas y privadas han utilizado computadoras, cuya
experiencia no ha sido sujeta de investigación histórica.

Pero, ¿qué era lo que ocurría con la investigación en computación en los


años 1950s? En aquel entonces, hubo “numerosos estudios relacionados con la
computadora en una amplia variedad de departamentos: matemáticas,
negocios y economía biblioteconomía, física e ingeniería eléctrica” (Ensmenger,
2001, p. 102, cursivas agregadas). En septiembre de 1959, Louis Fein publicó su
ensayo “The Role of the University in Computers, Data Processing, and Related
Fields” y propuso el término “computer sciences” (ciencias de la computación),
en plural, a todas esas disciplinas que utilizaban la computadora para resolver
problemas de negocios de manera interdisciplinaria (Fein, 1959b, p. 11) de tal
suerte que su autor, nunca supuso su unificación en una “computer science”
(ciencia de la computación).

Al respecto, tengo tres pequeñas observaciones: la primera, que


desapareció el plural del nombre que sólo permanece en algunos
departamentos en algunas universidades y quedó como “computer science”,
considero que para dar sentido de unidad disciplinaria; en español de España se
le llama “informática” derivado del francés “informatique” y en México se le
nombra en plural (“ciencias de la computación”); la segunda observación es
sobre su carácter interdisciplinario y la tercera es sobre su aplicación práctica a
la solución de problemas de negocios, suponemos que en sentido amplio para
incluir a los negocios militares y civiles, públicos y privados, comerciales y
Capítulo 2. ¿Qué son las ciencias de la computación? 49

académicos, lo que le imprimió una cercanía a la administración y a las “ciencias


de la organización” (organization science), también en pleno auge en esa época.

Otros posibles nombres que se usaron para nombrar la naciente disciplina


fueron: “information sciences”, “intellitronics”, “synnoetics”, “Comptology”,
“Hypology” (derivado de la raíz griega “hypologi”, con el significado de “to
compute”, “calcular”), “Applied Epistemologist” y “Turingineer”, sin embargo
quedó como “computer sciences” (cf. Ensmenger, 2001, p. 102; ACM, 1958, p. 6;
Zaphyr, 1959, p.5). Ante la divergencia y falta de apoyo generalizado en la
academia, la ACM resultó clave para el aglutinamiento científico y poco a poco,
los artículos de corte académico y teórico, la orientación de las ciencias de la
computación se distanció de sus orígenes relacionados con el hardware
(antecedentes que quedaron en manos del IRE y luego de la IEEE):

… un excelente programa integrado en algunos de los campos selectos de


las computer sciences debe ser posible sin ningún equipo de cómputo, tal
como un programa tasado como de primera puede existir en ciertas áreas
de la física sin un ciclotrón. (White, 1973, citado por Ensmenger, 2001, p.
106, traducción libre).

Una vez nombrada la disciplina, faltaba su reconocimiento dentro de la


comunidad científica y de la sociedad, es decir, le faltaba institucionalizarse. En
este impulso, el DoD jugó un papel preponderante a través de la ARPA
(Mahoney, 1998, p. 120; cf. Serra, 1992) con amplios efectos inmediatos:
Primero, fueron pocas las universidades involucradas. Destacaron: Carnegie
Mellon University (CMU), University of North Carolina, Berkeley y Oxford,
todas “ligadas a proyectos de investigación en diseño e implementación de
grandes sistemas complejos del complejo militar e industrial ‘guiadas sólo por el
costo y la confiabilidad’” (Mahoney, 1998, p. 117). Segundo, las investigaciones
científicas en “computer science” tomaron esa nueva ciencia como base y “las
otras ciencias” como soporte, lo que implica su carácter de paraguas
interdisciplinario; y tercero, la orientación de la ciencia fue hacia lo pragmático,
hacia la aplicación práctica de los descubrimientos científicos, no hacia los
50 La ingeniería de software: Una discusión epistemológica Jesús Zavala

descubrimientos por sí mismos (Mahoney, 1998, p. 119). Estas tendencias


continúan hasta la fecha.

En esta corriente de desarrollo tecnológico, está Carnegie Mellon University


(CMU) como caso paradigmático de la universidad norteamericana modelo,
esencialmente tecnológica, más que científica, donde todas las facultades giran
en torno de la facultad de ingeniería, contrario al sentido tradicional
norteamericano de la “full university”. CMU fue concebida como una
universidad en “computer science”. En la nueva CMU la “ciencia” y sus
descubrimientos tuvieron un paradigma diferente: su orientación hacia el
pragmatismo, hacia su aplicación en sistemas de cómputo, mayormente
financiados por el DoD (Serra, 1992). En CMU “el campo de la ‘computer
science’ fue organizado por matemáticos y científicos sociales interesados en la
nueva máquina, no por ingenieros”, de ahí su nombre, pero “al mismo tiempo
esa nueva ‘ciencia’ fue orientada hacia lo más pragmático desde el comienzo”
(Serra, 1992, cursivas agregadas) lo que le ha dado muchas particularidades
como la orientación hacia una mentalidad de “problem solving” (resolución de
problemas). En CMU, “en ‘computer science’ la ciencia empírica llega después,
no antes de la actividad de diseño y “el conocimiento es de naturaleza
tecnológica, no científica.” (ídem). Este modelo de investigación ha
predominado en las ciencias de la computación, lo que por un lado la ha llevado
a roces intelectuales con las “otras ciencias” y por otro, ha llevado la innovación
tecnológica más allá de las fronteras del momento, rompiendo paradigmas en
todos los campos.

En 1967 Allen Newell, Alan Perlis y Herbert Simon, de CMU, respondieron,


desde una posición de las ciencias organizacionales, a los científicos en
computación la pregunta: “¿Qué es la ‘computer science’?” y “si hay tal cosa”,
“¿qué es?”. Su respuesta fue simplemente, las ciencias de la computación son “el
estudio de las computadoras, tal como en la astronomía es el estudio de las
estrellas y en la biología el estudio de la vida”. En ese breve escrito, sus autores
Capítulo 2. ¿Qué son las ciencias de la computación? 51

rechazaron las seis objeciones más comunes de aquel entonces en torno a


desacreditar la “computer science” y concluyeron que:

Los “computer scientists” a menudo unirán sus manos con colegas de


otras disciplinas en un esfuerzo común. Sobre todo, los “computer
scientists” estudiarán las computadoras vivientes con la misma pasión
que los otros han estudiado las plantas, las estrellas, los glaciares, los
colorantes y el magnetismo; y con la misma confianza que la curiosidad
inteligente [y] persistente dará conocimiento interesante y quizás útil.
(Newell, Perlis y Simon, 1967, traducción libre).

De Herbert Simon y sus colegas surgió la frase más conocida: “La computer
science es el estudio del fenómeno que rodea a las computadoras…” asumiendo
que “… la computadora no es sólo un instrumento sino también un fenómeno,
que requiere de descripción y explicación” (Ensmenger, 2001, p. 107, cursivas
agregadas). Luego, en 1975, a Newell y a Simon, se les otrogó el la presea Alan
Turing Award (Newell y Simon 1976). Visto así, ello sería suficiente como para
justificar la existencia de la disciplina. “El hecho de que la computadora sea un
fenómeno artificial más que natural es irrelevante […] los artefactos son
perfectamente objetos legítimos de investigación empírica”, como ampliamente
expuso Herbert Simon en “The Science of the Artificial” (Ensmenger, 2001, p.
107; cf. Serra, 1992, para una mayor discusión). En mi opinión, no es irrelevante
que el objeto de estudio de las ciencias de la computación sea artificial, sino
todo lo contrario porque ello determina que no es sólo una ciencia natural, sino
social y humana también. Sin embargo, así se desarrolló una la corriente
pragmática de la computación, aplicada a todo lo posible, aunque esa
explicación no satisfizo mucho a los científicos en computación como veremos
más delante.

Las universidades y las asociaciones profesionales también jugaron un


papel importante en la institucionalización de la computación. A fines de los
años 1950s, la urgencia de los científicos computacionales por definir,
intelectual y ocupacionalmente su disciplina, presionó la profesionalización de
52 La ingeniería de software: Una discusión epistemológica Jesús Zavala

la naciente ocupación de “programador”, básicamente ocupada por físicos y


matemáticos, que ya era social y laboralmente aceptada. Con ello también
comenzaba la pugna entre los “managers” y los “programmers” por el control
gerencial del trabajo. La profesionalización ofrecía a los programadores “un
incremento en el estatus social”, “mayor autonomía”, “mejores oportunidades
para el progreso” profesional y “mejor pago”. (Ensmenger, 2001, p. 99-100) y a
los gerentes les ofrecía “profesionalismo” con “disciplina” y “lealtad laboral”, lo
que equivalía a ser “auto disciplinado” y regido por un “código de ética” y por lo
tanto sin necesidad de supervisión gerencial. Esto no se ha logrado desde
entonces y la pugna continúa y hoy se han desarrollado mecanismos de control
gerencial y resistencia más sofisticados (Ver Zavala, 2008, pp. 30ss). Las
asociaciones profesionales surgidas a fines de los años 1940s jugaron un papel
fundamental en ese proceso4, sin embargo nunca lograron ponerse de acuerdo y
establecer una sola asociación profesional, pues a mi juicio, había un mercado
tan amplio de posibles miembros que resultaba poco atractiva tal intención.

2.5. La ciencia de los algoritmos y más

El camino más difícil para el establecimiento de la disciplina tomó desde


fines de los años 1950s hasta mediados de los 1970s. La “computer science
comenzó a tomar forma durante los años 1960s y se involucró en los intereses
comunes de la lógica matemática (autómatas, teorías de pruebas, teoría de
funciones recursivas), lingüística matemática y análisis numérico (algoritmos,
complejidad computacional), agregando a ellas cuestiones de organización de la

4La Data Processing Management Association (DPMA), el Institute for the Certification of
Computer Professionals (ICCP), la Association for Computing Machinery (ACM), el American
Institute of Electrical Engineers (AIEE) y el Institute of Radio Engineers (IRE). Estas dos
últimas asociaciones se unieron en el Institute of Electrical and Electronics Engineers (IEEE) en
1963 y luego fundaron la IEEE Computer Society en 1971.
Capítulo 2. ¿Qué son las ciencias de la computación? 53

información (estructuras de datos) y la relación de la arquitectura de la


computadora con los patrones de computación” (Mahoney, 1998, p. 118). En
este proceso, los científicos en computación consideraron todos los aspectos, no
sólo la programación y sorprendentemente, sin existir la teoría tan sólida se
aventuraron a crear el primer currículum, cuyos trabajos comenzaron en 1965.
El Curriculum Committee on Computer Science de la ACM reportó:

La computer science [en el original] no simplemente está ocupada del


diseño de los dispositivos de cómputo – ni sólo es el arte del cálculo
numérico, a pesar de que son importantes esos tópicos… La computer
science se ocupa de la información en mucho de la misma forma que la
física se ocupa de la energía; es devota de la representación,
almacenamiento, manipulación y presentación de información en un
ambiente que permita los sistemas de información automáticos. Tal
como la física usa la energía transformando dispositivos, la computer
science usa los dispositivos que transforman la información. (Conte et al.,
1965, 544, traducción libre, cursivas en el original).

Para fines de 1960s, la mayoría de los teóricos de la computación (adheridos


a la ACM) habían adoptado la definición de la computer science como el estudio
de los algoritmos y la programación (Ensmenger, 2001, p. 107). Los trabajos
pioneros de los distinguidos científicos en computación Donald Knuth y Edsger
Dijkstra se ubican en esta línea. Ambos coincidieron en que la programación,
que entonces incluía todo el desarrollo de software, es una ocupación intelectual
de naturaleza compleja. Donald Knuth, matemático de formación, convirtió el
análisis matemático de algoritmos en un arte (Shustek, 2008) y Edsger Dijkstra,
físico teórico, que por considerar que el desafío intelectual de la programación
era mayor que el de la física teórica (Misa, 2010, p. 42) que lo hizo convertirse
en un “humilde programador” (Dijkstra, 1972) que inventó muchos conceptos
computacionales de amplio impacto.

Basar la “computer science” en los algoritmos implicaba reclamar que “es


[era] una ciencia porque tiene [tenía] que ver con el descubrimiento de las leyes
naturales sobre los algoritmos” (Ensmenger, 2001, p. 107, cursivas agregadas).
54 La ingeniería de software: Una discusión epistemológica Jesús Zavala

Los mismos argumentos llevaron a Stuart Shapiro (2001) a considerar que la


“Computer Science” es el “estudio de los procedimientos” como una “ciencia
natural”, sin caer en la cuenta que los procedimientos son interpretaciones
humanas de los fenómenos, no propiedades intrínsecas de los mismos, como
estableció el constructivismo social, tal como fue abordado en el primer
capítulo.

Sin embargo, la concepción de las ciencias de la computación ha cambiado


con el tiempo, misma que se ha expresado en las propuestas curriculares para la
formación académica. La primera versión curricular se publicó en 1968 por la
ACM y desde entonces ha sido la referencia mundial. Las siguientes versiones
curriculares se publicaron en 1978, 1983, 1988, 1991, 2001 y la más reciente en
2008, todas de acuerdo a los avances tecnológicos del momento. Por ejemplo,
desde su origen, en las definiciones de ciencias de la computación se ha
mantenido la idea de tener raíces en una teoría matemáticamente fundada que
le diera “soporte riguroso”, sobre todo cuando tuvo que enfrentarse a las otras
disciplinas en los comités científicos, donde por lo general se le descalificaba. El
primero de estos debates políticos de las ciencias de la computación el
protagonizado en 1966 por Anthony Oettinger, entonces presidente de la ACM,
en su encuentro con el Committee on Science and Public Policy de la National
Academy of Sciences de los Estados Unidos, donde la disciplina fue considerada
a lo más una “aberración momentánea en los campos de las matemáticas y la
ingeniería eléctrica” (Rosin, 1967, p. 544). Después, Anthony Oettinger confesó
haber tenido, él mismo, dudas sobre si la “computer science” es una ciencia o no
(cf. Ensmenger, 2001, p. 110; Oettinger, 1967, p. 604).

Para algunos autores, es una ciencia de ingeniería, lo cual, en cierto sentido


es un oxímoron como se expuso en el capítulo 2, es decir, es una frase
compuesta con términos contradictorios. En este sentido, por ejemplo para
Ensmenger (2001, p. 108-110), las ciencias de la computación eran difíciles de
categorizar porque por un lado, “tenían componentes de lo más puro de las
Capítulo 2. ¿Qué son las ciencias de la computación? 55

matemáticas” y por otro lado, “lo más sucio de la ingeniería” y para Edward
Layton es lo que él llamó una “engineering science” (ciencia de ingeniería)
(Ceruzzi, 1988). Lo anterior significa que “tomó las cualidades de las ciencias en
su organización sistemática, su confianza en el experimento, y en el desarrollo
de la teoría matemática”5 y que el general, su progreso ocurrió en la ausencia
de ninguna teoría formal o útil, es decir, tuvo que inventarla. Esto es lo que
Matti Tedre llamó la anarquía ontológica, epistemológica y metodológica
(Tedre, 2006a, p. 199) predominante en las ciencias de la computación, como se
expuso en el capítulo 1 y que ha resultado acertado porque ha roto los
paradigmas imponiéndose al dogmatismo. Aunque este debate continúa hasta la
fecha (por ejemplo en Denning, 2005; 2003), hoy prácticamente la disciplina es
aceptada de manera universal como ciencia.

En mi opinión, la confusión sobre la ontología de las ciencias de la


computación radica en que éstas son un paraguas disciplinario más que una
disciplina con subdisciplinas, donde confluyen muchos campos únicos que se
han desarrollado con el surgimiento de la computadora electrónica, que con su
capacidad de cálculo que le ha permitido desarrollar instrumentos de medición
y análisis en todos los campos de la actividad humana. Por eso, su naturaleza es
interdisciplinaria, tecnológica y social y por lo tanto, no es sólo natural o
simbólica como las matemáticas Es, quizás, la primera gran “disciplina”
interdisciplinaria, discusión que se desarrolla de manera complementaria en el
capítulo 4.

5 http://www.computer.org/portal/web/csdl/doi/10.1109/MAHC.1988.10036
56 La ingeniería de software: Una discusión epistemológica Jesús Zavala

2.6. La fractura por el impulso de la ingeniería de software

La computadora es la consecuencia del equipamiento en las oficinas que ya


estaba bien desarrollada con la máquina de escribir y los calculistas humanos,
aspecto que se desarrolla en el capítulo 4. Por eso, casi de manera natural, “la
computadora se convirtió en el corazón de una industria de procesamiento de
datos emergente más creando la demanda que respondiendo a ella. Así como
Henry Ford enseñó a la nación [norteamericana] cómo usar el automóvil, IBM y
sus competidores enseñaron a los negocios (y a su gobierno) como usar la
computadora” (Mahoney, 1998, p. 118-119). Aunque antes de IBM, hubo otras
empresas que ya estaban en operación desde 1951, como el Proyecto LEO, el
primer sistema empresarial de software del mundo (Caminer, 1997), que se
expone en el capítulo 3.

Si bien, hasta que “la computadora dejó los laboratorios de investigación y


las manos de los científicos que los ingenieros hicieron los primeros programas
[de software] que se volvió una cuestión de producción” (Mahoney, 1998, p.
120), la computadora siempre tuvo una finalidad práctica, primero militar y
luego civil en el gobierno y en los negocios. La computadora se volvió
“intelectual, económica y socialmente útil” (p. 118). Con el advenimiento de esta
nueva industria, la computadora reemplazó los métodos tradicionales de
contabilidad y de registro (p. 113) y se intentó utilizar para “proveer modelos
matemáticos de las operaciones de negocios como la base para la toma de
decisiones” (p. 119). Así se expandió la investigación de operaciones, surgida a
finales de la Segunda Guerra Mundial, ahora apoyada con el poder de cálculo de
la computadora, por lo que se vio como un método de toma de decisiones
plenamente racional, impulsado principalmente desde Carnegie Mellon
University (CMU), donde se gestaron las principales teorías organizacionales de
la época con Herbert Simon como el autor más visible. Fue entonces cuando la
“comunidad de los negocios” se erigió sobre el poder simbólico adquirido con la
computadora, pues “la computadora reorganizó de facto las líneas del poder
Capítulo 2. ¿Qué son las ciencias de la computación? 57

gerencial efectivo” (p. 118). De aquí surgieron los modernos sistemas


empresariales.

A mediados de los años 1950s, los científicos en computación y los


industriales fueron sorprendidos por el rápido crecimiento de la naciente
industria del software en todos sus aspectos: en la falta de antecedentes y
conocimiento sobre cómo debían hacerse las cosas, por la mayor proporción del
costo del software sobre el hardware, el surgimiento del software como un
mercado muy lucrativo y en creciente demanda de gente capacitada; en otras
palabras, todos fueron sorprendidos por la industrialización de la programación
(Bauer, 1973, p. 472). El impacto más importante de ese crecimiento explosivo y
desenfrenado de programadores (“software turmoil” se le llamó) fue alta
demanda y la reducida oferta de gente altamente calificada al grado que “mucha
gente, con poco o nada de entrenamiento, pero con alta inteligencia, se unió a
este campo” (ídem, traducción libre, cursivas agregadas). Esto ha sucedido en
menor o mayor medida desde entonces y sigue ocurriendo en la actualidad, lo
que ha motivado que profesionales formados en otras disciplinas distintas a la
computación se involucren de manera cotidiana, provocando una
interdisciplinariedad sui generis.

Para finales de los años 1950s, estaba en plena expansión la aplicación de la


computadora a la industria militar y los negocios y los “programadores” fueron
centrales porque esta expansión presionó a los científicos en computación para
que capacitaran y formaran a la fuerza laboral necesaria. Sin embargo, el
enfoque científico con una rigurosa visión matemática propuesta por los
expertos de las universidades “era innecesaria” desde la óptica de los
empleadores pues ellos requerían “técnicas prácticas en programación” y en
“management” (administración), es decir, en “project management”
(administración de proyectos). En este contexto surgió la “computer science”
como movimiento científico y también se gestó una lucha política por el control
de la orientación de esta nueva ciencia, entre el DoD y sus proveedores
58 La ingeniería de software: Una discusión epistemológica Jesús Zavala

industriales de la computación por un lado y los científicos en computación,


adheridos a la ACM, por el otro.

Así, desde mediados de los años 1960s, surgieron los numerosos “lamentos
sobre la incapacidad de los desarrolladores de software [programadores en
aquel entonces] de producir productos en tiempo, dentro del presupuesto y de
una calidad y confiabilidad aceptable” (Ensmenger, 2001, p. 7, traducción libre)
hasta convertirse en una retórica regular en la literatura sobre la industria desde
entonces hasta el presente hasta el punto de “una forma de vida.” (ídem). Se
adujo que se requería una nueva ingeniería del software porque la “computer
science” estaba muy ocupada definiéndose a sí misma en el seno de las
universidades y de sus asociaciones profesionales. De ahí la fuerte orientación
academicista y la negativa a proveer la capacitación práctica sin teoría que
exigía la naciente industria del software, prácticamente convertida en una
extensión del DoD. Hoy podría evaluarse que este camino fue acertado porque
hoy es reconocida científicamente.

Así, poco a poco, se fue conformando la necesidad de una nueva disciplina


que transfiriera, a los managers, el poder que tenían los programadores sobre
su propio trabajo. En cambio, nunca se consideró que la administración
tradicional fuera insuficiente para este nuevo tipo de trabajo más intelectual,
más de carácter simbólico que manual. La forma de legitimar esa necesidad fue
utilizar el discurso de la llamada “crisis del software” hasta convertirla en un
“hecho” incontrovertible que sólo se resolvería con un “enfoque de prácticas de
ingeniería”, es decir, basado en la ciencia. Así se justificó la necesidad de la
“software engineering” como la nueva disciplina de computación que prometía
resolver el problema.

La revisión histórica, desde los Estudios Sociales de la Ciencia y la


Tecnología demuestra que la “software engineering” (ingeniería de software)
“se inventó” en 1968, en la famosa conferencia sobre este tema celebrada en
Capítulo 2. ¿Qué son las ciencias de la computación? 59

Garmisch, Alemania (cf. Ensmenger, 2001, p. 18; Mahoney, 2004; Shapiro,


1997; Naur y Randell, 1969) bajo auspicios de la Organización del Tratado del
Atlántico Norte (OTAN, NATO por sus siglas en inglés) y claro, por el DoD,
desde entonces, el mayor consumidor de software del mundo. Desde sus
orígenes, esta nueva ingeniería fue concebida “desde fuera” como de “otro tipo”,
es decir, como una ingeniería que uniera la técnica y el “management”
(Mahoney, 1998, p. 120) en la forma de “project management”, la “nueva”
administración que se había implantado en el DoD con sus subcontratistas
privados, precisamente con la ayuda de la computadora. Esto resultaba
atractivo gerencialmente hablando porque por fin se haría realidad la antigua
promesa del “project management” de proporcionar esquemas de trabajo
(“frameworks”, en inglés) y técnicas (Hodgson, 2004, p. 85) para lidiar con los
desafíos técnicos y gerenciales, pero todavía más importante era la posibilidad
de predecir y controlar el comportamiento de los trabajadores por medio de un
fuerte sistema gerencial de control burocrático (ídem, p. 88). Esto claramente es
un paralelismo con la promesa de la Administración Científica taylorista de
principios del siglo XX para el caso del trabajo en la manufactura, algo que ha
intentado materializar la ingeniería industrial, sin completo éxito.

En mi opinión, esa mezcla de intereses gerenciales es la razón fundamental


por la cual la ingeniería de software resultó tan desafiante para el DoD y por lo
mismo, ésta no es, ni será, una típica ingeniería si su objetivo es descubrir las
leyes naturales que gobiernan el trabajo en los proyectos de software,
suplantando la finalidad de la administración, algo que ninguna ingeniería ha
pretendido hacer. Lo mismo también válido para la administración de proyectos
que desde fines de los años 1950s ha impulsado fuertemente el DoD como el
nuevo paradigma de administración, hoy muy de moda en el mundo y en
México, bajo el esquema de outsourcing.

Lo anterior se aborda con mayor profundidad en el capítulo 4 así que baste


comentar aquí que con el invento de la ingeniería de software se subsumió y
60 La ingeniería de software: Una discusión epistemológica Jesús Zavala

ocultó el problema de la incapacidad gerencial ventilada veladamente en la


Conferencia de Garmisch (cf. Naur y Randell 1969) de controlar la estructura de
costos y tiempos de ejecución de los proyectos de software (cf. Mahoney 1990) y
la intención de controlar a los programadores, hostiles laboralmente a la
gerencia por controlar su propio trabajo, de manera similar a como lo hacían los
“artesanos” antes de la revolución industrial. Edsger W. Dijkstra, en una de sus
intervenciones en Garmisch lo puso más que en evidencia la predominancia de
las intenciones comerciales sobre las científicas, según la relatoría de la
conferencia: “… si la comunidad que lo manufactura lo ofrece [es decir, ofrece
las perlas de la virgen a los usuarios] sin inmutarse, entonces sólo puedo decir
que todo el negocio [de la computadora] está basado en un gran fraude [risas y
aplausos]” (Dijkstra en Naur y Randell, 1969, p. 11[7], traducción libre, énfasis
agregado).

Si la administración no podía controlar el trabajo, entonces, ¿para qué


estaba? Por ello, en mi opinión, es más plausible afirmar que la “crisis del
software” no fue tal sino más bien fue y sigue siendo una “crisis de
management”, una “crisis de project management”, una “crisis gerencial” por el
desconocimiento de la naturaleza de los proyectos y la falta de control
administrativo sobre los mismos dominada por la presión de los clientes, en
aquel entonces, principalmente del DoD, el mayor consumidor de software en el
mundo. Es en este contexto que se gestó el mito de la crisis del software y el
mito del fracaso rampante de los proyectos de software. Sin embargo, como la
gerencia subsumió su intención de control en el discurso de la “crisis del
software” esto no resultó tan evidente. (Para una discusión crítica más
profunda sobre los mitos de la administración y de los proyectos, revisar
Stewart (2009), Atkinson (1999), Hodgson (2004), Hodgson y Cicmil (2006),
Biedenbach y Müller (2011) y Thompson (2001).

Reinterpretando la invención de la ingeniería de software, se diría que lo


que ocurrió fue que tan pronto como las investigaciones y el desarrollo de la
Capítulo 2. ¿Qué son las ciencias de la computación? 61

computadora y su tecnología dejó de estar bajo el control exclusivo del DoD, los
científicos en computación se separaron de los ingenieros, como gremio y
crearon la ACM y con ello, tomaron fuerza y control de “su” incipiente ciencia y
la empujaron hacia su consolidación en contraposición con las intenciones
pragmáticas de los militares. De no ser así, resulta inexplicable la exclusión de la
ACM de la Conferencia de Garmisch, ya que no fue invitada, siendo que había
proyectos conjuntos en curso como el proyecto de la creación del “International
Institute of Computer Science” en 1968, mismo que se abandonó. Tampoco se
explica la “campaña” científica-política de desprestigio de la “computer science”
(y de la ACM) y el apoyo decidido de la “software engineering” que sólo existía
en el discurso. Así que, en mi opinión, considerándolo como un todo, el impulso
de una subdisciplina central de las ciencias de la computación fuera de ella, al
grado de competir con ésta e incluso de pretender ser superior, fue un duro
golpe político, sólo reconocido veladamente. Fue la represalia por no cumplir las
expectativas de “la industria” (léase el DoD y sus proveedores). Ahora, la
industria, en abstracto, dejaba en manos de los ingenieros de la IEEE el
desarrollo de esa nueva ingeniería, misma que hasta la fecha no ha logrado
consolidarse. Las consecuencias de esto se analizan en el capítulo 3.

Lo anterior explica por qué a principios de los años 1970s el DoD declaró
abiertamente “un mayor interés en el desarrollo de la ingeniería de software
como un cuerpo de métodos y herramientas para reducir los costos e
incrementar la confiabilidad de grandes programas [de cómputo]” (Mahoney,
1998, p. 120). En consecuencia, para mediados de los años 1980s, el DoD apoyó
la creación del Software Engineering Institute (SEI) en CMU y con ello se
institucionalizó la nueva disciplina que abogó por el pragmatismo orientado
hacia la administración de proyectos y hacia la conformación de una industria
estandarizada ahora bajo el discurso de “la calidad”, dejando de lado el
establecimiento de los principios fundamentales de la disciplina:
62 La ingeniería de software: Una discusión epistemológica Jesús Zavala

En los años 80s, la SOFTWARE INITIATIVE, empezó a favorecer la


creación de una área expresa de “software engineering”, distinta al
“computer science”, dado que había un problema de alcance
internacional que esta última ciencia no resolvía [aspecto que ya se aclaró
que era falso]. CMU se había destacado por una orientación hacia el
software y tenía un estilo de trabajo [de] ingeniero, orientado al
“programming”. Y CMU ganó el concurso convocado para construir un
centro nacional dedicado a la ingeniería del software. No obstante, sus
relaciones con el Computer Science no son todo lo estrechas que en un
principio se esperaban, según Angel Jordán.” (Serra, 1992, subrayado
agregado).

Por ello, la creación del SEI en CMU fue la institucionalización de la


ingeniería de software el control de la dirección de la disciplina por el DoD
mediante el jugoso financiamiento para la creación de los modelos
organizacionales “científicamente” validados que estandarizarían las empresas
de software que trababan para el DoD. Por lo tanto, con estos modelos
organizacionales ejercen un control indirecto de los procesos de producción de
software, algo que desde los años 1970s, el DoD no había podido imponer
totalmente mediante sus estándares militares a sus proveedores de software
(McDonald, 2009, p. 30), porque trabajar bajo un esquema de outsourcing
impide el control total del proveedor como si fuera un empleado propio. Así, con
el SEI a la cabeza el DoD controla el corazón de la ingeniería de software, que
repito, ha dejado de lado el establecimiento de sus principios fundamentales, un
tema bastante difícil, tarea que ha asumido la IEEE-CS, aún sin solución. En los
capítulos 3 y 4 se discute con más amplitud esto.

Considero que así como no fue posible controlar la “computer science” que
quedó en manos de la ACM, quizás tampoco sea posible controlar la ingeniería
de software, ahora parte en manos de la IEEE-CS, aunque en términos
prácticos, ya no importa porque esto se hace mediante la imposición del
Capítulo 2. ¿Qué son las ciencias de la computación? 63

cumplimiento de estándares como el Capability Mature Model – Integrated


(CMM-I)6 o el de Project Management del Project Management Institute (el
ANSI/PMI 99-001-2008) (PMI, 2008), que además son un negocio en sí por el
cobro de regalías por el uso, capacitación y evaluación, certificación y demás
derivados de estos modelos. En México, esto se ha impulsado fuertemente por
medio de convenios del SEI con universidades privadas como el Instituto
Tecnológico de Estudios Superiores de Monterrey (ITESM) y el Centro de
Investigación en Matemáticas (CIMAT), con convenios con empresas privadas y
con el apoyo gubernamental mediante fondos públicos del Programa de
Desarrollo de la Industria de Software (ProSoft). Sin embargo, no hay
evidencias empíricas definitivas de que esos modelos organizacionales sean
adecuados a la realidad mexicana.

Como puede percibirse, desde la invención de la ingeniería de software en


1968, ha habido prácticamente un paralelismo entre ésta y las ciencias de la
computación. Sin embargo, la ingeniería de software aún continúa carente de
sus fundamentos. Por ejemplo, una de las evaluaciones del estado de madurez
de la ingeniería de software asegura que sigue inmadura al compararse con
otras ingenierías (Pour, Griss y Lutz, 2000) y la iniciativa de la Software
Engineering Method And Theory (SEMAT) en 2010, confirmó que la situación
continúa. En cambio, las ciencias de la computación han logrado amplio
reconocimiento por sus fundamentos teóricos.

6Para una discusión más amplia sobre el impacto de la adopción del CMM-I, más allá de los
aspectos técnicos y desde otro paradigma, consultar Adler (2005).
64 La ingeniería de software: Una discusión epistemológica Jesús Zavala

2.7. Las ciencias de la computación hoy

Peter J. Denning en su artículo The Computing Field: Structure consideró


que las ciencias en la computación ya son una ciencia adulta. Él dividió los
períodos de la computación en infancia (1935-1950), niñez (1950-1970),
adolescencia (1970-1990), joven adultez (1990-2010) (Denning, 2008). Así que,
tomando ese esquema como base, en esta parte sólo trataré los debates de los
dos últimos periodos: 1970 al 2011. En 1985, Peter Denning en su ensayo The
Science of Computing. What is Computer Science? afirmó que ese cuerpo de
conocimientos tiene sus raíces en las matemáticas, la ingeniería y la lógica
(Denning, 1985, p. 16). Según él:

[la “computer science” es] … el cuerpo de conocimiento que involucra el


diseño, análisis, implementación, eficiencia y aplicación de los procesos
que transforman información. La pregunta fundamental común a toda la
ciencia de la computación es “¿qué se puede automatizar
(eficientemente)?” (Denning, 1985, p. 16, traducción libre).

A principios de 1989 la ACM y la IEEE publicaron el primer reporte


conjunto (Computing as a Discipline) que tuvo amplia influencia (Denning et
al., 1989), hizo tres importantes contribuciones:

1. Reconocía que las ciencias de la computación y la ingeniería en


computación tenían un conocimiento clave en común y utilizaron el
término “computing” (computación) para definirlo: “así, la ‘computing
discipline’ (disciplina de la computación) era una contracción de ‘the
discipline of computer science and engineering’ (la disciplina de las
ciencias y de la ingeniería en computación)” término que se usa desde
entonces con amplia aceptación y que se equipara al término europeo
‘Informatics’ (informática) (Denning, 2008, p. 7).

2. Se reconocía que los tres paradigmas: las matemáticas, la ciencia y la


ingeniería habían jugado papeles importantes en el campo. Las
matemáticas proveerían el rigor de la notación clara y el poder de la
lógica y la deducción. La ciencia proveía de los métodos experimentales,
el modelado, la validación de hipótesis y la inducción. La ingeniería o el
diseño daban el orden y la confiabilidad de los procesos para construir
grandes sistemas. El sabor único de la computación llegaba del juego
Capítulo 2. ¿Qué son las ciencias de la computación? 65

constante entre estos tres tipos de pensamiento. (ídem, énfasis


agregado).

3. Se reconocían nueve áreas clave de la computación con sus propias


identidades que incluyan “expertise” técnico, literatura y organizaciones
profesionales. (ídem).

Así surgió la concepción de la computación como “teoría, abstracción y


diseño” (Tucker y Wegner, 2004, sub-cap. 1.3). Más ampliamente, la teoría
tiene una base teórica, matemática y científica, es decir, los métodos formales de
las ciencias físicas, biológicas, del comportamiento y sociales. La teoría incluye
el uso de ideas abstractas y métodos tomados de los subcampos de las
matemáticas tales como la lógica, el álgebra, el análisis y la estadística; incluye
el uso de varias técnicas de argumentación, como la inducción y la
contradicción, el establecimiento de las propiedades de los sistemas formales
que justifiquen y expliquen lo subyacente en los algoritmos y las estructuras de
datos básicas utilizados en los modelos; los problemas si solución
algorítmicamente pertenecen a este paradigma; los algoritmos y la complejidad,
los sistemas inteligentes, la ciencia computacional y los lenguajes de
programación pertenecen a este campo (ídem).

La abstracción en la computación es la parte experimental o la ciencia


aplicada; incluye la investigación científica, el modelado y la experimentación y
prueba de la validez de las hipótesis sobre el fenómeno computacional; la
abstracción de la máquina de Turing sirve de modelo abstracto para la
arquitectura de computadoras reales complejas y para los lenguajes de
programación; la heurística también se utiliza en problemas y algoritmos
computablemente intratables; la graficación y la computación visual con sus
modelos tridimensionales resultan herramientas útiles en este paradigma.
(Tucker y Wegner 2004, sub-cap. 1.3).

Por último, el diseño es el aspecto de ingeniería; es un proceso que modela


la estructura esencial de los sistemas complejos como preludio de su
66 La ingeniería de software: Una discusión epistemológica Jesús Zavala

implementación práctica; utiliza los métodos tradicionales de ingeniería (sic)


que incluyen el modelo ciclo de vida clásica, la implementación eficiente y útil
de sistemas computacionales en hardware y software; el uso de herramientas
como el análisis beneficio/costo, análisis de riesgos y tolerancia a fallas que
asegura que las aplicaciones de cómputo se implementen de manera efectiva
(lamentablemente, muchos de esos métodos, nunca han sido una regla, sino una
excepción); el diseño es una preocupación central de los arquitectos de
computadoras y de los ingenieros en software que desarrollan sistemas de
hardware y aplicaciones de software. El diseño es una actividad especialmente
importante en la ciencia computacional, el manejo de información, los sistemas
operativos y la computación centrada en red (Tucker y Wegner, 2004, sub-cap.
1.3). El diseño fue, claramente, la posición de la IEEE-CS, la inclusión del
campo de la ingeniería de software como parte de las ciencias de la
computación o de la computación como se le llamó.

La computación como “teoría, abstracción y diseño” fue la base del


Currículum 1991 de la ACM/IEEE como el primer intento conjunto de unión
intelectual entre la ACM y la IEEE. Sin embargo, esa anhelada unión nunca ha
llegado a consumarse y posiblemente, no se logre si las cosas siguen
separándose como hasta ahora. Una de las divergencias es entre el dominio de
una “rigurosidad científica”, al estilo clásico, y el “oportunismo práctico” de la
ingeniería de software, que para que no se le descalifique como “no ingeniería”
abraza la “rigurosidad científica”, pero sólo en el discurso. Por otro lado, el
hecho de que prácticamente los tres discursos tengan el mismo peso, hace que
se avance, aunque cada uno por su propio lado. Es una mezcla sui generis de
paradigmas aparentemente inconmensurables. Es lo Matti Tedre denominó
“una anarquía ontológica, epistemológica y metodológica que inhibe el
dogmatismo porque no hay ontología, epistemología o metodología que pueda
proclamar superioridad sobre las otras” (Tedre, 2006b, p. 23). Sin embargo, la
debilidad está del lado de la ingeniería de software que ha resultado incapaz de
Capítulo 2. ¿Qué son las ciencias de la computación? 67

establecer sus principios fundamentales, en mi opinión, por continuar


obstinada en descubrir las leyes del trabajo de los proyectos de software, una
tarea que le corresponde a la administración, aspecto que se discutirá
ampliamente en los capítulos 3 y 4.

Aunque se ha avanzado, la visión de Newell, Perlis y Simon (1967) aún sigue


presente, si bien ya no es la visión dominante (Denning, 2001, p. 16). En este
sentido, no es aceptable considerar que “la computadora [sea] a la computer
science como el telescopio es a la astronomía” (una frase atribuida a Edsger
Dijkstra), ya que “la computadora es una herramienta importante en computer
science, pero no es ella misma su objeto de estudio”, o más bien, no sólo es ella
misma su objeto de estudio. Por lo tanto, la pregunta central de las ciencias de la
computación es: ¿Qué puede ser calculado? De manera extendida, hoy en día, la
epistemología de la computación persigue las mismas preguntas que en sus
orígenes, algunas de las cuáles son las siguientes: ¿Qué es computable?, ¿Qué es
inteligencia?, ¿Qué es información? y ¿Cómo podemos construir sistemas
complejos de manera simple? (Wang, 2008, p. 58). Además, se incluyen las
preguntas sobre la automatización, tales como: ¿Qué puede ser automatizado?
¿Qué puede ser, en principio, eficientemente automatizado? ¿Cómo
automatizamos cosas confiablemente y eficientemente? ¿Qué debe ser
automatizado? (Tedre, 2008, p. 47). Todas estas preguntas tienen implicaciones
importantes en lo teórico y lo práctico pero se extienden a lo social y lo ético y
resultan más relevantes conforme la computación se vuelve cada vez más
centrada en lo humano.

En cambio, para Peter Denning, la “computación es universal e inevitable”,


además “lo computacional es un método esencial de cómo hacer ciencia”
(Denning, 2009, p. 3), lo que la justifica ser, “ajonjolí de todos los moles”, como
reza un refrán popular en México, es decir, estar en todas las ciencias. Para este
autor, la “computación está presente en la naturaleza cuando los científicos no
están observándola o pensando en ella” (ídem, p. 4). Es decir, para él la
68 La ingeniería de software: Una discusión epistemológica Jesús Zavala

computación es una ontología en el amplio sentido de la palabra pues tiene


existencia propia como objeto (de conocimiento), independientemente de que
exista algún sujeto interesado en conocerla. En este sentido, para este autor, la
“computación es más fundamental que el pensamiento computacional”, por eso
es más apropiado considerar que la computación es “el estudio de las
propiedades fundamentales de los procesos de información, tanto naturales
como artificiales” y que “las computadoras [electrónicas] son la herramienta,
no su objeto de estudio” (ídem, p. 4, énfasis agregado). Así, Peter Denning
descarta la construcción social del cálculo y de la computación como tecnología
y como ciencia, surgidos y desarrollados en un contexto histórico determinado
asignándole al cálculo y a la información valor óntico, lo cual puede ser
discutible tal como se abordó en el capítulo 4. Además de que esta postura está
en contradicción con uno de los supuestos básicos del construccionismo social
como se trató en el capítulo 1.

Peter Denning concluyó sugiriendo que “el valor real de las ciencias de la
computación está en las ofertas que seamos capaces de hacer con nuestro
expertise” como profesionales en computación, “expertise” “fundado en un
discurso rico y profundo”. En este sentido, su propuesta es pragmática:
“seremos valorados cuando hayamos ayudado a otros a resolver los problemas
que les preocupan. No somos más valiosos por nuestro pensamiento
computacional, sino por nuestras acciones computacionales” (Denning, 2009,
p. 30), es decir, la teoría importa, pero más la aplicación práctica mediante la
computación manifiesta en los sistemas de información. En mi opinión, esto ya
es un hecho: la computación ha operado, aún sin ninguna teoría plausible, por
lo que muchas de ellas se han generado después de la “experimentación” o
prueba y error de la implementación, en una especie de bricolaje social, en el
sentido de reciclar las ideas y las formas de organizar y hacer las cosas
(Domenico, Haugh y Tracey, 2010, pp. 670ss).
Capítulo 2. ¿Qué son las ciencias de la computación? 69

La computación nació de una tecnología, y “su emergencia ha sido


especialmente confusa por el origen de la computadora como un dispositivo de
ingeniería y manufacturado” (Newell, 1990, p. 41, citado por Serra, 1992). La
dualidad hardware y software prevalece y se complica cuando esta tecnología se
aplica de manera transversal a todas “las otras” disciplinas. Según Serra (1992),
J.S. Birbaum, miembro del Computer Science Department de IBM T.J. Watson
Research Center, sostenía que:

Para mí, la Computer Science es una ciencia emergente; yo veo que es


una ciencia experimental como aquellas cuya naturaleza es a lo más
interdisciplinaria… La Computer Science no difiere en estas
consideraciones de otras ciencias más establecidas…” (Birbaum, 1981, p.
352, citado por Serra, 1992).

Desde sus orígenes, la computación ha sido interdisciplinaria, a pesar de


que se haya utilizado predominantemente el pensamiento matemático para
legitimarse y erigirse como disciplina científica; no hubo otro camino.

2.8. Los modelos curriculares para México

Para el caso de México, el desarrollo curricular se puede considerar que ha


alcanzado un nivel de institucionalización elevado. Guillermo Levine, Victoria
Bajar y un equipo de académicos mexicanos crearon los Modelos Curriculares
en Informática y Computación para la Asociación Nacional de Instituciones de
Educación en Informática (ANIEI) en los años 1980s y desde 1986, sirven de
base para la creación, normalización y comparación de los más importantes
planes de estudio en computación. En los Modelos Curriculares se incluyó lo
propuesto en su momento por el currículo de la ACM, sin embargo, éstos no son
actualizados con la regularidad, ni en la amplitud de los cambios propuestos por
la ACM, por lo que en un cierto sentido están desactualizados. Los Modelos
Curriculares se utilizan para la acreditación de los planes de estudios (por
medio del Consejo Nacional de Acreditación en Informática y Computación,
CONAIC) y la certificación de los egresados (por medio del Centro Nacional de
70 La ingeniería de software: Una discusión epistemológica Jesús Zavala

Evaluación para la Educación Superior, Ceneval) (cf. Levine, 2001, cap. 0).
Guillermo Levine afirmó que en 2001 aún eran demasiadas las escuelas en
donde todavía se seguía confundiendo el estudio de la computación con el uso
cotidiano de las computadoras personales y sus sistemas y ‘paquetes’ (software)
(ibid, p. 6). En mi opinión, adicionalmente, existe la creencia de que las carreras
en informática son “muy sencilla”, igual que las de administración y por eso
abundan estos programas, formalmente bien hechos, pero con grandes
deficiencias en la calidad de sus egresados.

Los Modelos Curriculares establecieron los perfiles para cuatro títulos


genéricos: Licenciatura en Informática, Licenciatura en Sistemas
Computacionales, Licenciatura en Ciencias de la Computación e Ingeniería en
Computación. La intención de estos modelos fue que, al cumplir con ellos, los
estudiantes tengan una “preparación rigurosa en la teoría, práctica y
metodología computacionales”, además de desarrollar una “disposición y
capacidades para trabajo y dialogo en forma interdisciplinaria y grupal” (Levine,
2001, p. 4).

Las áreas generales de conocimiento de los modelos curriculares de la


ANIEI son 8: 1. Entorno social, 2. Matemáticas, 3. Arquitectura de
computadoras, 4.·Redes, 5. Software de base, 6. Programación e ingeniería de
software, 7. Tratamiento de información y 8. Interacción humano-máquina.
(Levine, 2001, p. 5ss). El autor también destacó también que estos modelos
requieren una actualización periódica, de manera similar a como ocurre en el
mundo, sin embargo, no ha ocurrido en la celeridad, ni en la magnitud que ha
ocurrido en la ACM, que es la referencia mundial. Por ejemplo, la última
actualización de los Modelos Curriculares se dio recientemente, pero
esencialmente, permanecen igual que como fueron establecidos en 1986 (cf.
Asociación nacional de Instituciones de Educación en Tecnologías de la
Información [ANIEI], 2011).
Capítulo 2. ¿Qué son las ciencias de la computación? 71

En cambio, el Curriculum 2008 de la ACM incluyó las mismas 14 áreas de


conocimiento del Curriculum 2001: 1. Discrete Structures (DS) (Estructuras
Discretas), 2. Programming Fundamentals (PF) (Fundamentos de
Programación), 3. Algorithms and Complexity (AL) (Algoritmos y complejidad),
4. Architecture and Organization (AR) (Arquitectura y Organización), 5.
Operating Systems (OS) (Sistemas Operativos), 6. Net-Centric Computing (NC)
(Computación Centrada en Red), 7. Programming Languages (PL) (Lenguajes
de Programación), 8. Human-Computer Interaction (HC) (Interacción
Humano-Computadora), 9. Graphics and Visual Computing (GV) (Gráficas y
Computación Visual), 10. Intelligent Systems (IS) (Sistemas Inteligentes), 11.
Information Management (IM) (Manejo o Administración de Información), 12.
Social and Professional Issues (SP) (Problemas Sociales y Profesionales), 13.
Software Engineering (SE) (Ingeniería de Software) y 14. Computational Science
(CN) (Ciencia Computacional) (Cassel et al., 2008, p. 16). Sin embargo, en el
Curriculum 2008 se le dio más énfasis en lo pedagógico y así responder a la
“Computing crisis” que es la escases de estudiantes en estas áreas.

Los últimos esfuerzos de renovación de normalización de los planes de


estudio en México, se dieron a raíz de la puesta en marcha del Programa para el
Desarrollo de la Industria del Software en México (ProSoft) en 2002 (por
ejemplo, ver el reporte Universidad Autónoma Metropolitana (UAM, 2004)).
Resulta pertinente retomar que la preocupación de los educadores que han
participado en la elaboración de las propuestas curriculares que es la mejor
formación de los estudiantes. Sin embargo, la computación es un campo muy
vasto que carece de enseñanza en metodologías como lo documentó Tedre
(2006a, p. 353). Además, se enfatiza mucho en lo práctico y la tecnología del
momento, en detrimento de lo básico y teórico, como por ejemplo, en la
ingeniería de software. Sin embargo, hay propuestas interesantes como la de la
Southeastern Louisiana University que sestá enfocada en desarrollar
72 La ingeniería de software: Una discusión epistemológica Jesús Zavala

habilidades complementarias más allá del curriculum, por ejemplo en


Beaubouef, Zhang, Alkadi y Yang (2011).

Ahora bien, las últimas reflexiones que hay en torno a la educación en


ciencias de la computación confirman su carácter transdisciplinario, de manera
abierta o no. Hoy, incluso ya existen las disciplinas computacionales aplicadas
en prácticamente todos los campos que han conformado lo que se ha dado en
llamar la “computación+X” (“computacional+X”) (Appendix: Breakout sessions
from The Future of Computing Education Summit, 2009, p. 16), tales como la
“bioinformatics” (Luscombe, Greenbaum y Gerstein, 2001) en la biología, la
“construction informatics” en la ingeniería civil (Turk 2006) y la “geomatics”
(Duckham, Kealy y Wallace, 2009) y la “GIS Science” (Goodchild, 2009) en la
geografía, por citar sólo unos cuantos ejemplos. Sin lugar a dudas, la
computación “es un amplio campo que se extiende mucho más allá de los
límites de las ciencias de la computación” (Cassel et al., 2008, cap. 1) y como
nunca antes, la tecnología es producto de los avances científicos en las ciencias
de la computación y viceversa, y en el caso de la computación, tiene un efecto
más drástico. Por eso, el desafío de cualquier currículum es centrarse en los
principios fundacionales (Gal-Ezer, Beeri, Harel y Yehudai, 1995, p. 2) que
definen y custodian las ciencias de la computación para que la educación
perdure en el tiempo y se logre la sustentabilidad educativa.

2.9. Discusión final

Las ciencias de la computación como disciplina o campo de conocimiento,


surgieron cuando la computadora dejó de estar bajo la tutela exclusiva de los
militares, en Estados Unidos, Gran Bretaña, Alemania y Japón. Sin embargo, de
manera reconocida, se originó primero de la ingeniería eléctrica pero muy
pronto, aquellos primeros ingenieros y científicos expertos en la computadora,
fueron capaces de generar las estructuras sociales que le permitieron
legitimarse, quizás más rápido que cualquier otra. En 1947 crearon la primera y
Capítulo 2. ¿Qué son las ciencias de la computación? 73

la más antigua asociación en el mundo, la Association for Computing


Machinery, distanciándose de los intereses comerciales y orientándose a lo
científico y académico, como las prioridades. Para 1958, el nombre de
“computer science” quedó establecido. Después se dio un periodo de intensas
confrontaciones por el reconocimiento hasta fines de los años 1960s. En una
lucha política, los científicos pioneros en ciencias de la computación,
provenientes de varias ciencias naturales y sociales reconocieron sus raíces en
Alan Turing y en su honor, a partir de entonces se otorga una presea que lleva
su nombre, considerada el premio Nobel de las ciencias de la computación.

La computadora es una tecnología de origen interdisciplinario, impulsado


por el DoD con fines militares. Por eso, las ciencias de la computación se
amalgamaron en un enfoque sui generis interdisciplinario dirigido a la solución
de problemas prácticos en negocios, en sentido amplio, mediante la
computadora electrónica. Este poder lo dio el software que tuvo un explosivo
crecimiento hasta volverse una industria. En esa vorágine de crecimiento se
demandó y luego se acusó de incompetencia a las ciencias de la computación
por no ceder a los intereses comerciales y volverse pragmática. Estas diferencias
políticas motivaron que la OTAN promoviera una disciplina alterna a las
ciencias de la computación. Así surgió la ingeniería de software, en el discurso,
en 1968 que fue el más duro golpe político a la joven disciplina.

A más de 50 años de distancia, las ciencias de la computación siguen


creando teorías y sigue rompiendo paradigmas metodológicos y epistemológicos
y siguen creando sus propios conceptos. Términos como “program”,
“algorithm”, “bit”, “software”, “hardware”, “display”, “compiler”, “semaphore” y
muchísimos otros fueron creados por sus más reconocidos protagonistas.
Algunos fueron literalmente invenciones, otros fueron derivados de otras
ciencias y los menos, de sucesos anecdóticos como el “computer bug”, atribuido
a Grace Hopper en referencia a la polilla voladora que pegó en su bitácora,
después de que provocó el apagón de su computadora al atorarse en un relay
74 La ingeniería de software: Una discusión epistemológica Jesús Zavala

mientras la programaba. El Sistema de Clasificación de Computación de la ACM


da cuenta del enorme campo. En suma, las ciencias de la computación han
ampliado su abanico de disciplinas y se ha fortalecido con el desarrollo de su
teoría al interactuar con todos los campos y ha logrado una muy buena
reputación.

Por otro lado, desde mi punto de vista, en la historia de las ciencias de la


computación, ninguna de “sus” disciplinas le ha sido tan antagónica en lo
política y en lo intelectual, como la ingeniería de software. Las consecuencias de
la fractura, provocada por la “invención” y el divorcio de la ingeniería de
software de su matriz, las ciencias de la computación, están a la vista. Ambas
disciplinas se necesitan mutuamente y por ello, la solución es reconciliarse y
asumir que las ciencias de la computación son sólo un paraguas y la ingeniería
de software debe aceptar que no es, ni será su reemplazo, como alguna vez
pretendió. Sólo así la ingeniería de software podría abrazar sin competencia, ni
amenaza alguna, los fundamentos teóricos que necesita de las otras disciplinas
hermanas y establecer su propia teoría y volverse sólida y predecible. Es
momento de terminar con ese divorcio y restablecer la unión.

2.10. Conclusiones

Si se reconoce que el objeto central de las ciencias de la computación es la


información y su automatización y que todas las ciencias de la computación
contribuyen de alguna manera a ello, sin que lo resuelvan completamente,
entonces estamos ante un campo disciplinario de campos disciplinarios y no
una disciplina. Hoy son 14 grandes campos disciplinarios, cada uno con
ontologías, epistemologías y metodologías propias, no siempre compatibles
entre sí, sino más bien, complementarias. De hecho, las ciencias de la
computación, nunca han sido una disciplina y si lo fueran, ésta sería, sin temor
a equivocarme la primera gran interdisciplina o transdisciplina moderna.
Capítulo 2. ¿Qué son las ciencias de la computación? 75

Sin embargo, que las ciencias de la computación sean un paraguas


interdisciplinario no es más que reconocerlas como una postura
epistemológica, que como todas las de esta categoría, tienen un carácter
ecléctico, anárquico y oportunista y a la vez, conciliatorio. De manera particular,
la mayoría de estos científicos se han vuelto “bricoleurs” y han tomado lo que
tenían a la mano y han resuelto problemas prácticos rompiendo paradigmas, en
un collage ontológico, epistemológico y metodológico, que a decir por los
resultados tecnológicos y la innovación generada, ha resultado pertinente. Esto
quizás sea un área de investigación fructífera en el futuro, pues implica el
cuestionamiento del positivismo lógico en un área muy ligada a la tecnología y
al pensamiento racional dominante.

Precisamente por lo anterior, el pensamiento matemático tiene su ámbito


de aplicación, igual que lo tienen la inteligencia artificial o los principios de
diseño en la arquitectura del software o de las interfaces humano-computadora.
Así que, en mi opinión, lo más importante debería ser dotar a los estudiantes
en ciencias de la computación de herramientas conceptuales para manejar esa
interdisciplinariedad, cosa que no ocurre. Si bien, la especialización es
necesaria en aspectos técnicos, en términos epistemológicos es más importante
aprender a integrar esos reduccionismos y extenderlos con otras miradas. Por
ello, considero que, de manera semejante, como se hace en este trabajo con la
ingeniería de software, debería emprenderse un esfuerzo importante en discutir
las implicaciones de reconocerle a las ciencias de la computación su carácter
multidisciplinario. Lo anterior me llevó a considerar la necesidad de definir y
enseñar la filosofía de las ciencias de la computación7, quizás, por sus

7¿Sería por eso que uno de los nombres manejados para aquellos primeros trabajadores de las
computadoras fue “Applied Epistemologist”?
76 La ingeniería de software: Una discusión epistemológica Jesús Zavala

implicaciones, la asignatura más importante en todo curriculum, de tal forma


que permita volverlo inmune ante el acelerado cambio de la tecnología y el
enorme impacto en la carrera profesional de todos los profesionales en
computación. Quizás éste es el desafío más importante de los profesores.

La segunda conclusión es que el surgimiento de la ingeniería de software y


luego su adopción por parte de la IEEE, fue un duro golpe político a la
hegemonía que logró la ACM, situación que recientemente está comenzando a
reconciliarse, como lo muestran las últimas propuestas curriculares. Pero
conviene reconocer que muchas de las ciencias de la computación custodian y
desarrollan los principios de necesita la ingeniería de software. Así, la dualidad
hardware-software, es el corazón de las ciencias de la computación y la amplia
gama de aplicaciones lo complementa. Las ciencias de la computación han
resultado ser más exitosas que la ingeniería de software, su ciencia, que en
franca rebelión, ha reusado desarrollarse bajo la tutela de las ciencias de la
computación, así que quizás, lo que se necesita es la creación de la Ciencia del
Software, como intentará demostrarse en los capítulos siguientes.

Potrebbero piacerti anche