Caso de Estudio – SEL-DEV
SELDEV es una pequeña empresa de desarrollo de software que se encarga de desarrollar dos tipos de software
Por un lado, SELDEV desarrolla proyectos relacionados con aplicaciones web, móviles (incluyendo IOS y Android) para la creación de nuevos productos y servicios disruptivos. Para la incubación de este tipo de soluciones, se dispone de un equipo de trabajo específico compuesto por, al menos 5 desarrolladores (dependiendo de la financiación disponible hay periodos de 15 desarrolladores), que se pagan con parte de los beneficios que se obtienen de los proyectos finalizados por la empresa, venta de derechos de productos que se han vendido a terceros, subvenciones y capital de riesgo que se obtiene para su desarrollo e incubación.
Por otra parte, SELDEV desarrolla distintos productos orientados al sector de la automoción. Por un lado, tiene una línea de productos que permite la gestión de inspecciones de ITVs mediante la interconexión de sensores inteligentes utilizando arquitecturas interoperables de Internet de las Cosas. Además, también tiene una línea de productos para la construcción de componentes de software que se utilizan para la homologación, inspección, control y monitorización de vehículos autónomos. Este equipo también está compuesto por un equipo más estable de entre 12 y 15 desarrolladores.
El personal de la empresa tiene entre 1 y 8 años de experiencia como desarrolladores de software. Esta experiencia se caracteriza desde tres puntos de vista distintos:
- Desde la perspectiva formativa, casi todo el personal es graduado en Ingeniería Informática y de Telecomunicaciones por la Universidad Carlos III de Madrid. Aquellos que han estudiado Informática tienen conocimientos de Gestión de Proyectos e Ingeniería del Software, sin embargo los que estudiaron Telecomunicaciones no adquirieron esas competencias en ninguna de las asignaturas de su titulación.
- Desde la perspectiva del proceso software, a excepción de los altos niveles de gestión, las personas que participan en proyecto tienen poca experiencia práctica en planificación y seguimiento de proyectos, sus principales capacidades y competencias están relacionadas con el diseño, desarrollo y prueba.
- Desde el punto de vista tecnológico, se manejan distintas tecnologías del desarrollo móvil (IOS y Android), del desarrollo web (HTML y Javascript) y entornos de desarrollo de componentes (Java y C++).
El proceso de software que se utiliza está compuesto por una primera fase de propuesta. Dependiendo del tipo de proyecto en el que estemos trabajando será diferente.
Para los proyectos relacionados con el desarrollo de componentes para vehículos autónomos, después de recibir una solicitud de propuesta se elabora un documento y una presentación por parte del departamento comercial de la empresa con ayuda del jefe de operaciones de la empresa.
Para los desarrollos de nuevos productos y servicios basados en aplicaciones móviles y web, se sustituye ese documento de propuesta por la elaboración de un Business Canvas Model del producto a desarrollar y un Story Mapping que ayuda a la definición de las características técnicas que debe tener la aplicación a desarrollar.
En caso de que consigamos financiación para comenzar el proyecto porque hayan decidido aceptar nuestra oferta o porque hemos conseguido financiación interna o externa para desarrollar un nuevo producto o servicios se comienza el desarrollo del proyecto.
En primer lugar, se comienza con el proceso de análisis de necesidades. En caso del software orientado a componentes para vehículos autónomos se realiza una especificación de requisitos siguiendo las normas establecidas por el estándar IEEE 830 a partir de la información de la oferta y diversas reuniones que se mantienen con los clientes. En el caso del desarrollo de aplicaciones para nuevos productos y servicios, a partir de la información del Business Canvas Model y del Story Mapping, se elaborán distintos prototipos no funcionales (Mock ups).
Una vez finalizado el análisis de requisitos, se procede el diseño y desarrollo de los elementos de software a obtener. La estrategia también es diferente dependiendo del tipo de software que vamos a desarrollar.
En el caso del software orientado a componentes para vehículos autónomos, en primer lugar se aborda un diseño de la arquitectura de alto nivel, junto con un plan de pruebas que se debe completar durante el desarrollo. Posteriormente, se aborda el diseño detallado y el desarrollo de cada componente en función de la prioridad de este para la arquitectura y la disponibilidad de los miembros del equipo de trabajo.
En caso de aplicaciones móviles y web, el desarrollo se estructura para que las características más relevantes para el producto se desarrollen en primer lugar, aplicando diversos principios de desarrollo ágil como desarrollo dirigido por pruebas, diseño simple, refactoring y propiedad colectiva de código.
Por último, independientemente del tipo de proyecto que desarrollemos, en la fase de despliegue, se realizan las pruebas de pre-producción y de instalación, incluyendo la participación de los responsables de sistemas de las organizaciones implicadas.
SELDEV ha intentado varias iniciativas para mejorar la capacidad de producción y gestión de los proyectos que desarrolla. En 2003 obtuvo la certificación ISO/IEC 90003:2014. Sin embargo, los procesos de gestión que se certificaron en ese momento se han quedado obsoletos y es necesario actualizarlos para mejorar el rendimiento organizativo. Con este propósito, en 2016, SELDEV comenzó una iniciativa de mejora de la calidad de sus procesos de prueba de software pero no finalizó satisfactoriamente debido a la falta de disponibilidad y motivación del personal clave que debía participar. Finalmente, en 2018, nos hemos planteado comenzar un nuevo intento de mejora de procesos, pero esta vez relacionado con algunos aspectos de gestión de proyectos que urge mejorar para mantener la viabilidad económica de la empresa.
En una primera toma de contacto, se han identificado una serie de aspectos que es necesario mejorar. Estos aspectos están relacionados con:
- En los proyectos de aplicaciones móviles y web en los que se crean nuevos productos y servicios que están dirigidos al gran mercado es necesario tener una mayor seguridad que el problema que se pretende resolver con el nuevo producto y las funcionalidades consideradas satisfacen las expectativas del público objetivo.
- En estos mismos proyectos, es necesario cuantificar el valor añadido de las innovaciones que se producen de cara a una mejor captación de inversiones y venta del producto.
- Para los proyectos relativos a componentes de vehículos autónomo, es necesario mejorar la planificación a alto nivel para asegurar que se obtienen los resultados esperados para la facturación.
- Es necesario, mejorar la información de seguimiento de proyectos para saber cada semana cuáles son los objetivos establecidos, las dificultades que se van obteniendo y, al final de la misma, controlar los que se han podido conseguir.
- Por último, es necesario mejorar la capacidad de estimación de nuestro personal para que nuestras planificaciones se basen en estimaciones de esfuerzo más fiables.
Para conseguir estos objetivos de mejora, se ha pensado que a lo largo de los próximos meses distintos equipos de trabajo de la empresa se centren en un área de interés y aborden las mejoras que se consideren oportunos. Con el propósito de potenciar la motivación y la implicación del personal de la empresa, imprescindible para el éxito de la iniciativa, se ha planteado la aplicación de principios de gamificación.