Software, ¿artesanía o ingeniería?

46
software: ¿Artesanía o Ingeniería? No soy un científico, un ingeniero o un artesano, soy un artista que plasma su arte en la invisible urdimbre de los hilos electrónicos. Dr. José Enrique Alvarez Estrada Versión 1.0 15-nov-2012

description

¿Cómo podemos hacerle para evolucionar desde la "artesanía" de software hacia la "ingeniería" de software?

Transcript of Software, ¿artesanía o ingeniería?

Page 1: Software, ¿artesanía o ingeniería?

software:¿Artesanía o Ingeniería?

No soy un científico, un ingeniero o un artesano,soy un artista que plasma su arte en la

invisible urdimbre de los hilos electrónicos.

Dr. José Enrique Alvarez EstradaVersión 1.0 15-nov-2012

Page 2: Software, ¿artesanía o ingeniería?

Lo que se puede medir,se puede administrar.

Peter Drucker

Page 3: Software, ¿artesanía o ingeniería?

A los desarrolladoresnos gusta pensar

que somos artistas

Page 4: Software, ¿artesanía o ingeniería?

47.3%

29.0%

19.2%

3.0%1.5%

SW entregado y nunca usadoSW pagado y no entregadoSW usado, luego abandonado o retrabajadoSW usado después de cambiosSW usado tal como fue entregado

¡ Dramático !Uso de SW contratado por el DoD

Page 5: Software, ¿artesanía o ingeniería?

El software no se comportade acuerdo a nuestros

paradigmas

Page 6: Software, ¿artesanía o ingeniería?

Curva de Fallas de HW

Tiempo

Índ

ice

de

Fa

l los

Page 7: Software, ¿artesanía o ingeniería?

Tiempo

Índ

ice

de

Fa

l los

Curva de Fallas de HW

Mortandadinfantil

Page 8: Software, ¿artesanía o ingeniería?

Tiempo

Índ

ice

de

Fa

l los

Curva de Fallas de HW

Mortandadinfantil

Sedescompone

Page 9: Software, ¿artesanía o ingeniería?

Curva (idealizada) de Fallas de SW

Tiempo

Índ

ice

de

Fa

l los

Page 10: Software, ¿artesanía o ingeniería?

Curva (idealizada) de Fallas de SW

Tiempo

Índ

ice

de

Fa

l los

Continúa el mismo índicehasta la obsolescencia

Page 11: Software, ¿artesanía o ingeniería?

Curva (real) de Fallas de SW

Tiempo

Índ

ice

de

Fa

l los

Page 12: Software, ¿artesanía o ingeniería?

Curva (real) de Fallas de SW

Tiempo

Índ

ice

de

Fa

l los

Incremento del índice de fallas por

efectos colaterales

¡CAMBIO!

Page 13: Software, ¿artesanía o ingeniería?

Curva (real) de Fallas de SW

Tiempo

Índ

ice

de

Fa

l los

Page 14: Software, ¿artesanía o ingeniería?

Curva (real) de Fallas de SW

Tiempo

Índ

ice

de

Fa

l los

Page 15: Software, ¿artesanía o ingeniería?

Curva (real) de Fallas de SW

Tiempo

Índ

ice

de

Fa

l los

Page 16: Software, ¿artesanía o ingeniería?

¿Qué tanto es tantitoen Ingeniería de SW?

Page 17: Software, ¿artesanía o ingeniería?

Métrica de Foster250,000 LoC ≈ 1 Km de papel impreso

Obras completas de ShakespeareTarificador telefónico pequeño

Transbordador espacialTarificador telefonico grande

Sistemas de Admon de Red TelefónicaKernel Linux 2.6

MacOS X 10.4

0

50

100

150

200

250

300

350

400

1.4 2 4 8 12

63.6

344

Km

de

dig

o f

uen t

e

Page 18: Software, ¿artesanía o ingeniería?

Tamaños de Proyectos de SW

CategoríaCategoría Número deNúmero deProgramadoresProgramadores

DuraciónDuración TamañoTamaño(LoC)(LoC)

Trivial <1 1-4 semanas < 1K

Pequeño 1-2 1-6 meses 1K - 5K

Mediano 2-5 1-2 años 5K - 50K

Grande 5-50 2-3 años 50K - 500K

Muy grande 50-200 3-5 años 500K - 5M

Extremadamentegrande

>200 5-10 años > 5M

Page 19: Software, ¿artesanía o ingeniería?

Proporción de las Actividades

2%5%6%

15%

10%

10%

53%

Requerimientos y Análisis Diseño del sistemaDiseño detallado CodificaciónPruebas unitarias IntegraciónMantenimiento

Page 20: Software, ¿artesanía o ingeniería?

Actividades y Esfuerzo

