Somos realmente ingenieros?

44
¿Somos realmente ingenieros? Repaso y reflexiones sobre el estado del arte de nuestra disciplina. Regional Scrum Gathering Perú Abril 2016

Transcript of Somos realmente ingenieros?

¿Somos realmente ingenieros? Repaso y reflexiones sobre el estado del arte de nuestra disciplina.

Regional Scrum Gathering Perú

Abril 2016

¿Que es un ingeniero?

ingeniero

ingeniero (m. y f. Esp.) 1. Dícese del hombre que usa casco

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%

////// ¿Ingeniería civil o arte?

Gaudí – Sagrada Familia - Barcelona

Ve

am

os

a o

tra

s

dis

cip

lin

as

1

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  

1900 1901

1903

1899

////// “Ever evolving design”

1902

////// “Ever evolving design”

////// Fligth testing y data feedback

Test, test y mas test!!

////// ¿Como se imaginan la ingeniería aeronáutica hoy?

////// Ingeniería aeronáutica - Conclusiones

Feedback inmediato

Presencia del testing

Diseño y construcción iterativo incremental

Importancia del piloto

2

“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  

La  Gioconda  –  Leonardo  Da  Vinci  –  Museo  del  Louvre  

El torero – Pablo Picasso

////// 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

Gracias!

•  “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

Retrospectiva

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