SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
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
Lo que se puede medir,
 se puede administrar.
              Peter Drucker
A los desarrolladores
   nos gusta pensar
 que somos artistas
¡ Dramático !
Uso de SW contratado por el DoD
                     1.5% 3.0%
                                     19.2%

   47.3%




                                    29.0%


   SW   entregado y nunca usado
   SW   pagado y no entregado
   SW   usado, luego abandonado o retrabajado
   SW   usado después de cambios
   SW   usado tal como fue entregado
El software no se comporta
    de acuerdo a nuestros
     paradigmas
Índice de Fallos   Curva de Fallas de HW




                            Tiempo
Curva de Fallas de HW


                    Mortandad
Índice de Fallos




                     infantil




                            Tiempo
Curva de Fallas de HW


                    Mortandad     Se
Índice de Fallos




                     infantil descompone




                            Tiempo
Curva (idealizada) de Fallas de SW
 Índice de Fallos




                    Tiempo
Curva (idealizada) de Fallas de SW
 Índice de Fallos




                    Continúa el mismo índice
                     hasta la obsolescencia




                           Tiempo
Índice de Fallos   Curva (real) de Fallas de SW




                               Tiempo
Curva (real) de Fallas de SW
                                        Incremento del
                                      índice de fallas por
                                     efectos colaterales
Índice de Fallos




                        ¡CAMBIO!




                                   Tiempo
Índice de Fallos   Curva (real) de Fallas de SW




                               Tiempo
Índice de Fallos   Curva (real) de Fallas de SW




                               Tiempo
Índice de Fallos   Curva (real) de Fallas de SW




                               Tiempo
¿Qué tanto es tantito
en Ingeniería de SW?
Métrica de Foster
                            250,000 LoC ≈ 1 Km de papel impreso
                      400


                      350
                                                                                                                                                            344

                      300
Km de código fuente




                      250


                      200


                      150


                      100
                                                                                                                                         63.6
                       50

                                  1.4                    2                    4                    8                   12
                        0
                                           Tarificador telefónico pequeño              Tarificador telefonico grande                   Kernel Linux 2.6
                      Obras completas de Shakespeare                 Transbordador espacial              Sistemas de Admon de Red Telefónica              MacOS X 10.4
Tamaños de Proyectos de SW

      Categoría     Número de     Duración      Tamaño
                  Programadores                  (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


Extremadamente        >200         5-10 años      > 5M
grande
Proporción de las Actividades
                   5% 2%
            6%

     15%




                                         53%

      10%

             10%


   Requerimientos y Análisis   Diseño del sistema
   Diseño detallado            Codificación
   Pruebas unitarias           Integración
   Mantenimiento
Actividades y Esfuerzo
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!
MITOS
  del
Software
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?
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.
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)
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.
Mito del Cliente #2


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



Una vez que escribimos el programa y
hacemos que funcione, nuestro trabajo
ha terminado.
Mito del Desarrollador #2



Hasta que no tengo el programa
ejecutándose, realmente no tengo
forma de comprobar su calidad.
Mito del Desarrollador #3



Lo único que se entrega al terminar el
proyecto es el programa funcionando.
El Triángulo del Software
               $




tiempo                   requerimientos
El Triángulo del Software
               $
 Cliente:
2 vértices




tiempo                   requerimientos
El Triángulo del Software
               $
 Cliente:            Desarrollador:
2 vértices             1 vértice




tiempo                    requerimientos
El Triángulo del Software
                     $
 Cliente:                       Desarrollador:
2 vértices                        1 vértice




             De lo contrario:
tiempo                               requerimientos
               ¡huyan!
El reto está en evolucionar
de la artesanía de software
a la ingeniería de software
CMM: Un Modelo de Referencia
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.
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.
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.
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.
Mediante      un     resultado
cuantitativo del proceso y de
las ideas y tecnologías
innovadoras se posibilita una
mejora del proceso.
En resumen ¿qué distingue
 a la artesanía de software
de la ingeniería de software?
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 una
    metodología de desarrollo de software
    –   Orientada a Datos (E/R)
    –   Estructurada (Jackson, Yourdon, etc.)
    –   O.O. (OMT, Jacobson, Booch)
Recomendaciones Bibliográficas
GRACIAS POR SU ATENCIÓN


        ¿Preguntas?



   Dr. José Enrique Alvarez Estrada
            jeae@ucaribe.edu.mx
http://www.facebook.com/LeonardoDaVinciMX
                @davincimx

Más contenido relacionado

Similar a Software, ¿artesanía o ingeniería?

1. introduccion a la calidad del software
1. introduccion a la calidad del software1. introduccion a la calidad del software
1. introduccion a la calidad del software
Juan Pablo Carvallo
 
Is clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesosIs clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesos
Ale Mejia
 
Modelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de InformaciónModelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de Información
Isaias Toledo
 

Similar a Software, ¿artesanía o ingeniería? (20)

Espoch
EspochEspoch
Espoch
 
Desarrollo de Software por www.jasoftsolutions.com
Desarrollo de Software por www.jasoftsolutions.comDesarrollo de Software por www.jasoftsolutions.com
Desarrollo de Software por www.jasoftsolutions.com
 
