ingeniando el software en tiempos de crisis

48
S

Upload: francisco-cid

Post on 20-Aug-2015

120 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Ingeniando el software en tiempos de crisis

S

Page 2: Ingeniando el software en tiempos de crisis

S

Ingeniando el software en tiempos de crisis

Francisco Sánchez CidJefe de Proyectos

Área de Desarrollos y Arquitectura Software

Page 3: Ingeniando el software en tiempos de crisis

Ingeniando el SW en tiempos de crisis

1. El Instituto Tecnológico de Informática

2. Venturas y desventuras del sector IT

3. Ingeniería del Software en la práctica

4. Consejos

Contenido

El Instituto: www.iti.es

El ponente: Web: http://web.iti.upv.es/~fsanchez/ Correo: [email protected]

Page 4: Ingeniando el software en tiempos de crisis

1. El Instituto Tecnológico de InformáticaQué somos

Centro Tecnológico especializado en Investigación, Desarrollo e Innovación en Tecnologías de la Información y Comunicación.

Somos una asociación sin ánimo de lucro y pertenecemos a la Red de Institutos Tecnológicos de la Comunidad Valenciana (junto al del Juguete, el Cerámico, el de la Madera..)

El ITI desarrolla una labor de I+D+I transfiriendo a las empresas la posibilidad de incorporar a sus productos las tecnologías y capacidades desarrolladas en proyectos de I+D+I

Page 5: Ingeniando el software en tiempos de crisis

1. El Instituto Tecnológico de Informática

Recursos del ITI

Personal: 100 personas

Instalaciones: 1700 m2 (V)

Laboratorios de testeo y usabilidad

Laboratorios de prototipado

Aula de formación

Salas especialmente equipadas

Unidad técnica en Alcoy

94% titulados superiores y 34% doctores.

El 93% de las empresas TIC de la CV de más de 8 empleados son asociadas al ITI

Más de 110 proyectos de I+D+I cofinanciados en convocatoria pública o contratados directamente por empresas en 2009

Más de 100 artículos científicos publicados en 2009

Page 6: Ingeniando el software en tiempos de crisis

Visión Artificial y Biometría

Reconocimiento de voz y

Tecnologías del Lenguaje

Sistemas Distribuidos

Optimización, Logística y Producción

Informática Industrial,

Comunicaciones y Automática

Departamentos I+D+I

Page 7: Ingeniando el software en tiempos de crisis

1. El Instituto Tecnológico de Informática

Departamentos I+D+I

Page 8: Ingeniando el software en tiempos de crisis

Área de Software Libre

Área de Sistemas

Área de Integración

de Tecnologías

Área de Desarrollos y Arquitecturas

SW

Área de Sistemas

Empotrados y Movilidad

Departamentos Tecnología y Servicios

Page 9: Ingeniando el software en tiempos de crisis

Área de Desarrollos y Arquitecturas

Software

1. El Instituto Tecnológico de Informática

Tecnología y Servicios

Page 10: Ingeniando el software en tiempos de crisis

Ingeniando el SW en tiempos de crisis

1. El Instituto Tecnológico de Informática

2. Venturas y desventuras del sector IT

3. Ingeniería del Software en la práctica

4. Consejos

Contenido

El Instituto: www.iti.es

El ponente: Web: http://web.iti.upv.es/~fsanchez/ Correo: [email protected]

Page 11: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CV

La situación

Fuente: Observatorio Valenciano para la Sociedad Tecnológica y del Conocimiento

Page 12: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CV

La situación

Fuente: Observatorio Valenciano para la Sociedad Tecnológica y del Conocimiento

Page 13: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CV

La situación

Fuente: Observatorio Valenciano para la Sociedad Tecnológica y del Conocimiento

Page 14: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CV

La situación

Fuente: Observatorio Valenciano para la Sociedad Tecnológica y del Conocimiento

Page 15: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CV

La problemática

Estamos en crisis

Mucho trabajo, poco producto

Mucha subvención, poca iniciativa

Poco nivel de madurez

Directivos con escasos conocimientos de la Ing. del Software

Aún investigando, no hay un plan de explotación claro

Page 16: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CV

Por qué vienen a nosotros

Pongamos por caso… Una empresa del sector de la alimentación Fabrica máquinas que clasifican aceitunas Procesando imágenes Y usando expulsores de aire comprimido

