En esta charla vamos a cuestionarnos el titulo aspiracional de "ingenieros” que nuestra disciplina aboga.
Para esto, revisaremos otras profesiones para compararnos y ver que tenemos en común y a que nos parecemos mas. Pasaremos por distintas disciplinas como la pintura y la música, luego por otras ingenieras como la aeronáutica y finalmente por disciplinas mas abstractas como la filosofía o psicología.
Revisaremos también los origines de la ingeniería en general, y de nuestra ingeniería en particular.
Con este viaje esperaremos reivindicar las metodologias ágiles y su lugar en el mundo del desarrollo de software, y como fin ultimo, hacer un llamado a despertar el pensamiento critico que dio origen a este movimiento ágil hace mas de 15 años
5. en•gi•neer /ˌɛndʒəәˈnɪr/ n.
Del inglés Engine’er (c.1300)
Persona que opera un motor o
máquina
Del latin ingenium
Maquina (de guerra) producto del
ingenio humano
Ingeniarius: soldado especializado que conoce y
maneja maquinas de guerra
6. ¿Qué es la ingeniería realmente (u hoy en día)?
Mary Shaw – Software Engineer
Crear soluciones eficientes…
…a problemas prácticos…
…aplicando conocimiento científico …
…construyendo cosas …
…al servicio de la humanidad.
La
ingeniería
habilita
a
personas
comunes,
a
hacer
cosas
que
antes
requerían
a
personas
virtuosas.
-‐-‐Mary
Shaw,
1996
7. ¿Qué
es
entonces
la
ingeniería
de
soDware?
Foco en el control y
la administración/gestión
de proyectos
Analisis
preliminar
Diseño
Desarrollo
TesJng
Mantenimiento
Waterfall Model
8. ¿Qué
es
entonces
la
ingeniería
de
soDware?
Crear soluciones eficientes
a problemas prácticos computables
aplicando conocimiento científico
desarrollando sistemas informáticos
al servicio de la humanidad.
“Ingeniería de software es la aplicación sistemática del conocimiento
científico en la creación y construcción de soluciones (“cost-effective”)
para resolver problemas prácticos al servicio del hombre.”
9. La creación de la “Ingeniería de Software”
Crisis en
industria
del
software
Éxito en la
ingeniería
civil,
automotriz
y
aeronáutica
Ingeniería
de
software
1968 – Conferencia OTAN
10. La
herencia
El software es “design intensive” y los costos de manufactura son bajos
Por ser abstracto y simbólico, la complejidad en el software no esta dada
por las leyes físicas, sino por limitaciones intelectuales
Lo que nos hace diferentes…
Diseño
Construcción80%
20%
14. Los hermanos Wright – Pioneros de la ingeniería aeronática
Pero…
¿Cómo se imaginan que se creo el avión?
15. ¿Qué fue lo distinto que hicieron los hermanos Wright?
Mayor foco en buscar cosas que habían fallado que en ver de que
beneficiarse. Búsqueda de errores a evitar
Capacidad para llevar modelos conceptuales a construcciones concretas
mediante un ciclo de trabajo bien definido
La continuidad en su trabajo. Construían sobre las mismas estructuras
básicas y conceptos de principio a fin. “Ever evolving design”
Uno de los logros que los destaco fue el “fligth testing” y el proceso de
“data feedback” en el diseño
16. Identificaban
una solución
Iban al aire
a probar
Definían un
problema
////// Ciclo de trabajo de los hermanos Wright
Donde
puede
ser
encontrada?
Como
incorporarla
en
el
diseño?
Que
información
necesitamos
?
Hay
dos
formas
de
aprender
a
montar
un
caballo.
Lo
mismo
pasa
con
volar.
Lo
mismo
para
con
la
construcción
de
soDware
22. ////// Ingeniería aeronáutica - Conclusiones
Feedback inmediato
Presencia del testing
Diseño y construcción iterativo incremental
Importancia del piloto
24. “When I speak about
computer programming
as an art, I am
thinking primarily of
it as an art form, in
an aesthetic sense…”
“…My feeling is
that when we
prepare a program,
it can be like
composing poetry
or music.”
Donald Knuth – Computador científico
25. El proceso
de creación
en la música
“La versión aceptada sugiere que una extraña mirada
se dibuja en la cara del compositor clásico y este
empieza a garabatear furiosamente una composición
elaborada de la perfección que de otra forma no
habría existido… pero creo que el proceso creativo
se aparta casi en 180 grados de este modelo...”
David
Byrne
–
Talking
Heads
31. ////// Arte - Conclusiones
Se descubre mientras se hace
No se nace con una idea final
Proceso iterativo de creación
“Un programador que subconscientemente
se vea a si mismo como un artista,
disfrutará lo que haga y lo hará mejor…”
32.
33. Psicología - Proceso de Aprendizaje
Jean Piaget – Psicólogo constructivista francés
“…entregar
al
alumno
herramientas
que
le
permitan
construir
sus
propios
procedimientos
para
resolver
una
situación
problemáJca,
lo
que
implica
que
sus
ideas
se
modifiquen
y
siga
aprendiendo
con3nuamente...
..así
el
proceso
de
enseñanza
se
percibe
y
se
lleva
a
cabo
como
un
proceso
dinámico,
par3cipa3vo
e
interac3vo
del
sujeto,
de
modo
que
el
conocimiento
sea
una
auténJca
construcción
operada
por
la
persona
que
aprende…”
Construc3vismo
Ejemplos
concretos
Nunca
se
termina
Itera3vo
e
incremental
34. Los papás de
Scrum
Hirotaka Takeuchi y Ikujiro Nonaka – Autores del modelo SECI
Jeff Sutherland
Ken Schwaber
35. Modelo SECI – Teoria de la creacion de conocimiento organizacional
Conocimiento
explicito
Conocimiento
tácito
Individual Grupal Organizacional Inter-
organizacional
Dimension
Epistemológica
Dimension
Ontológica
“El conocimiento es
creado mediante una
interacción entre el
conocimiento tácito y
explicito”
36. Modelo SECI – Teoria de la creacion de conocimiento organizacional
Socialización
Compartir modelos mentales, y habilidades
técnicas
No hay leguaje hablado por lo general
Observación, imitación y practica.
Experiencia
Externalización
Externalizando metáforas, analogías,
conceptos, hipótesis.
Dialogo y reflexión colectiva
Combinación
Se comparte conocimiento mediante
documentos, conversaciones telefónicas,
etc.
Reconfiguración de conocimiento existente,
genera nuevo conocimiento
Internalización
Conocimiento explicito se asimila y se hace
tácito.
37. ////// Proceso de aprendizaje - Conclusiones
Pair programming Socialización (externalización)
TDD Externalización
Integración continua Combinación
Coding dojo Internalizar practicas
Aprendizaje como algo holísticoEquipos cross-funcionales
38. Ahora…
¿a qué se
parece más el
desarrollo
de
Software
?
Llamar al
pensamiento crítico
Nada se hace
espontáneo
«Verum ipsum factum»
(‘la verdad es hacerlo’)
Giambattista Vico
Si vamos a compararnos,
hagámoslo bien
42. • “The name and nature of software engineering” by Michael Jackson
• “Computer Programming as an Art” by Donald E. Knuth
• “Prospects for an engineering discipline of software” by Mary Shaw
• Report on a conference NATO SOFTWARE ENGINEERING CONFERENCE 1968
• “The New New Product Development Game” by Hirotaka Takeuchi and Ikujiro Nonaka
////// Principales fuentes
44. agile software development & service
////// Información de contacto
Alem 693 5ºB (1001) - Buenos Aires - Argentina
+54 (11) 6091-3125
Info@10pines.com
www.10pines.com
@10pines