Presentación realizada en diciembre de 2010, para los alumnos de ingeniería del software de la Universitat Jaume I de Castellón. Trata de describir la realidad de las empresas TIC de la Comunidad Valenciana, y cómo la aplicación de técnicas de Ing. del Software en sus procesos de desarrollo, les pueden ayudar a pasar la crisis con más holgura.
2. Ingeniando el software
en tiempos de crisis
Francisco Sánchez Cid
Jefe de Proyectos
Área de Desarrollos y Arquitectura Software
S
3. Ingeniando el 1. El Instituto Tecnológico
SW en tiempos de Informática
de crisis 2. Venturas y desventuras
del sector IT
Contenido 3. Ingeniería del Software
en la práctica
4. Consejos
El Instituto:
www.iti.es
El ponente:
Web: http://web.iti.upv.es/~fsanchez/
Correo: cid@iti.es
4. 1. El Instituto Tecnológico de
Informática
Qué somos
S Centro Tecnológico especializado en Investigación, Desarrollo
e Innovación en Tecnologías de la Información y
Comunicación.
S 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..)
S 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
5. 1. El Instituto Tecnológico de
Informática
Recursos del ITI
S 94% titulados superiores y
34% doctores. S Personal: 100 personas
S El 93% de las empresas TIC S Instalaciones: 1700 m2 (V)
de la CV de más de 8
empleados son asociadas al S Laboratorios de testeo y
ITI usabilidad
S Más de 110 proyectos de S Laboratorios de prototipado
I+D+I cofinanciados en
convocatoria pública o S Aula de formación
contratados directamente por
empresas en 2009 S Salas especialmente
equipadas
S Más de 100 artículos
científicos publicados en S Unidad técnica en Alcoy
2009
6. Departamentos I+D+I
Visión Artificial y
Biometría
Informática Reconocimiento
Industrial, Comunic de voz y
aciones y Tecnologías del
Automática Lenguaje
Sistemas
Optimización, Lo Distribuidos
gística y
Producción
7. 1. El Instituto Tecnológico de
Informática
Departamentos I+D+I
8. Departamentos Tecnología y
Servicios
Área de Software
Libre
Área de Sistemas
Empotrados y Área de Sistemas
Movilidad
Área de
Desarrollos y Área de
Arquitecturas Integración de
SW Tecnologías
9. 1. El Instituto Tecnológico de
Informática
Tecnología y Servicios
Área de
Desarrollos y
Arquitecturas
Software
10. Ingeniando el 1. El Instituto Tecnológico
SW en tiempos de Informática
de crisis 2. Venturas y desventuras
del sector IT
Contenido 3. Ingeniería del Software
en la práctica
4. Consejos
El Instituto:
www.iti.es
El ponente:
Web: http://web.iti.upv.es/~fsanchez/
Correo: cid@iti.es
11. 2. Venturas y desventuras del
sector IT en la CV
La situación
Fuente: Observatorio Valenciano para la
Sociedad Tecnológica y del Conocimiento
12. 2. Venturas y desventuras del
sector IT en la CV
La situación
Fuente: Observatorio Valenciano para la
Sociedad Tecnológica y del Conocimiento
13. 2. Venturas y desventuras del
sector IT en la CV
La situación
Fuente: Observatorio Valenciano para la
Sociedad Tecnológica y del Conocimiento
14. 2. Venturas y desventuras del
sector IT en la CV
La situación
Fuente: Observatorio Valenciano para la
Sociedad Tecnológica y del Conocimiento
15. 2. Venturas y desventuras del
sector IT en la CV
La problemática
S Estamos en crisis
S Mucho trabajo, poco producto
S Mucha subvención, poca iniciativa
S Poco nivel de madurez
S Directivos con escasos conocimientos de la Ing. del Software
S Aún investigando, no hay un plan de explotación claro
16. 2. Venturas y desventuras del
sector IT en la CV
Por qué vienen a nosotros
S Pongamos por caso…
S Una empresa del sector de la alimentación
S Fabrica máquinas que clasifican aceitunas
S Procesando imágenes
S Y usando expulsores de aire comprimido
Es decir, algo así…
17. 2. Venturas y desventuras del
sector IT en la CV
Por qué vienen a nosotros
Cámara
ANI y ADI
ACO
18. 2. Venturas y desventuras del
sector IT en la CV
Por qué vienen a nosotros
S Todo iba bien.
S Tenían su máquina funcionando y las aceitunas y los
aceituneros eran felices.
S Pero entonces llegaron los malvados comerciales
S ¿Y si en vez de aceitunas queremos cocos?
S ¿Y si en lugar de cámaras de vídeo queremos espectrógrafos?
S ¿Y si en lugar de aire comprimido queremos compuertas de
derivación?
19. 2. Venturas y desventuras del
sector IT en la CV
Por qué vienen a nosotros
S Qué pasó:
S Cada situación una nueva máquina, cada máquina, un nuevo
equipo y un nuevo mantenimiento.
S Cada máquina su servicio técnico, y una evolución particular
S Los fallos de una, se repetían en el resto
S Se duplicaba información de configuración y control de errores
20. 2. Venturas y desventuras del
sector IT en la CV
Por qué vienen a nosotros
S Razones:
S Arquitectura NO modular
S Código repetido
S Sin control de versionado
S Sin control de errores
S Sin documentación de la arquitectura
S Con documentación anárquica del código
S …
En resumen, no aplicaban técnicas de Ingeniería del Software
21. 2. Venturas y desventuras del
sector IT en la CV
Por qué vienen a nosotros
S Hasta que no estás muy mal, no vas al médico…
22. 2. Venturas y desventuras del
sector IT en la CV
Por qué vienen a nosotros
S Y hasta que el software no es inmanejable… no vienen al ITI
23. 2. Venturas y desventuras del
sector IT en la CV
Problemas del sector
S En general, nos encontramos con empresas que:
S No tienen una metodología de desarrollo software clara
S No tienen una metodología de gestión de proyectos clara
S Empresas que no usan herramientas estándar para:
S Diseño (ni un triste modelo UML)
S Control de Versiones (el SVN no es tan complicado)
S Gestión de la documentación (ni siquiera plantillas)
S Testeo (¿qué es eso del testeo unitario?)
S Control de bugs y Errores
24. 2. Venturas y desventuras del
sector IT en la CV
Problemas del sector
S Estamos en crisis:
S No puedo perder el tiempo en documentación
S ¿Testeo? ¿Para qué? Mis programadores son muy buenos
S La realidad:
S Sólo las empresas maduras sobreviven a la crisis
S Sólo las que tienen procesos y procedimientos claros
S Sólo las que aplican patrones y reutilizan código y conocimiento
S Sólo las que se mueven con la tecnología
25. Ingeniando el 1. El Instituto Tecnológico
SW en tiempos de Informática
de crisis 2. Venturas y desventuras
del sector IT
Contenido 3. Ingeniería del Software
en la práctica
4. Consejos
El Instituto:
www.iti.es
El ponente:
Web: http://web.iti.upv.es/~fsanchez/
Correo: cid@iti.es
27. 3. Ingeniería del Software práctica
Metodologías de Desarrollo
S Hay normas generales:
S En general, los extremos no son buenos: ni Cascada, ni Extreme
Programming.
S En general, los enfoques incrementales o iterativos son buenos:
RUP, SCRUM
S Pero todo depende del proyecto:
S Un proyecto de envergadura requiere un buen análisis de
requisitos y un buen diseño
S Un pequeño proyecto (100 horas), se atasca con un análisis y
diseño excesivos
28. 3. Ingeniería del Software práctica
Metodologías de Desarrollo
S Caso SCRUM:
S Extremadamente útil y productivo (bien)
S Muy exigente para el grupo de trabajo (no tan bien)
29. 3. Ingeniería del Software práctica
Problemas Generales
S Cambian los requisitos:
S Caso XXX y su documentación inicial tras un año de desarrollo
S La tecnología no lo permite:
S Caso Google Calendar y su control de acceso por calendario
S El equipo no es competente:
S El famoso caso del departamento desmantelado
30. 3. Ingeniería del Software práctica
Soluciones Generales
S Cambian los requisitos:
S No especifiques todos los requisitos en detalle.
S La documentación crecerá junto al desarrollo
S La tecnología no lo permite:
S Rol de Arquitecto Software
S Desarrolla elementos críticos antes de los no críticos
S El equipo no es competente:
31. 3. Ingeniería del Software práctica
Soluciones Generales
S El equipo no es competente:
S Huyeeeeeee!!!!
32. Hasta aquí todo bien, ¿no?
Ya sabemos gestionar un proyecto
Ahora vamos a remangarnos la
camisa…
33. 3. Ingeniería del Software práctica
Arquitectura y Diseño de Sistemas
S Aprende a modelar
S Muchos dibujan, pocos modelan
S Es la forma más rápida de documentar
S La forma más fácil de relacionarte con el cliente
S No existe el diagrama perfecto, sí el correcto
S No intentes representar todo en un único diagrama
S Haz sólo los absolutamente necesarios
34. 3. Ingeniería del Software práctica
Arquitectura y Diseño de Sistemas
S Lo más usado en las empresas: Diagramas de Estructura
Fuente: www.agilemodeling.com
35. 3. Ingeniería del Software práctica
Arquitectura y Diseño de Sistemas
S Lo más usado en las empresas: Diagramas de
Comportamiento
Fuente: www.agilemodeling.com
36. 3. Ingeniería del Software práctica
Arquitectura y Diseño de Sistemas
S Lo más usado en las empresas: Diagramas de Interacción
Fuente: www.agilemodeling.com
37. 3. Ingeniería del Software práctica
Arquitectura y Diseño de Sistemas
S Y por supuesto, el mock-up:
39. 3. Ingeniería del Software práctica
La importancia de los patrones
S Es lo que llevará a nuestra carrera a ser una INGENIERÍA:
S Singleton, para crear una clase de una única instancia
S Factory, para crear clases sin especificar la clase exacta a crear
S Adapter, para permitir a dos clases con interfaces incompatibles
comunicarse encapsulándolas
S Patrones específicos de seguridad como:
S Encrypted Storage
S Password Authentication
S Authentication Session
S Repetidos una y otra vez, pero por fin con una implementación de
referencia
40. 3. Ingeniería del Software práctica
La importancia de los patrones
S A un nivel más arquitectónico, son fundamentales los EAI
(Enterprise Integration Patterns):
S Estilos de integración: mensajería, BBDD compartida, …
S Sistemas de Mensajería: Router, Translator, …
S Canales de Mensajería: Publish-Subscribe, Message Bus, …
Y muchos más
41. 3. Ingeniería del Software práctica
La importancia de los patrones
S Lo importante:
S Saber dónde encontrarlos y aplicarlos correctamente
S Respetar la nomenclatura
Fuente: http://www.eaipatterns.com/
42. Ingeniando el 1. El Instituto Tecnológico
SW en tiempos de Informática
de crisis 2. Venturas y desventuras
del sector IT
Contenido 3. Ingeniería del Software
en la práctica
4. Consejos
El Instituto:
www.iti.es
El ponente:
Web: http://web.iti.upv.es/~fsanchez/
Correo: cid@iti.es
43. 4. Consejos para moldear tu camino
tecnológico
S Todos empezamos desde abajo, así que…
S Hazte un buen programador
S Pero no lo olvides:
S Eres Ingeniero, aunque tu rol sea programador
S Hazte un buen tecnólogo
S No es sólo programar, es conocer la tecnología
S Internacionalízate
44. 4. Consejos para moldear tu camino
tecnológico
S Maneja el MVC con soltura:
S Y encapsula, siempre encapsula:
S ¿Cómo construirías tu BBDD remota?
46. 4. Consejos para moldear tu camino
tecnológico
S Respecto a la programación:
S Ingenia, busca, no des nada por seguro: duda de todo.
S Sé maduro: aplica patrones
S Sé limpio: aplica formatos estándar
S Consulta (o participa) en proyectos de SW libre
S Respecto a la tecnología:
S No sólo programes, conoce la tecnología
S Aprende a crear tu propio criterio: busca y compara
S No es Java, sino Struts, Hibernate, Spring…
S No es .NET, sino SQLServer, Sharepoint, Visual Studio…
47. 4. Consejos para moldear tu camino
tecnológico
S Respecto a ti:
S Sé humilde, pero intrépido
S Saca todo el partido de los que saben
S Procura estar al día en tecnología
Y entre nosotros…
Aquello que hagas, hazlo bien
48. Y eso es todo…
¿preguntas?
Francisco Sánchez Cid
cid@iti.es
Área de Desarrollos y Arquitectura
Software