SlideShare ist ein Scribd-Unternehmen logo
1 von 103
Entendiendo la Responsabilidad Social  de la Ingeniería de Software @Avanet - @SoreyGarcia
El por qué de esta conferencia La  ingeniería de software  y la  calidad de software  nos resultan temas apasionantes… Ser  humanamente responsable  nos resulta un reto Intentar hacer las dos primeras sin la última es claramente un  despropósito
Con esta charla no pretendemos enseñar a nadie a ser “humanamente responsable” Lo único que queremos es compartir algunas ideas de   “ por qué deberíamos serlo”  si nos dedicamos a esto de “ hacer software”  siendo entusiastas o profesionales de cualquier área ( si, de cualquiera )
Empecemos por entender lo básico ¿Qué es Ingeniería de Software?
La Ingeniería de Software es la aplicación práctica del  conocimiento científico  en el diseño y construcción de programas de computadora, y la documentación asociada requerida para construirlos, operarlos y mantenerlos.  Bohem - 1976.
La Ingeniería de Software es la aplicación de un enfoque  sistemático, disciplinado y cuantificable  al desarrollo, operación, y mantenimiento del software.  IEEE - 1993.
La Ingeniería de Software es la disciplina o área de la informática que ofrece métodos y técnicas para desarrollar y mantener software de  calidad . Wikipedia
¿Está claro? Si, … o quizá… Sin embargo todo eso parece un concepto  muy elevado  para algo  tan simple  como “ hacer sofware”
Si, es cierto… Es tan simple que puedes aprenderlo en Internet, incluso trabajar en ello  y ganar mucho más  que muchos  de los que estudian física, matemáticas y  ética …
Y es que hace algunos años,  ser  ingeniero de sistemas  parecía ser  una de esas carreras que ofrecía un futuro prometedor
Y saber de eso que pocos sabían hacía que fueras alguien “ interesante ” …
En la práctica… Las cosas resultaron ser un poco distintas para la mayoría de nosotros…
Es típico escuchar a las actuales generaciones de programadores profesionales, hablando de lo aburrido que resulta trabajar  horas extras bajo presión, con planificaciones y presupuestos ajustados , pero eso si, con la firme convicción  por parte de la administración  de que haciéndolo todo  no tan bien y con prisa   el resultado tendrá que ser   lo que el cliente espera ¡A como dé lugar!
Y ni hablemos sobre el concepto de “ interesante ”  en el que nos tiene la mayoría…
Bajo esta perspectiva, resulta un poco extraño que tantas personas  (entusiastas y profesionales de otras áreas) quieran hacer  “lo mismo”  que nosotros, y se aventuren en masa a la tarea de “ construir software”
Un momento, nadie dijo que lo hicieran bien  (no todos) , solo que  también  podían hacerlo…
Sin embargo, No se trata solo de eso Bueno, eso sería, si lo único que importara de  “desarrollar software”  fuera  “lograr que funcione”
¡Espere un momento! Aunque me gusta mi profesión, no estoy sugiriendo que debe ser un ingeniero titulado para hacer Ingeniería de Software. Lo que queremos resaltar es que si usted se quiere participar de la tarea de hacer software o si usted necesita contratar quien lo haga, debería entender como mínimo que implicaciones hay detrás de todo eso…
Sin embargo y sin ánimo de ser duros, déjenos preguntarles,… ¿Qué clase de persona se arriesgaría a realizar una cirugía por haber encontrado las instrucciones en Internet? Y ¿quién en su sano juicio se sometería a que alguien así le hiciera una cirugía?
¡La verdad es que no suena nada agradable! ¡Ah! Pero es que usted no pretende hacer cirugías ¿verdad? Veamos, pruébese así mismo, responda la siguiente pregunta ya bastante típica
¿Viajaría usted en un avión cuyo software ha sido construido por usted?
Esta pregunta es una de esas que  generalmente produce duda o risa… Si fue así, le invitamos a cuestionarse… Sea usted o no, un profesional informático La razón es evidente y simple…
Hay personas, si subirán  a ese mismo avión, es decir que  usarán  su software
Veamos otras preguntas… ¿Dudan los enfermos del corazón de sus médicos cirujanos?
¿Dudan los empresarios de los ingenieros civiles y arquitectos que construyen sus edificios?
La falta de un lugar como profesional de sistemas, está al punto de considerar que lo que más sabemos hacer es instalar Word, manejar Excel o vacunar el computador cuando la familia lo llena de virus
Puede que ese sea uno de los muchos orígenes de la idea de que un tutorial en Internet será suficiente para suplir la academia.
Pues bien, esto lejos de ser una charla de desmotivación  (como seguro parece)  es una invitación a reflexionar y no solo como ingenieros,  más bien como personas  a los que nos afectará tarde o temprano todo esto
Por otro lado… ¿Qué tan seguros estamos de que los profesionales de ingeniería valoran y entienden su papel?
La mayoría de la gente piensa que la gente dedicada a la tecnología,  se parece más a las máquinas con las que trabaja,  que a la gente y que son como robots, por pasar todo el día frente a la computadora
Bueno, en realidad no importa mucho si lo que piensan es correcto o no… Pero hay un problema
Algunos ingenieros piensan  exactamente lo mismo,  actúan tal cual como si estuviesen  programados y hacen exclusivamente lo que  “deben”   hacer  o lo que  alguien les dice que hagan,  finalmente, así el trabajo es  “más simple”   y evitan preguntarse,  por qué es importante…
La Ingeniería de Software tiene un poco más que ver con un  tema ético y humano  de lo que muchos piensan
La  ingeniería de software  es una idea casi ética ( no solo ética ) de como hacer el software de  forma correcta  (software de calidad)   Aquí va una propuesta de una definición menos formal
Quizá no tiene tantos años como la física, matemáticas o arquitectura…
Pero créanos, tampoco se la inventaron ayer, ni está en pañales…
Pero puede que  “muchos de nosotros”  si…
[object Object],[object Object],[object Object]
Se han preguntado alguna vez ¿Dónde hay software? Ahora, pongamos en una perspectiva más real el símil de construir el avión en vuelo…
 
 
 
 
 
 
 