Es decir, algo así…

Page 17: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CV

Por qué vienen a nosotros

Page 18: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CV

Por qué vienen a nosotros

Todo iba bien.

Tenían su máquina funcionando y las aceitunas y los aceituneros eran felices.

Pero entonces llegaron los malvados comerciales ¿Y si en vez de aceitunas queremos cocos? ¿Y si en lugar de cámaras de vídeo queremos

espectrógrafos? ¿Y si en lugar de aire comprimido queremos compuertas

de derivación?

Page 19: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CV

Por qué vienen a nosotros

Qué pasó: Cada situación una nueva máquina, cada máquina, un

nuevo equipo y un nuevo mantenimiento. Cada máquina su servicio técnico, y una evolución

particular Los fallos de una, se repetían en el resto Se duplicaba información de configuración y control de

errores

Page 20: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CV

Por qué vienen a nosotros

Razones: Arquitectura NO modular Código repetido Sin control de versionado Sin control de errores Sin documentación de la arquitectura Con documentación anárquica del código …

En resumen, no aplicaban técnicas de Ingeniería del Software

Page 21: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CV

Por qué vienen a nosotros

Hasta que no estás muy mal, no vas al médico…

Page 22: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CV

Por qué vienen a nosotros

Y hasta que el software no es inmanejable… no vienen al ITI

Page 23: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CVProblemas del sector

En general, nos encontramos con empresas que: No tienen una metodología de desarrollo software clara No tienen una metodología de gestión de proyectos clara

Empresas que no usan herramientas estándar para: Diseño (ni un triste modelo UML) Control de Versiones (el SVN no es tan complicado) Gestión de la documentación (ni siquiera plantillas) Testeo (¿qué es eso del testeo unitario?) Control de bugs y Errores

Page 24: Ingeniando el software en tiempos de crisis

2. Venturas y desventuras del sector IT en la CVProblemas del sector

Estamos en crisis: No puedo perder el tiempo en documentación ¿Testeo? ¿Para qué? Mis programadores son muy buenos

La realidad: Sólo las empresas maduras sobreviven a la crisis Sólo las que tienen procesos y procedimientos claros Sólo las que aplican patrones y reutilizan código y

conocimiento Sólo las que se mueven con la tecnología

Page 25: Ingeniando el software en tiempos de crisis

Ingeniando el SW en tiempos de crisis

1. El Instituto Tecnológico de Informática

2. Venturas y desventuras del sector IT

3. Ingeniería del Software en la práctica

4. Consejos

Contenido

El Instituto: www.iti.es

El ponente: Web: http://web.iti.upv.es/~fsanchez/ Correo: [email protected]

Page 26: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaMetodologías de Desarrollo

Page 27: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaMetodologías de Desarrollo

Hay normas generales: En general, los extremos no son buenos: ni Cascada, ni

Extreme Programming. En general, los enfoques incrementales o iterativos son

buenos: RUP, SCRUM

Pero todo depende del proyecto: Un proyecto de envergadura requiere un buen análisis de

requisitos y un buen diseño Un pequeño proyecto (100 horas), se atasca con un

análisis y diseño excesivos

Page 28: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaMetodologías de Desarrollo

Caso SCRUM: Extremadamente útil y productivo (bien) Muy exigente para el grupo de trabajo (no tan bien)

Page 29: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaProblemas Generales

Cambian los requisitos: Caso XXX y su documentación inicial tras un año de

desarrollo

La tecnología no lo permite: Caso Google Calendar y su control de acceso por

calendario

El equipo no es competente: El famoso caso del departamento desmantelado

Page 30: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaSoluciones Generales

Cambian los requisitos: No especifiques todos los requisitos en detalle. La documentación crecerá junto al desarrollo

La tecnología no lo permite: Rol de Arquitecto Software Desarrolla elementos críticos antes de los no críticos

El equipo no es competente:

Page 31: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaSoluciones Generales

El equipo no es competente: Huyeeeeeee!!!!

Page 32: Ingeniando el software en tiempos de crisis

Hasta aquí todo bien, ¿no?Ya sabemos gestionar un proyecto

Ahora vamos a remangarnos la camisa…

Page 33: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaArquitectura y Diseño de Sistemas

Aprende a modelar Muchos dibujan, pocos modelan Es la forma más rápida de documentar La forma más fácil de relacionarte con el cliente