Conceptos
ConceptosConceptos
Conceptos
 
Diapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napaDiapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napa
 
software
softwaresoftware
software
 
MDD Ingenieria de Software Dirigida por Modelos
MDD Ingenieria de Software Dirigida por ModelosMDD Ingenieria de Software Dirigida por Modelos
MDD Ingenieria de Software Dirigida por Modelos
 
Clase 02 ciclo de vida
Clase 02 ciclo de vidaClase 02 ciclo de vida
Clase 02 ciclo de vida
 
Software Project Management EAN
Software Project Management EANSoftware Project Management EAN
Software Project Management EAN
 
1. introduccion a la calidad del software
1. introduccion a la calidad del software1. introduccion a la calidad del software
1. introduccion a la calidad del software
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Crisis software
Crisis softwareCrisis software
Crisis software
 
Is clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesosIs clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesos
 
métodos y procesos
métodos y procesosmétodos y procesos
métodos y procesos
 
Global Labs Services
Global Labs ServicesGlobal Labs Services
Global Labs Services
 
El coste de no usar integración continua
El coste de no usar integración continuaEl coste de no usar integración continua
El coste de no usar integración continua
 
Modelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de InformaciónModelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de Información
 
SINGSWINTRO
SINGSWINTROSINGSWINTRO
SINGSWINTRO
 
SecondNug Robotics, Kinect y un par de demos más
SecondNug Robotics, Kinect y un par de demos másSecondNug Robotics, Kinect y un par de demos más
SecondNug Robotics, Kinect y un par de demos más
 
Evolución Android: Del Framework a la supervivencia del más fuerte
Evolución Android: Del Framework a la supervivencia del más fuerteEvolución Android: Del Framework a la supervivencia del más fuerte
Evolución Android: Del Framework a la supervivencia del más fuerte
 

Más de José Enrique Alvarez Estrada

Más de José Enrique Alvarez Estrada (20)

Video Mapping con Open Source
Video Mapping con Open SourceVideo Mapping con Open Source
Video Mapping con Open Source
 
Video Mapping con Open Source
Video Mapping con Open SourceVideo Mapping con Open Source
Video Mapping con Open Source
 
BAT 2 CLI, CLI 2 COW, COW 2 GUI
BAT 2 CLI, CLI 2 COW, COW 2 GUIBAT 2 CLI, CLI 2 COW, COW 2 GUI
BAT 2 CLI, CLI 2 COW, COW 2 GUI
 
Clubes de ciencia
Clubes de cienciaClubes de ciencia
Clubes de ciencia
 
Elon Musk: el verdadero Ironman [detrás de Tesla Motors, SpaceX y SolarCity]
Elon Musk: el verdadero Ironman [detrás de Tesla Motors, SpaceX y SolarCity]Elon Musk: el verdadero Ironman [detrás de Tesla Motors, SpaceX y SolarCity]
Elon Musk: el verdadero Ironman [detrás de Tesla Motors, SpaceX y SolarCity]
 
Cómo el Open Source Cambió mi Vida
Cómo el Open Source Cambió mi VidaCómo el Open Source Cambió mi Vida
Cómo el Open Source Cambió mi Vida
 
Breve historia de la propiedad industrial
Breve historia de la propiedad industrialBreve historia de la propiedad industrial
Breve historia de la propiedad industrial
 
Utilidad e impacto de las redes sociales versión 1.5
Utilidad e impacto de las redes sociales versión 1.5Utilidad e impacto de las redes sociales versión 1.5
Utilidad e impacto de las redes sociales versión 1.5
 
Taller "Small Data con SQL"
Taller "Small Data con SQL"Taller "Small Data con SQL"
Taller "Small Data con SQL"
 
De profesor a emprendedor
De profesor a emprendedorDe profesor a emprendedor
De profesor a emprendedor
 
¡Crea tu propio Lab de Ciencias con tu Computadora o Smartphone!
¡Crea tu propio Lab de Ciencias con tu Computadora o Smartphone!¡Crea tu propio Lab de Ciencias con tu Computadora o Smartphone!
¡Crea tu propio Lab de Ciencias con tu Computadora o Smartphone!
 
Las sinrazones de la Educación Superior
Las sinrazones de la Educación SuperiorLas sinrazones de la Educación Superior
Las sinrazones de la Educación Superior
 
De aventón... Una historia de TERROR en [y con] el transporte público
De aventón... Una historia de TERROR en [y con] el transporte públicoDe aventón... Una historia de TERROR en [y con] el transporte público
De aventón... Una historia de TERROR en [y con] el transporte público
 
Grammars and Syntax
Grammars and SyntaxGrammars and Syntax
Grammars and Syntax
 
Pensamiento STEM Guiado por Datos
Pensamiento STEM Guiado por DatosPensamiento STEM Guiado por Datos
Pensamiento STEM Guiado por Datos
 