Page 21: Software, ¿artesanía o ingeniería?

En realidad, la escuela sólo entrena a los desarrolladores para la fase de construcción.

Y a los administradores...¡ni siquiera se les menciona el tema!

Page 22: Software, ¿artesanía o ingeniería?

MITOSdel

Software

Page 23: Software, ¿artesanía o ingeniería?

Mito de Gestión #1

Tenemos ya un libro que está lleno de estándares y procedimientos para construir software. ¿No le proporciona ya a mi gente todo lo que necesita saber?

Page 24: Software, ¿artesanía o ingeniería?

Mito de Gestión #2

Mi gente dispone de las herramientas de desarrollo de software más avanzadas; después de todo, les compramos las computadoras más modernas.

Page 25: Software, ¿artesanía o ingeniería?

Mito de Gestión #3

Si fallamos en la planificación, siempre podremos añadir más programadores y adelantar el tiempo perdido.

(también llamado mito de la horda mongoliana)

Page 26: Software, ¿artesanía o ingeniería?

Mito del Cliente #1

Una declaración general de los objetivos es suficiente para comenzar a escribir los programas; podemos dar los detalles más adelante.

Page 27: Software, ¿artesanía o ingeniería?

Mito del Cliente #2

Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fácilmente, ya que el software es flexible.

Page 28: Software, ¿artesanía o ingeniería?

Mito del Desarrollador #1

Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado.

Page 29: Software, ¿artesanía o ingeniería?

Mito del Desarrollador #2

Hasta que no tengo el programa ejecutándose, realmente no tengo forma de comprobar su calidad.

Page 30: Software, ¿artesanía o ingeniería?

Mito del Desarrollador #3

Lo único que se entrega al terminar el proyecto es el programa funcionando.

Page 31: Software, ¿artesanía o ingeniería?

El Triángulo del Software

$

tiempo requerimientos

Page 32: Software, ¿artesanía o ingeniería?

El Triángulo del Software

$

tiempo requerimientos

Cliente:2 vértices

Page 33: Software, ¿artesanía o ingeniería?

El Triángulo del Software

$

tiempo requerimientos

Cliente:2 vértices

Desarrollador:1 vértice

Page 34: Software, ¿artesanía o ingeniería?

El Triángulo del Software

$

tiempo requerimientos

Cliente:2 vértices

Desarrollador:1 vértice

De lo contrario:

¡huyan!

Page 35: Software, ¿artesanía o ingeniería?

El reto está en evolucionarde la artesanía de softwarea la ingeniería de software

Page 36: Software, ¿artesanía o ingeniería?

CMM: Un Modelo de Referencia

Page 37: Software, ¿artesanía o ingeniería?
Page 38: Software, ¿artesanía o ingeniería?

El proceso del software se determina según el caso, y ocasionalmente de forma caótica. Se definen pocos procesos, y el éxito depende del esfuerzo individual.

Page 39: Software, ¿artesanía o ingeniería?

Se establecen los procesos de gestión del proyecto para hacer seguimiento del costo, la planificación y la funcionalidad. Para repetir éxitos anteriores en proyectos con aplicaciones similares, se aplica la disciplina necesaria para el proceso.

Page 40: Software, ¿artesanía o ingeniería?

Las actividades de gestión del proceso de software se documentan, estandarizan e integran en un proceso de software para toda la organización. Todos los proyectos utilizan una versión documentada y aprobada de dicho proceso.

Page 41: Software, ¿artesanía o ingeniería?

Se recopilan medidas detalladas del proceso del software y de la calidad del producto. Mediante la utilización de medidas detalladas, se comprenden y controlan cuantitativamente tantos los productos como el proceso del software.

Page 42: Software, ¿artesanía o ingeniería?

Mediante un resultado cuantitativo del proceso y de las ideas y tecnologías innovadoras se posibilita una mejora del proceso.

Page 43: Software, ¿artesanía o ingeniería?

En resumen ¿qué distingue a la artesanía de software

de la ingeniería de software?

Page 44: Software, ¿artesanía o ingeniería?

3 elementos

● Definición y uso de un proceso formal – También llamado ciclo de vida

● Definición y uso de un lenguaje de modelado– i.e. UML

● Definición y uso de unametodología de desarrollo de software– Orientada a Datos (E/R)

– Estructurada (Jackson, Yourdon, etc.)

– O.O. (OMT, Jacobson, Booch)

Page 45: Software, ¿artesanía o ingeniería?

Recomendaciones Bibliográficas

Page 46: Software, ¿artesanía o ingeniería?

GRACIAS POR SU ATENCIÓN

¿Preguntas?

Dr. José Enrique Alvarez [email protected]

http://www.facebook.com/LeonardoDaVinciMX@davincimx