¿Se imaginan de verdad construyendo este tipo de sistemas  “en el aire” ?
[object Object]
En la mayoría de proyectos de desarrollo, los costes de mantenimiento, superan por un amplio margen los costos de desarrollo, se habla de un  30%  en  Desarrollo  y un  70%  en  Mantenimiento.
No debería ser así ¿verdad? Todos sabemos que cometer errores en la construcción de software puede tener serias consecuencias…
¿Qué consecuencias? ¿Acaso en software no importa es  básicamente que funcione ? Veamos algunas respuestas a esa pregunta… (Ojo, las siguientes imagenes son meramente ilustrativa, no todas pertenecen al hecho descrito)
Therac-25  (1985 – 1987) Era una máquina empleada en terapia de radiación, producida por  Atomic Energy of Canada Limited , notoria por haber sido objeto del error de software, causando al menos seis accidentes y que le costó la vida al menos a cinco personas
Mariner 1 (28 de Julio de 1962) Un guión en las instrucciones del programa de guiado del cohete provocó la desviación del Atlas y tuvo que enviarse un comando para su autodestrucción a los 4 minutos y 53 segundos de su lanzamiento
Vuelo 501 del ARIANE-5 (4 de Junio de 1996) Otro ejemplo documentado sobre el daño ocasionado por software mal diseñado es el de la explosión de la lanzadera Ariane-5, cuando a 40 segundos después de la iniciación de la secuencia de vuelo, la lanzadera se desvió de su ruta, se partió y explotó. En el proyecto global se invirtieron 10 años de construcción y 7 mil millones de euros, lo que supuso un duro golpe para la Agencia Espacial Europea (ESA) http :// www.youtube.com / watch?v=IONcgYzVFlg
A-320 de Air France ( 26 de junio de 1988) Durante una presentación en el meeting de Habsheim, cerca de Mulhouse (Francia), un A-320 de Air France se estrella en el bosque, al final de la pista. Habrá tres muertos y una centena de heridos.  Justo después, el mundo se pregunta las causas del accidente del avión anunciado como "el más seguro del mundo". Una de las causas se le atribuye a un error en el software de navegación http :// www.youtube.com / watch?v=_EM0hDchVlY
¡Si, ya sé! Usted no hace software para aviones o para la NASA Lo que lo estoy invitando a cuestionarse es…
Antes de poner sus aplicaciones de software en producción, se pregunta… ¿el trabajo de cuantas personas puede afectar que algo salga mal? Entiendes que,  ¿Qué algo salga mal puede significar hasta el simple hecho de que usar tu software puede ser desde confuso hasta una tortura?
Es común ver software hechos para  quienes lo desarrollaron  y no para quienes  lo van a usar
Pues bien, aunque actualmente existen muchas personas que construyen software con  conocimiento empírico , tal como si fuera  arte , lo que debe diferenciar un trabajo  bien hecho  ( profesional o empírico ), es los métodos y la evidente forma de hacer el trabajo  teniendo en mente la calidad  de los  procesos ejecutados  y de los  productos desarrollados .
Hacer las cosas bien, siempre va a requerir  un poco más de esfuerzo,  que hacerlas de cualquier otro modo
Practicas y Principios Pressman Actividades Personas Herramientas Roles Artefactos Notación Proceso de Software
Existe una gran la variedad de propuestas de  Proceso de Software , sin embargo el  conjunto de actividades fundamentales  definidas en el Ciclo de Vida Clásico se encuentran presentes en todos ellos. Análisis Diseño Construcción Pruebas Operación y Mantenimiento
Es así como encontramos las Métodologías  Estructuradas
Y también las  Métodologías  Ágiles
No existe un proceso de desarrollo de software universal que  sea efectivo   para  todos los contextos  de proyectos de desarrollo, de allí que sea necesario elegir  responsablemente  cual de ellos es más conveniente, teniendo en cuenta algunos criterios…
Complejidad
Costo/Beneficio   Económico
Robustez  del software
Conocimiento   disponible
Los  principios y practicas  que pueden seguirse en la Ingeniería de Software, buscan garantizar un mejor resultado y uso de los recursos Pero, por alguna razón el comportamiento de los proyectos no es “aún” el esperado…
 