De ingeniero a hacker... ¡y de hacker a maker! La necesidad de más práctica e...
De ingeniero a hacker... ¡y de hacker a maker! La necesidad de más práctica e...De ingeniero a hacker... ¡y de hacker a maker! La necesidad de más práctica e...
De ingeniero a hacker... ¡y de hacker a maker! La necesidad de más práctica e...
 
Las apps en el Sector Educativo
Las apps en el Sector EducativoLas apps en el Sector Educativo
Las apps en el Sector Educativo
 
Pirámide organizacional
Pirámide organizacionalPirámide organizacional
Pirámide organizacional
 
De homo sapiens a homo deus
De homo sapiens a homo deusDe homo sapiens a homo deus
De homo sapiens a homo deus
 
Inducción al Sistema de Posgrado y MIGA
Inducción al Sistema de Posgrado y MIGAInducción al Sistema de Posgrado y MIGA
Inducción al Sistema de Posgrado y MIGA
 

Software, ¿artesanía o ingeniería?

  • 1. 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
  • 2. Lo que se puede medir, se puede administrar. Peter Drucker
  • 3. A los desarrolladores nos gusta pensar que somos artistas
  • 4. ¡ Dramático ! Uso de SW contratado por el DoD 1.5% 3.0% 19.2% 47.3% 29.0% SW entregado y nunca usado SW pagado y no entregado SW usado, luego abandonado o retrabajado SW usado después de cambios SW usado tal como fue entregado
  • 5. El software no se comporta de acuerdo a nuestros paradigmas
  • 6. Índice de Fallos Curva de Fallas de HW Tiempo
  • 7. Curva de Fallas de HW Mortandad Índice de Fallos infantil Tiempo
  • 8. Curva de Fallas de HW Mortandad Se Índice de Fallos infantil descompone Tiempo
  • 9. Curva (idealizada) de Fallas de SW Índice de Fallos Tiempo
  • 10. Curva (idealizada) de Fallas de SW Índice de Fallos Continúa el mismo índice hasta la obsolescencia Tiempo
  • 11. Índice de Fallos Curva (real) de Fallas de SW Tiempo
  • 12. Curva (real) de Fallas de SW Incremento del índice de fallas por efectos colaterales Índice de Fallos ¡CAMBIO! Tiempo
  • 13. Índice de Fallos Curva (real) de Fallas de SW Tiempo
  • 14. Índice de Fallos Curva (real) de Fallas de SW Tiempo
  • 15. Índice de Fallos Curva (real) de Fallas de SW Tiempo
  • 16. ¿Qué tanto es tantito en Ingeniería de SW?
  • 17. Métrica de Foster 250,000 LoC ≈ 1 Km de papel impreso 400 350 344 300 Km de código fuente 250 200 150 100 63.6 50 1.4 2 4 8 12 0 Tarificador telefónico pequeño Tarificador telefonico grande Kernel Linux 2.6 Obras completas de Shakespeare Transbordador espacial Sistemas de Admon de Red Telefónica MacOS X 10.4
  • 18. Tamaños de Proyectos de SW Categoría Número de Duración Tamaño Programadores (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 Extremadamente >200 5-10 años > 5M grande
  • 19. Proporción de las Actividades 5% 2% 6% 15% 53% 10% 10% Requerimientos y Análisis Diseño del sistema Diseño detallado Codificación Pruebas unitarias Integración Mantenimiento
  • 21. 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!
  • 23. 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?
  • 24. 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.
  • 25. 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)
  • 26. 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.
  • 27. Mito del Cliente #2 Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fácilmente, ya que el software es flexible.
  • 28. Mito del Desarrollador #1 Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado.
  • 29. Mito del Desarrollador #2 Hasta que no tengo el programa ejecutándose, realmente no tengo forma de comprobar su calidad.
  • 30. Mito del Desarrollador #3 Lo único que se entrega al terminar el proyecto es el programa funcionando.
  • 31. El Triángulo del Software $ tiempo requerimientos
  • 32. El Triángulo del Software $ Cliente: 2 vértices tiempo requerimientos
  • 33. El Triángulo del Software $ Cliente: Desarrollador: 2 vértices 1 vértice tiempo requerimientos
  • 34. El Triángulo del Software $ Cliente: Desarrollador: 2 vértices 1 vértice De lo contrario: tiempo requerimientos ¡huyan!
  • 35. El reto está en evolucionar de la artesanía de software a la ingeniería de software
  • 36. CMM: Un Modelo de Referencia
  • 37.
  • 38. 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.
  • 39. 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.
  • 40. 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.
  • 41. 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.
  • 42. Mediante un resultado cuantitativo del proceso y de las ideas y tecnologías innovadoras se posibilita una mejora del proceso.
  • 43. En resumen ¿qué distingue a la artesanía de software de la ingeniería de software?
  • 44. 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 una metodología de desarrollo de software – Orientada a Datos (E/R) – Estructurada (Jackson, Yourdon, etc.) – O.O. (OMT, Jacobson, Booch)
  • 46. GRACIAS POR SU ATENCIÓN ¿Preguntas? Dr. José Enrique Alvarez Estrada jeae@ucaribe.edu.mx http://www.facebook.com/LeonardoDaVinciMX @davincimx