Diseño de Software:
¿Ciencia, Ingeniería o Arte?
Por Jesús Zavala
Profesor de la Fundación Arturo Rosenblueth / Est. Org. UAM-I
Congreso Nacional de Software Libre 2005
Universidad Autónoma Metropolitana
[email protected] http://www.angelfire.com/scifi/jzavalar
México, D.F. 22-25/feb/2005
Agenda
1. El software y su importancia
2. La ciencia. En busca de los principios
3. La ingeniería. La mejor forma
4. El arte. La anarquía organizada
5. El diseño de software. ¿Es posible?
6. Conclusiones
7. Referencias
¿Por qué estudiar el diseño?
¿Podemos diseñar mejor enfocándome en
el proceso de diseño?
¿Podemos enseñar a otros el diseño?
¿Podemos organizar y administrar el
diseño?
¿El diseño es ciencia, ingeniería o arte?
Analicemos la situación …
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
2
[email protected]
1. ¿Qué es software?
IEEE
Software es “la suma total de los
programas de cómputo,
procedimientos, reglas y
documentación y datos asociados que
forman parte de las operaciones de un
sistema de cómputo” [IEEE 1995]
- Lo invisible y etéreo
- “El alma de la compu”
- “El coco” de los “analfabetos tecnológicos”
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
3
[email protected]
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
4
[email protected]
Importancia del software
El poder del software
El gran invento del siglo XX… Turing, Von Newmann
Es omnipresente, está en todo: la lavadora, el
tostador, el walkman, la TV, el despertador, el juguete,
el banco, la tienda, etc. y todavía falta más…
¿Es el nuevo “big brother”? (¿Que todo lo vé y lo sabe?)
El activo más importante de la organización moderna
(“Monsters Inc”)
El medio para la comunicación y coordinación más
potente (Internet / intranet / extranet, “Voice over IP”)
El motor de la “nueva” economía, el comercio
. electrónico, la “Webonomics” (conocimiento = poder)
La automatización
Pero… también es…
La esperanza de mejorar la productividad
La punta de lanza de la Reingeniería y la TQM
El enemigo de la fuerza laboral
La amenaza de las filas obreras de despido
El pretexto para los despidos masivos por reemplazo
La base del “nuevo” paradigma económico
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
5
[email protected]
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
6
[email protected]
1
La crisis del software
El cohete Ariane 5 de la Agencia Espacial Europea se autodestruyó
- Una falla en el sistema de control de rastreo (varios millones en pérdidas)
La NASA en 1999 pierde un satélite en Marte
- La conversión incorrecta entre unidades inglesas y métricas
El Aeropuerto de Denver se retrazó
- Retraso de la apertura del aeropuerto 16 meses ($1 millón dólares/día)
El Proyecto Génesis Departament of Motor Vehicles (DMV) del
estado de Nevada EU
- Trastocó todos los órdenes de poder en la organización intentando cambios
en los sistemas, la estructura, la gente y la cultura
- El costo del proyecto se elevó de $34 a $173 millones de dólares
- El retraso del servicio aumentó de 40 minutos a 7 horas
En EU en 1995, se destinaron 81 mil millones de dólares por año a
proyectos de desarrollo de software (Standish Group 1995)
Zavala (2004)
El desarrollo de software real 1
La práctica profesional
- Ni ciencia, ni ingeniería, ni arte
- Una práctica ad-hoc
- Certificación: ilusión de calidad y un gran negocio
Los procesos de desarrollo
- Rigurosos y laxos a la vez
- No existen los mejores procesos
Los desarrolladores
- Talentosos y con habilidades pero pocos
- Todólogos: importa el costo no las habilidades
- Sin planeación de carrera
- Ni mentoría: no hay transferencia de conoc
- Sobreexplotados (12-16 hr/dia) (Ben Ari:2004)
- Sometidos por el management: La cultura de la excelencia
(Peters y Waterman 1985)
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
7
[email protected]
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
8
[email protected]
El desarrollo de software real 2
La industria del software
- Muy lejos de convertirse en una industria madura
- Altos índices de fracasos y promesas incumplidas
- Algo de know-why (el saber por qué, ciencia)
El conocimiento
- Las mejores prácticas son aquellas que se adaptan
a las particularidades de la empresa de software
- No se aprovechan las capacidades de la gente
- Visión cortoplacista de corte económico (Ben Ari:2004)
- No hay transferencia de habilidades
- Imposible hacer bases de conocimiento tácito:
• know-what – el saber qué
• know-how – el saber hacer
• know-who – el que sabe
2. La ciencia. En busca de los principios
Conocimiento exacto y razonado de ciertas cosas
Conjunto de conocimientos fundados en el estudio
Pequeño Larousse
Proceso sistemático para entender cómo trabaja el
mundo natural
Ejemplos:
- Ciencias naturales
- Ciencias sociales
- Ciencias de la computación
Basada en: la filosofía, la lógica, la epistemología
y la ética
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
9
[email protected]
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
10
[email protected]
La ciencia. Sus visiones
La ciencia. Su método
La búsqueda de “la verdad”
Generalmente ignora los intereses del
investigador, aunque en su visión
posmodernista no
El pensamiento científico y su dualidad
(¿ambos?)
- Deductivo vs inductivo
- Racional vs irracional
- Objetivo vs subjetivo
- Positivista vs constructivista
- etc.
Ciencia = “investigación científica a través
del modelado y simulación de procesos
físicos en computadoras”
“La ciencia, tradicionalmente se ha visto
como un paradigma para descubrir las leyes
de la naturaleza”
“el paradigma consiste en formular una
hipotesis, realizar predicciones basadas en
la hipótesis, recolectar datos y analizar los
datos para confirmar o rechazar la hipótesis”
(Denning 1999:31)
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
11
[email protected]
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
12
[email protected]
2
La ciencia. Sus atributos
“Atribuirle perfección al conocimiento
científico, es además de una falsedad, una
torpeza ya que implica quitarle su mayor
mérito y su principal atractivo: ser obra,
exclusivamente, del ser humano…
Lo característico es su perpetuo
interrogante respecto de ella misma…
Todas la formas de conocimiento científico
están apenas brotando”
Fregoso (1988:84)
La ciencia. ¿Ciencias de la computación?
“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:16)
La base de la ingeniería de software
Los principios básicos
Basada en tres paradigmas:
- Ciencia: leyes y principios de la naturaleza (?)
- Matemáticas: algoritmos, álgebra booleana, etc.
- Ingeniería: El diseño de ingeniería y aplicación práctica
Denning (1999:29)
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
13
[email protected]
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
14
[email protected]
Las ciencias de la computación. ¿Base del software?
Las ciencias sociales. ¿El eslabón perdido?
Una ciencia basada en otras ciencias que se
aplica a éstas
Ciencias
Ciencias
de la
Computación
Matemáticas
Ingeniería
de Software
Ingeniería
Arte
Conocimiento científico enfocado al estudio del ser humano
como ser social
Estudian la realidad social: al hombre, los grupos y las
sociedades
La visión soft no presente en el software
La predicción no es su mejor atributo
Apertura a todas las posibilidades
Convergencia y divergencia a la vez y crítica constante
Ejemplos:
- Antropología, sociología de las organizaciones
- Economía, administración
- Estudios organizacionales: estrategia, decisiones…
- Teoría de la organización: ¿aporte a la ing de requerimientos?
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
15
[email protected]
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
16
[email protected]
La Ciencia. Resumen
3. La ingeniería. La mejor forma ante todo
Las ciencias sean exactas, naturales o sociales se
centran en la búsqueda de los principios que
describen y explican a sus respectivos objetos de
estudio
Utiliza el método científico como guía para plantear
y resolver sus hipótesis y plantear teorías
Pretende ser “la verdad” que lo explica,
independientemente del sujeto que la estudia
Las ciencias sociales son menos predictivas por
centrarse en el estudio del ser humano en
sociedad, pero permiten la amplia exploración
filosófica, metodológica y teórica
- Modelos de organización
- Estrategia
Aplicación de las ciencias… a la invención,
perfeccionamiento y utilización…
Conjunto de estudios que permiten determinar…
las orientaciones más deseables, la mejor
concepción, las condiciones… óptimas y los
materiales y procedimientos más adecuados
Ingeniería civil
Ingeniería electrónica
Ingeniería de software… ¿es predecible y única?
Pequeño Larousse
-
-
-
Basada en las ciencias
La mejor forma de hacer las cosas:
-
one-best-way (F. W. Taylor) OCT
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
17
[email protected]
Diseño de Software: ¿Ciencia, Ingeniería o Arte?
18
[email protected]
3
¿Cómo piensan los ingenieros el diseño?
Lo equivocado de este model
Comentarios de: Diseño de software: ciencia, ingeniería o arte (0)
No hay comentarios