¿Quién dice que  siempre   sale mal? A pues no,  no siempre  sale mal… Solo algunas veces
(Estudio de Resultado de Ejecución de los Proyectos de Software) Fuente:  http :// vidanp.wordpress.com /2010/02/01/ estandares -de-medida/ CHAOS Report
Seguimos cayendo en  los mismos errores  una y otra vez…
¿Qué errores se comenten?
Falta de  comunicación
Ausencia de  objetivos y metas  claras durante la ejecución del proyecto
Falta de planificación
Requisitos poco claros y falta de acceso a la información
Falta de análisis y entendimiento de las necesidades del cliente
Mala estimación de tiempos
Indefinición del alcance y las  responsabilidades  de las partes
Falta de identificación y  gestión de los riesgos
Carencia de habilidades en la ejecución de un rol
Falta de seguimiento al  avance del proyecto
Falta de control del presupuesto
Recursos Insuficientes
Tratar de construir sin tener una arquitectura definida
Falta de conocimiento e interés en la aplicación de  mejores prácticas
[object Object],[object Object],[object Object]
Hoy en día pocos comprenden, que la responsabilidad de lograr productos de software  tiene que ver con todos  los que participan en cualquier rol de proceso de Ingeniería de Software Mencionemos algunos
Gerente  de Proyectos
Analista  Funcional
Arquitecto de  Software
Analista  Diseñador
Analista  Programador
Analista de  Pruebas
¿Son esos  “ Todos” ?
En la academia Gobierno, instituciones, docentes y estudiantes
En la empresa Directivos, clientes, usuarios, analistas de negocio, profesionales de sistemas
¿Tu?
¿Preguntas? @avanet @soreygarcia
¡Gracias!

Weitere ähnliche Inhalte

Was ist angesagt?

Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegue
joshell
 
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniPrototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
RAUL CHIPANA LARICO
 
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
Uriel Herrera
 
Métrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoMétrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigo
Jesús E. CuRias
 
DATOS E INFORMACIÒN
DATOS E INFORMACIÒNDATOS E INFORMACIÒN
DATOS E INFORMACIÒN
guestdad7815
 

Was ist angesagt? (20)

Unidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioUnidad 3 Modelo De Negocio
Unidad 3 Modelo De Negocio
 
Como Documentar Casos De Uso
Como Documentar Casos De UsoComo Documentar Casos De Uso
Como Documentar Casos De Uso
 
Diagrama componentes
Diagrama componentesDiagrama componentes
Diagrama componentes
 
Diagramas De Caso De Uso
Diagramas De Caso De UsoDiagramas De Caso De Uso
Diagramas De Caso De Uso
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
 
Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegue
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniPrototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
 
Vectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosVectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a Objetos
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2
 
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
 
Ordenamiento por insercion
Ordenamiento por insercionOrdenamiento por insercion
Ordenamiento por insercion
 
Métrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoMétrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigo
 
DATOS E INFORMACIÒN
DATOS E INFORMACIÒNDATOS E INFORMACIÒN
DATOS E INFORMACIÒN
 
Presentacion Programacion
Presentacion ProgramacionPresentacion Programacion
Presentacion Programacion
 

Andere mochten auch

Aguirre Jimenez
Aguirre JimenezAguirre Jimenez
Aguirre Jimenez
FARIDROJAS
 
Posición crítica
Posición críticaPosición crítica
Posición crítica
andreac1234
 
