Upload
10pines
View
396
Download
0
Embed Size (px)
Citation preview
¿Somos realmente ingenieros? Repaso y reflexiones sobre el estado del arte de nuestra disciplina.
Regional Scrum Gathering Perú
Abril 2016
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
¿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
¿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
¿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.”
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
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ón 80%
20%
Los hermanos Wright – Pioneros de la ingeniería aeronática
Pero…
¿Cómo se imaginan que se creo el avión?
¿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
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
////// Ingeniería aeronáutica - Conclusiones
Feedback inmediato
Presencia del testing
Diseño y construcción iterativo incremental
Importancia del piloto
“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
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
////// 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…”
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
Los papás de Scrum
Hirotaka Takeuchi y Ikujiro Nonaka – Autores del modelo SECI
Jeff Sutherland
Ken Schwaber
Modelo SECI – Teoria de la creacion de conocimiento organizacional
Con
ocim
ient
o ex
plic
ito
Con
ocim
ient
o 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”
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.
////// 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ístico Equipos cross-funcionales
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
Exploración (arte)
Construcción (ingeniería)
Aprendizaje (proceso de aprendizaje)
Usuario
Negocio
Contexto
Kick-off
Salida Producción
Agile Development Process
Exploración (arte)
Construcción (ingeniería)
Aprendizaje (proceso de aprendizaje)
Usuario
Negocio
Contexto
Kick-off
Salida Producción
Agile Development Process
Análisis
Validación
Desarrollo
• “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
agile software development & service
////// Información de contacto Alem 693 5ºB (1001) - Buenos Aires - Argentina
+54 (11) 6091-3125 [email protected] www.10pines.com @10pines