No existe el diagrama perfecto, sí el correcto No intentes representar todo en un único diagrama Haz sólo los absolutamente necesarios

Page 34: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaArquitectura y Diseño de Sistemas

Lo más usado en las empresas: Diagramas de Estructura

Fuente: www.agilemodeling.com

Clases

Despliegue

Page 35: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaArquitectura y Diseño de Sistemas

Lo más usado en las empresas: Diagramas de Comportamiento

Fuente: www.agilemodeling.com

Actividades

Casos de

uso

Page 36: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaArquitectura y Diseño de Sistemas

Lo más usado en las empresas: Diagramas de Interacción

Fuente: www.agilemodeling.com

Secuenci

a

Page 37: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaArquitectura y Diseño de Sistemas

Y por supuesto, el mock-up:

Page 38: Ingeniando el software en tiempos de crisis

Y es fundamental: Aplicación de Patrones

Page 39: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaLa importancia de los patrones

Es lo que llevará a nuestra carrera a ser una INGENIERÍA: Singleton, para crear una clase de una única instancia Factory, para crear clases sin especificar la clase exacta a crear Adapter, para permitir a dos clases con interfaces incompatibles

comunicarse encapsulándolas

Patrones específicos de seguridad como: Encrypted Storage Password Authentication Authentication Session

Repetidos una y otra vez, pero por fin con una implementación de referencia

Page 40: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaLa importancia de los patrones

A un nivel más arquitectónico, son fundamentales los EAI (Enterprise Integration Patterns): Estilos de integración: mensajería, BBDD compartida, … Sistemas de Mensajería: Router, Translator, … Canales de Mensajería: Publish-Subscribe, Message Bus, …

Y muchos más

Page 41: Ingeniando el software en tiempos de crisis

3. Ingeniería del Software prácticaLa importancia de los patrones

Lo importante: Saber dónde encontrarlos y aplicarlos correctamente Respetar la nomenclatura

Publish-Subscribe

Router

Polling-Consumer

Fuente: http://www.eaipatterns.com/

Page 42: Ingeniando el software en tiempos de crisis

Ingeniando el SW en tiempos de crisis

1. El Instituto Tecnológico de Informática

2. Venturas y desventuras del sector IT

3. Ingeniería del Software en la práctica

4. Consejos

Contenido

El Instituto: www.iti.es

El ponente: Web: http://web.iti.upv.es/~fsanchez/ Correo: [email protected]

Page 43: Ingeniando el software en tiempos de crisis

4. Consejos para moldear tu camino tecnológico

Todos empezamos desde abajo, así que… Hazte un buen programador Pero no lo olvides:

Eres Ingeniero, aunque tu rol sea programador Hazte un buen tecnólogo

No es sólo programar, es conocer la tecnología

Internacionalízate

Page 44: Ingeniando el software en tiempos de crisis

4. Consejos para moldear tu camino tecnológico

Maneja el MVC con soltura:

Y encapsula, siempre encapsula: ¿Cómo construirías tu BBDD remota?

Page 45: Ingeniando el software en tiempos de crisis

4. Consejos para moldear tu camino tecnológico

Interfaz remota

Web Service

PersistenciaEJB JPA

Mi BBDDMySQL Postgre

Page 46: Ingeniando el software en tiempos de crisis

4. Consejos para moldear tu camino tecnológico

Respecto a la programación: Ingenia, busca, no des nada por seguro: duda de todo. Sé maduro: aplica patrones Sé limpio: aplica formatos estándar Consulta (o participa) en proyectos de SW libre

Respecto a la tecnología: No sólo programes, conoce la tecnología Aprende a crear tu propio criterio: busca y compara No es Java, sino Struts, Hibernate, Spring… No es .NET, sino SQLServer, Sharepoint, Visual Studio…

Page 47: Ingeniando el software en tiempos de crisis

4. Consejos para moldear tu camino tecnológico

Respecto a ti: Sé humilde, pero intrépido Saca todo el partido de los que saben Procura estar al día en tecnología

Y entre nosotros…Aquello que hagas, hazlo bien

Page 48: Ingeniando el software en tiempos de crisis

Y eso es todo… ¿preguntas?

Francisco Sánchez Cid

[email protected]

Área de Desarrollos y Arquitectura Software