Estrategias de prueba de software
Estrategias de prueba de softwareEstrategias de prueba de software
Estrategias de prueba de software
jtapiac
 
Presentacion Pruebas
Presentacion PruebasPresentacion Pruebas
Presentacion Pruebas
dajigar
 
Fundamentos de Pruebas de Software
Fundamentos de Pruebas de SoftwareFundamentos de Pruebas de Software
Fundamentos de Pruebas de Software
Professional Testing
 

Andere mochten auch (20)

Pruebas de Software
Pruebas de SoftwarePruebas de Software
Pruebas de Software
 
Estrategias de prueba del software
Estrategias de prueba del softwareEstrategias de prueba del software
Estrategias de prueba del software
 
Enfoque estrategico para la prueba de software
Enfoque estrategico para la prueba de softwareEnfoque estrategico para la prueba de software
Enfoque estrategico para la prueba de software
 
Calidad del software cap3
Calidad del software   cap3Calidad del software   cap3
Calidad del software cap3
 
Estrategias de Pruebas de Software
Estrategias de Pruebas de SoftwareEstrategias de Pruebas de Software
Estrategias de Pruebas de Software
 
Estrategias prueba de software
Estrategias prueba de softwareEstrategias prueba de software
Estrategias prueba de software
 
Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Software
 
Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Software
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 
Tesis python ing. civil
Tesis python ing. civilTesis python ing. civil
Tesis python ing. civil
 
Aguirre Jimenez
Aguirre JimenezAguirre Jimenez
Aguirre Jimenez
 
Posición crítica
Posición críticaPosición crítica
Posición crítica
 
Evolucion de la Ingenieria de Software
Evolucion de la Ingenieria de SoftwareEvolucion de la Ingenieria de Software
Evolucion de la Ingenieria de Software
 
Estrategias de prueba de software
Estrategias de prueba de softwareEstrategias de prueba de software
Estrategias de prueba de software
 
Presentacion Pruebas
Presentacion PruebasPresentacion Pruebas
Presentacion Pruebas
 
Taller casos de prueba
Taller casos de pruebaTaller casos de prueba
Taller casos de prueba
 
Fundamentos de Pruebas de Software
Fundamentos de Pruebas de SoftwareFundamentos de Pruebas de Software
Fundamentos de Pruebas de Software
 
Charlas sobre el respeto
Charlas sobre el respetoCharlas sobre el respeto
Charlas sobre el respeto
 
Encuesta sobre responsabilidad social corporativ ax
Encuesta sobre responsabilidad social corporativ axEncuesta sobre responsabilidad social corporativ ax
Encuesta sobre responsabilidad social corporativ ax
 
Valores Empresariales. Valor respeto
Valores Empresariales. Valor respetoValores Empresariales. Valor respeto
Valores Empresariales. Valor respeto
 

Ähnlich wie La responsabilidad social de la Ingeniería de Software

Taller ingenieria de software
Taller ingenieria de softwareTaller ingenieria de software
Taller ingenieria de software
Avanet
 
Desconferencia Barcamp Cali 2009 - Ingeniería de Software
Desconferencia Barcamp Cali 2009 - Ingeniería de SoftwareDesconferencia Barcamp Cali 2009 - Ingeniería de Software
Desconferencia Barcamp Cali 2009 - Ingeniería de Software
Sorey García
 
Estrategias Avanet: Ingeniería de Software
Estrategias Avanet: Ingeniería de SoftwareEstrategias Avanet: Ingeniería de Software
Estrategias Avanet: Ingeniería de Software
Avanet
 
Segunda evaluación
Segunda evaluaciónSegunda evaluación
Segunda evaluación
Martacinco
 
Diapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgosDiapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgos
Melissa Burgos
 
Sistemas operativos 3ro.
Sistemas operativos 3ro.Sistemas operativos 3ro.
Sistemas operativos 3ro.
Patricia Ferrer
 

Ähnlich wie La responsabilidad social de la Ingeniería de Software (20)

Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para Dummies
 
Taller ingenieria de software
Taller ingenieria de softwareTaller ingenieria de software
Taller ingenieria de software
 
Intruducción de la Ingeniería de Software
Intruducción de la Ingeniería de SoftwareIntruducción de la Ingeniería de Software
Intruducción de la Ingeniería de Software
 
Desconferencia Barcamp Cali 2009 - Ingeniería de Software
Desconferencia Barcamp Cali 2009 - Ingeniería de SoftwareDesconferencia Barcamp Cali 2009 - Ingeniería de Software
Desconferencia Barcamp Cali 2009 - Ingeniería de Software
 
