El software no se "fabrica", ni se "construye", SE DISEÑA
El término "factoría de software" es una contradicción y el "albañil" del software es el compilador
El desarrollo de software es una actividad creativa y especializada
Las partes no creativas y no especializadas se deben automatizar. Identificar y automatizar estas partes es una de las labores de los ingenieros informáticos
Un programa de 100k líneas de código no es 10 veces más complicado que
uno de 10k. Requiere habilidades distintas
Escribir un programa corto y sencillo no requiere ingeniería
Marco Cynefin para la toma de decisiones en entornos potencialmente complejos
Desarrollo de software
Complejo: impredecible, requiere aprendizaje, creatividad, innovación y comunicación
Complicado: buenas prácticas, expertos
Caótico: crisis, hay que actuar ya
Simple: causas y efectos obvias, soluciones conocidas una vez establecido el problema
El desarrollo de cualquier software no trivial está en el dominio complicado o complejo
La ingeniería del software es necesaria para trabajar en estos niveles de complejidad
¿Para quién es?
Quieres desarrollar software profesionalmente
Puede que hasta sepas qué tipo de aplicaciones quieres hacer
Crees que la teoría debe guiar a la práctica
Quieres innovar o trabajar en I+D
Sabes que solo podrás hacer algo realmente grande trabajando en equipo
¿Para quién es?
¿Para quién no es?
No quieres desarrollar software
Prefieres no trabajar en equipo
Prefieres los problemas perfectamente especificados y delimitados
Prefieres los problemas cuyas soluciones son bien conocidas
¿Qué tal es la profesión?
¿Qué harás?
Verificación y Validación
Gestión de Proyectos Software
Laboratorio de Ingeniería del Software
¿Qué descubrirás?
Los proyectos de software ayer
Metodologías rígidas, prescriptivas y documento-céntricas
El miedo a la incertidumbre se afronta haciendo planes muy detallados que luego nunca se cumplen
Los desarrolladores son solo "recursos" fácilmente intercambiables
Arquitectos de torre de marfil
También llamados arquitectos de Power Point o arquitectos astronautas
¿Arquitecto astronauta?
Los proyectos de software ayer
Metodologías rígidas, prescriptivas y documento-céntricas
El miedo a la incertidumbre se afronta haciendo planes muy detallados que luego nunca se cumplen
Los desarrolladores son solo "recursos" fácilmente intercambiables
Arquitectos de torre de marfil
También llamados arquitectos de Power Point o arquitectos astronautas
Poca automatización de actividades repetitivas
Rigidez, poca capacidad de innovación y de adaptación
Los dinosaurios
Los proyectos de software hoy y mañana
Se acepta la incertidumbre: trabajo iterativo, prototipos, inspección y adaptación
Integración continua: control de versiones distribuido (git), build automático, tests automáticos
Despliegue continuo: posiblemente en la nube
Escalabilidad, flexibilidad, reacción rápida a las demandas de los usuarios