ingeniando el software en tiempos de crisis

Post on 20-Aug-2015

121 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

S

S

Ingeniando el software en tiempos de crisis

Francisco Sánchez CidJefe de Proyectos

Área de Desarrollos y Arquitectura Software

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: cid@iti.es

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

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

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

1. El Instituto Tecnológico de Informática

Departamentos I+D+I

Á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

Área de Desarrollos y Arquitecturas

Software

1. El Instituto Tecnológico de Informática

Tecnología y Servicios

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: cid@iti.es

2. Venturas y desventuras del sector IT en la CV

La situación

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

2. Venturas y desventuras del sector IT en la CV

La situación

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

2. Venturas y desventuras del sector IT en la CV

La situación

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

2. Venturas y desventuras del sector IT en la CV

La situación

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

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

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í…

2. Venturas y desventuras del sector IT en la CV

Por qué vienen a nosotros

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?

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

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

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…

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

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

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

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: cid@iti.es

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

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

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)

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

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:

3. Ingeniería del Software prácticaSoluciones Generales

El equipo no es competente: Huyeeeeeee!!!!

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

Ahora vamos a remangarnos la camisa…

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

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

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

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

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

Y por supuesto, el mock-up:

Y es fundamental: Aplicación de Patrones

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

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

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/

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: cid@iti.es

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

4. Consejos para moldear tu camino tecnológico

Maneja el MVC con soltura:

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

4. Consejos para moldear tu camino tecnológico

Interfaz remota

Web Service

PersistenciaEJB JPA

Mi BBDDMySQL Postgre

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…

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

Y eso es todo… ¿preguntas?

Francisco Sánchez Cid

cid@iti.es

Área de Desarrollos y Arquitectura Software

top related