Estrategias Avanet: Ingeniería de Software
Estrategias Avanet: Ingeniería de SoftwareEstrategias Avanet: Ingeniería de Software
Estrategias Avanet: Ingeniería de Software
 
que es programar
 que es programar que es programar
que es programar
 
El Modelado de Negocios y la Producción del Software, un Ensayo
El Modelado de Negocios y la Producción del Software, un EnsayoEl Modelado de Negocios y la Producción del Software, un Ensayo
El Modelado de Negocios y la Producción del Software, un Ensayo
 
Ingenieria inversa del software (i)
Ingenieria inversa del software (i)Ingenieria inversa del software (i)
Ingenieria inversa del software (i)
 
V2n2a1 (1)
V2n2a1 (1)V2n2a1 (1)
V2n2a1 (1)
 
Bolanos marco tarea1
Bolanos marco tarea1Bolanos marco tarea1
Bolanos marco tarea1
 
Cómo empezar en el desarrollo de videojuegos
Cómo empezar en el desarrollo de videojuegosCómo empezar en el desarrollo de videojuegos
Cómo empezar en el desarrollo de videojuegos
 
Fundamentos de programacion I
Fundamentos de programacion IFundamentos de programacion I
Fundamentos de programacion I
 
Segunda evaluación
Segunda evaluaciónSegunda evaluación
Segunda evaluación
 
El software
El softwareEl software
El software
 
Diapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgosDiapositivas guia 1 de software.melissa burgos
Diapositivas guia 1 de software.melissa burgos
 
Guia1omar
Guia1omarGuia1omar
Guia1omar
 
Taller 1
Taller 1Taller 1
Taller 1
 
Taller 1 Introduccion a la programacion
Taller 1 Introduccion a la programacion Taller 1 Introduccion a la programacion
Taller 1 Introduccion a la programacion
 
Sistemas operativos 3ro.
Sistemas operativos 3ro.Sistemas operativos 3ro.
Sistemas operativos 3ro.
 
Proyecto final
Proyecto finalProyecto final
Proyecto final
 

Mehr von Avanet

Mehr von Avanet (20)

Azure en entornos empresariales
Azure en entornos empresarialesAzure en entornos empresariales
Azure en entornos empresariales
 
Desarrollo de aplicaciones móviles (ios,android,windows phone) con .net
Desarrollo de aplicaciones móviles (ios,android,windows phone) con .netDesarrollo de aplicaciones móviles (ios,android,windows phone) con .net
Desarrollo de aplicaciones móviles (ios,android,windows phone) con .net
 
Flujos de trabajo en servidores virtuales de Azure Implementando Process Maker
Flujos de trabajo en servidores virtuales de Azure Implementando Process MakerFlujos de trabajo en servidores virtuales de Azure Implementando Process Maker
Flujos de trabajo en servidores virtuales de Azure Implementando Process Maker
 
Uso de html5 + webcomponents
Uso de html5 + webcomponentsUso de html5 + webcomponents
Uso de html5 + webcomponents
 
Novedades en Windows Server 2012 R2
Novedades en Windows Server 2012 R2Novedades en Windows Server 2012 R2
Novedades en Windows Server 2012 R2
 
Intro a HTML5 Apps con Windows 8.1
Intro a HTML5 Apps con Windows 8.1Intro a HTML5 Apps con Windows 8.1
Intro a HTML5 Apps con Windows 8.1
 
Hardening De Servidores GNU/Linux
Hardening De Servidores GNU/LinuxHardening De Servidores GNU/Linux
Hardening De Servidores GNU/Linux
 
Desarrollo de aplicaciones Django con Python 2.0 en Azure
Desarrollo de aplicaciones Django con Python 2.0 en AzureDesarrollo de aplicaciones Django con Python 2.0 en Azure
Desarrollo de aplicaciones Django con Python 2.0 en Azure
 
Microsoft Azure.- IAAS
Microsoft Azure.- IAASMicrosoft Azure.- IAAS
Microsoft Azure.- IAAS
 
Enseñar a programar a los más chicos
Enseñar a programar a los más chicosEnseñar a programar a los más chicos
Enseñar a programar a los más chicos
 
Desarrollo de aplicaciones PHP con Azure
Desarrollo de aplicaciones PHP con AzureDesarrollo de aplicaciones PHP con Azure
Desarrollo de aplicaciones PHP con Azure
 
Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5
 
Pair Programming - Discute con tu compañero, no con tu teclado
Pair Programming - Discute con tu compañero, no con tu tecladoPair Programming - Discute con tu compañero, no con tu teclado
Pair Programming - Discute con tu compañero, no con tu teclado
 
Introducción a la Programación Web con Django
Introducción a la Programación Web con DjangoIntroducción a la Programación Web con Django
Introducción a la Programación Web con Django
 
Html5.- Desarrollo y Buenas Prácticas con JavaScript
Html5.- Desarrollo y Buenas Prácticas con JavaScriptHtml5.- Desarrollo y Buenas Prácticas con JavaScript
Html5.- Desarrollo y Buenas Prácticas con JavaScript
 
Webmatrix.- Web Apps con Kendo UI
Webmatrix.- Web Apps con Kendo UIWebmatrix.- Web Apps con Kendo UI
Webmatrix.- Web Apps con Kendo UI
 
Los errores más comunes de los programadores novatos
Los errores más comunes de los programadores novatosLos errores más comunes de los programadores novatos
Los errores más comunes de los programadores novatos
 
Preprocesadores CSS con LessCSS
Preprocesadores CSS con LessCSSPreprocesadores CSS con LessCSS
Preprocesadores CSS con LessCSS
 
Responsive Design
Responsive DesignResponsive Design
Responsive Design
 
Ruby desde cero
Ruby desde ceroRuby desde cero
Ruby desde cero
 

Kürzlich hochgeladen

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
EduardoJosVargasCama1
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Kürzlich hochgeladen (20)

Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 

La responsabilidad social de la Ingeniería de Software

  • 1. Entendiendo la Responsabilidad Social de la Ingeniería de Software @Avanet - @SoreyGarcia
  • 2. El por qué de esta conferencia La ingeniería de software y la calidad de software nos resultan temas apasionantes… Ser humanamente responsable nos resulta un reto Intentar hacer las dos primeras sin la última es claramente un despropósito
  • 3. Con esta charla no pretendemos enseñar a nadie a ser “humanamente responsable” Lo único que queremos es compartir algunas ideas de “ por qué deberíamos serlo” si nos dedicamos a esto de “ hacer software” siendo entusiastas o profesionales de cualquier área ( si, de cualquiera )
  • 4. Empecemos por entender lo básico ¿Qué es Ingeniería de Software?
  • 5. La Ingeniería de Software es la aplicación práctica del conocimiento científico en el diseño y construcción de programas de computadora, y la documentación asociada requerida para construirlos, operarlos y mantenerlos. Bohem - 1976.
  • 6. La Ingeniería de Software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación, y mantenimiento del software. IEEE - 1993.
  • 7. La Ingeniería de Software es la disciplina o área de la informática que ofrece métodos y técnicas para desarrollar y mantener software de calidad . Wikipedia
  • 8. ¿Está claro? Si, … o quizá… Sin embargo todo eso parece un concepto muy elevado para algo tan simple como “ hacer sofware”
  • 9. Si, es cierto… Es tan simple que puedes aprenderlo en Internet, incluso trabajar en ello y ganar mucho más que muchos de los que estudian física, matemáticas y ética …
  • 10. Y es que hace algunos años, ser ingeniero de sistemas parecía ser una de esas carreras que ofrecía un futuro prometedor
  • 11. Y saber de eso que pocos sabían hacía que fueras alguien “ interesante ” …
  • 12. En la práctica… Las cosas resultaron ser un poco distintas para la mayoría de nosotros…
  • 13. Es típico escuchar a las actuales generaciones de programadores profesionales, hablando de lo aburrido que resulta trabajar horas extras bajo presión, con planificaciones y presupuestos ajustados , pero eso si, con la firme convicción por parte de la administración de que haciéndolo todo no tan bien y con prisa el resultado tendrá que ser lo que el cliente espera ¡A como dé lugar!
  • 14. Y ni hablemos sobre el concepto de “ interesante ” en el que nos tiene la mayoría…
  • 15. Bajo esta perspectiva, resulta un poco extraño que tantas personas (entusiastas y profesionales de otras áreas) quieran hacer “lo mismo” que nosotros, y se aventuren en masa a la tarea de “ construir software”
  • 16. Un momento, nadie dijo que lo hicieran bien (no todos) , solo que también podían hacerlo…
  • 17. Sin embargo, No se trata solo de eso Bueno, eso sería, si lo único que importara de “desarrollar software” fuera “lograr que funcione”
  • 18. ¡Espere un momento! Aunque me gusta mi profesión, no estoy sugiriendo que debe ser un ingeniero titulado para hacer Ingeniería de Software. Lo que queremos resaltar es que si usted se quiere participar de la tarea de hacer software o si usted necesita contratar quien lo haga, debería entender como mínimo que implicaciones hay detrás de todo eso…
  • 19. Sin embargo y sin ánimo de ser duros, déjenos preguntarles,… ¿Qué clase de persona se arriesgaría a realizar una cirugía por haber encontrado las instrucciones en Internet? Y ¿quién en su sano juicio se sometería a que alguien así le hiciera una cirugía?
  • 20. ¡La verdad es que no suena nada agradable! ¡Ah! Pero es que usted no pretende hacer cirugías ¿verdad? Veamos, pruébese así mismo, responda la siguiente pregunta ya bastante típica
  • 21. ¿Viajaría usted en un avión cuyo software ha sido construido por usted?
  • 22. Esta pregunta es una de esas que generalmente produce duda o risa… Si fue así, le invitamos a cuestionarse… Sea usted o no, un profesional informático La razón es evidente y simple…
  • 23. Hay personas, si subirán a ese mismo avión, es decir que usarán su software
  • 24. Veamos otras preguntas… ¿Dudan los enfermos del corazón de sus médicos cirujanos?
  • 25. ¿Dudan los empresarios de los ingenieros civiles y arquitectos que construyen sus edificios?
  • 26. La falta de un lugar como profesional de sistemas, está al punto de considerar que lo que más sabemos hacer es instalar Word, manejar Excel o vacunar el computador cuando la familia lo llena de virus
  • 27. Puede que ese sea uno de los muchos orígenes de la idea de que un tutorial en Internet será suficiente para suplir la academia.
  • 28. Pues bien, esto lejos de ser una charla de desmotivación (como seguro parece) es una invitación a reflexionar y no solo como ingenieros, más bien como personas a los que nos afectará tarde o temprano todo esto
  • 29. Por otro lado… ¿Qué tan seguros estamos de que los profesionales de ingeniería valoran y entienden su papel?
  • 30. La mayoría de la gente piensa que la gente dedicada a la tecnología, se parece más a las máquinas con las que trabaja, que a la gente y que son como robots, por pasar todo el día frente a la computadora
  • 31. Bueno, en realidad no importa mucho si lo que piensan es correcto o no… Pero hay un problema
  • 32. Algunos ingenieros piensan exactamente lo mismo, actúan tal cual como si estuviesen programados y hacen exclusivamente lo que “deben” hacer o lo que alguien les dice que hagan, finalmente, así el trabajo es “más simple” y evitan preguntarse, por qué es importante…
  • 33. La Ingeniería de Software tiene un poco más que ver con un tema ético y humano de lo que muchos piensan
  • 34. La ingeniería de software es una idea casi ética ( no solo ética ) de como hacer el software de forma correcta (software de calidad) Aquí va una propuesta de una definición menos formal
  • 35. Quizá no tiene tantos años como la física, matemáticas o arquitectura…
  • 36. Pero créanos, tampoco se la inventaron ayer, ni está en pañales…
  • 37. Pero puede que “muchos de nosotros” si…
  • 38.
  • 39. Se han preguntado alguna vez ¿Dónde hay software? Ahora, pongamos en una perspectiva más real el símil de construir el avión en vuelo…
  • 40.  
  • 41.  
  • 42.  
  • 43.  
  • 44.  
  • 45.  
  • 46.  
  • 47. ¿Se imaginan de verdad construyendo este tipo de sistemas “en el aire” ?
  • 48.
  • 49. En la mayoría de proyectos de desarrollo, los costes de mantenimiento, superan por un amplio margen los costos de desarrollo, se habla de un 30% en Desarrollo y un 70% en Mantenimiento.
  • 50. No debería ser así ¿verdad? Todos sabemos que cometer errores en la construcción de software puede tener serias consecuencias…
  • 51. ¿Qué consecuencias? ¿Acaso en software no importa es básicamente que funcione ? Veamos algunas respuestas a esa pregunta… (Ojo, las siguientes imagenes son meramente ilustrativa, no todas pertenecen al hecho descrito)
  • 52. Therac-25 (1985 – 1987) Era una máquina empleada en terapia de radiación, producida por Atomic Energy of Canada Limited , notoria por haber sido objeto del error de software, causando al menos seis accidentes y que le costó la vida al menos a cinco personas
  • 53. Mariner 1 (28 de Julio de 1962) Un guión en las instrucciones del programa de guiado del cohete provocó la desviación del Atlas y tuvo que enviarse un comando para su autodestrucción a los 4 minutos y 53 segundos de su lanzamiento
  • 54. Vuelo 501 del ARIANE-5 (4 de Junio de 1996) Otro ejemplo documentado sobre el daño ocasionado por software mal diseñado es el de la explosión de la lanzadera Ariane-5, cuando a 40 segundos después de la iniciación de la secuencia de vuelo, la lanzadera se desvió de su ruta, se partió y explotó. En el proyecto global se invirtieron 10 años de construcción y 7 mil millones de euros, lo que supuso un duro golpe para la Agencia Espacial Europea (ESA) http :// www.youtube.com / watch?v=IONcgYzVFlg
  • 55. A-320 de Air France ( 26 de junio de 1988) Durante una presentación en el meeting de Habsheim, cerca de Mulhouse (Francia), un A-320 de Air France se estrella en el bosque, al final de la pista. Habrá tres muertos y una centena de heridos. Justo después, el mundo se pregunta las causas del accidente del avión anunciado como "el más seguro del mundo". Una de las causas se le atribuye a un error en el software de navegación http :// www.youtube.com / watch?v=_EM0hDchVlY
  • 56. ¡Si, ya sé! Usted no hace software para aviones o para la NASA Lo que lo estoy invitando a cuestionarse es…
  • 57. Antes de poner sus aplicaciones de software en producción, se pregunta… ¿el trabajo de cuantas personas puede afectar que algo salga mal? Entiendes que, ¿Qué algo salga mal puede significar hasta el simple hecho de que usar tu software puede ser desde confuso hasta una tortura?
  • 58. Es común ver software hechos para quienes lo desarrollaron y no para quienes lo van a usar
  • 59. Pues bien, aunque actualmente existen muchas personas que construyen software con conocimiento empírico , tal como si fuera arte , lo que debe diferenciar un trabajo bien hecho ( profesional o empírico ), es los métodos y la evidente forma de hacer el trabajo teniendo en mente la calidad de los procesos ejecutados y de los productos desarrollados .
  • 60. Hacer las cosas bien, siempre va a requerir un poco más de esfuerzo, que hacerlas de cualquier otro modo
  • 61. Practicas y Principios Pressman Actividades Personas Herramientas Roles Artefactos Notación Proceso de Software
  • 62. Existe una gran la variedad de propuestas de Proceso de Software , sin embargo el conjunto de actividades fundamentales definidas en el Ciclo de Vida Clásico se encuentran presentes en todos ellos. Análisis Diseño Construcción Pruebas Operación y Mantenimiento
  • 63. Es así como encontramos las Métodologías Estructuradas
  • 64. Y también las Métodologías Ágiles
  • 65. No existe un proceso de desarrollo de software universal que sea efectivo para todos los contextos de proyectos de desarrollo, de allí que sea necesario elegir responsablemente cual de ellos es más conveniente, teniendo en cuenta algunos criterios…
  • 67. Costo/Beneficio Económico
  • 68. Robustez del software
  • 69. Conocimiento disponible
  • 70. Los principios y practicas que pueden seguirse en la Ingeniería de Software, buscan garantizar un mejor resultado y uso de los recursos Pero, por alguna razón el comportamiento de los proyectos no es “aún” el esperado…
  • 71.  
  • 72. ¿Quién dice que siempre sale mal? A pues no, no siempre sale mal… Solo algunas veces
  • 73. (Estudio de Resultado de Ejecución de los Proyectos de Software) Fuente: http :// vidanp.wordpress.com /2010/02/01/ estandares -de-medida/ CHAOS Report
  • 74. Seguimos cayendo en los mismos errores una y otra vez…
  • 75. ¿Qué errores se comenten?
  • 76. Falta de comunicación
  • 77. Ausencia de objetivos y metas claras durante la ejecución del proyecto
  • 79. Requisitos poco claros y falta de acceso a la información
  • 80. Falta de análisis y entendimiento de las necesidades del cliente
  • 82. Indefinición del alcance y las responsabilidades de las partes
  • 83. Falta de identificación y gestión de los riesgos
  • 84. Carencia de habilidades en la ejecución de un rol
  • 85. Falta de seguimiento al avance del proyecto
  • 86. Falta de control del presupuesto
  • 88. Tratar de construir sin tener una arquitectura definida
  • 89. Falta de conocimiento e interés en la aplicación de mejores prácticas
  • 90.
  • 91. Hoy en día pocos comprenden, que la responsabilidad de lograr productos de software tiene que ver con todos los que participan en cualquier rol de proceso de Ingeniería de Software Mencionemos algunos
  • 92. Gerente de Proyectos
  • 94. Arquitecto de Software
  • 97. Analista de Pruebas
  • 98. ¿Son esos “ Todos” ?
  • 99. En la academia Gobierno, instituciones, docentes y estudiantes
  • 100. En la empresa Directivos, clientes, usuarios, analistas de negocio, profesionales de sistemas
  • 101. ¿Tu?