Publicado en ISV Magazine 2007-03-22 (Enlace original)
Una brillante e innovadora herramienta para la gestión de código de configuración, SCM, creada por una joven empresas española
Abordar un proyecto de esta complejidad requiere disponer de un bagaje suficiente para poder garantizar su éxito. El equipo emprendedor tras el desarrollo está formado por David Suárez Villasante y Pablo Santos Luaces, ambos Ingenieros en Informática y con una contrastada experiencia tanto en participación como en dirección de proyectos. Los dos coincidieron trabajando en el equipo de desarrollo de televisión digital de la multinacional Sony en Bruselas, dónde adquirieron parte del conocimiento sobre los sistemas de gestión de configuración.
En su trabajo para la multinacional tenían a su alcance un potente sistema con amplias funcionalidades. Al regresar a España y pasar a trabajar en sendas PYMES pudieron darse cuenta de que estos sistemas no están al alcance de las empresas más modestas, con lo que la opción que se podían permitir eran sistemas que tenían grandes carencias y no resolvían los problemas que un SCM debería solucionar. Ante la necesidad propia observaron, por lo tanto, que había un nicho de mercado inexplorado en el sector de la gestión de la configuración.
Este es el objetivo que quieren lograr con sus herramientas: poner a la disposición de cualquier empresa una tecnología de altas prestaciones fundadas en una sólida base de software de nuevo diseño y adaptadas a las actuales tendencias del mercado. Los emprendedores presentaron su proyecto al grupo ADSI que se convirtió en su principal respaldo financiero, aportando el capital necesario para llevar a cabo el proyecto de I+D abordado por Códice Software. La empresa Códice Software se constituyó en Septiembre de 2005 para desarrollar.

Códice Software surge a mediados de 2005, tras un largo periodo de gestación, con un objetivo muy claro: desarrollar desde cero un nuevo producto de Gestión de Configuración o SCM (Software Configuration Management) capaz de proporcionar funcionalidades de alto nivel y haciéndolas llegar a grupos de desarrollo pequeñas y medianas. Al partir de cero, el equipo de desarrollado ha logrado introducir interesantes ideas y soluciones que no están presentes en otros productos de mayor nivel o precio.
Basado en tecnología .NET
El producto, Plastic SCM, está totalmente basado en tecnología .NET, lo cual ha sido clave para poder acortar el ciclo de desarrollo. Las ventajas que aporta la combinación de C# y la plataforma .NET sobre lenguajes tradicionales como C/C++ (utilizados típicamente en el desarrollo de este tipo de software), han permitido al equipo de desarrollo centrarse en el diseño, simplificándose en todo momento la implementación.
Plastic salió al mercado en Noviembre de 2006, tras presentarse en el Tech Ed Developers 2006 en Barcelona, y plantea una solución innovadora en el competitivo mercado de los controles de versiones.
La Gestión de la Configuración de Software (Software Configuration Management o SCM) consiste en controlar todos los cambios que se producen durante el desarrollo de software.
Independientemente del tipo de proyecto, del lenguaje de programación, del sistema operativo, del tipo de software e incluso del tamaño del equipo, hay una característica que todos los desarrollos tienen en común: se realizan infinidad de cambios. Cada uno de esos cambios tiene una motivación y un impacto sobre lo que el software realiza. Desde una pequeña corrección de una sola línea de código a añadir una nueva funcionalidad. Es imprescindible poder saber por qué tuvieron lugar, quién las hizo, cuál era la situación antes del cambio...

Sin un sistema SCM es imposible conocer todos los cambios que se realizan en el proyecto. Y no disponer de un sistema adecuado implica que existe un descontrol importante en el desarrollo. Puede que haya una buena planificación, un buen análisis e incluso un buen diseño, pero sin gestionar los cambios nada garantiza que el proyecto pueda finalizarse dentro de los parámetros deseados y sin descontrolarse en algún punto del proceso.
Pero un buen SCM no sólo permite controlar los cambios, sino que permite coordinar el equipo de desarrollo de forma sencilla. Con un sistema de control de versiones de alto nivel, como Plastic SCM, es posible gestionar todas las tareas que se realizan en el proyecto y su relación con los documentos de diseño, con el código y con los ejecutables. Plastic SCM permite introducir todo un proceso controlado de avance, dando soporte a la creación y mantenimiento de nuevas versiones del producto, gestionando rigurosamente actividades complejas que pasan de ser descontroladas a sistemáticas y bien documentadas.

Plastic SCM se centra en permitir el desarrollo paralelo, que es una de las principales carencias de los sistemas contra los que compite, y lo consigue mediante la implantación de un ágil manejo de ramas. Además, incorpora una visualización 3D de la historia de los ficheros y directorios, algo que hasta ahora no se había visto en ningún otro producto similar. Por último, y como parte del proyecto, se han desarrollado también herramientas de diferencias entre ficheros, de merge o integración y de comparación de directorios.
Para empresas de desarrollo
Los clientes potenciales de los productos son empresas de desarrollo de software, ya sea como esta su actividad principal (fabricantes de software) o secundaria (departamentos de tecnologías de la información, de informática, desarrollos internos, etc).
Durante el proceso de desarrollo de software se manejan un elevado número de elementos: diagramas, código fuente, ficheros e imágenes que son sometidos a constante cambio. Plastic CSM se encarga de automatizar el proceso de control de cambios para mantener la complejidad bajo control.
La funcionalidad del producto hace que Plastic pueda ser empleado únicamente como control de versiones o para la gestión completa del ciclo de vida del desarrollo. En este caso integra la gestión de tareas, entregas, pruebas, gestión de los resultados, así como la trazabilidad entre todos ellos, según las normas las prácticas recomendadas por diversos métodos de evaluación de calidad en los desarrollos de software, como CMMi.
Se ha contemplado un buen soporte multiplataforma e integración con otras herramientas de desarrollo. Actualmente están operativas la integración con los entornos de desarrollo más populares, como Eclipse, para entornos Java/J2EE y Visual Studio (6 /.NET y 2005) para entornos Windows, así como todos los entornos compatibles con la interfaz SCC de control de código fuente. Actualmente está en desarrollo otras varias integraciones.
En cuanto a plataformas están soportados los servidores, clientes de línea de comandos e integración con Eclipse en plataformas Windows, Linux y Solaris. Así mismo los clientes gráficos y la integraciones con SCC, entre las que se encuentra Visual Studio y Microsoft Access, están soportadas en Windows.

Las características de los productos hacen que desde el primer momento se haya planteado como imprescindible la internacionalización del negocio. Esta necesidad se ha tenido en cuenta desde la fase de diseño y se ha considerado como esencial en las acciones comerciales.
El hecho de que la empresa sea fabricante de software dedicada a un único tipo de tecnología y a un nicho de mercado muy concreto permite que, a diferencia de las empresas basadas en el desarrollo de proyectos, sea viable considerar importantes expectativas de crecimiento asociadas a la comercialización de los productos en los mercados internacionales.
Como no podía ser menos, la empresa también ofrece un eficaz servicio de soporte técnico para que la implantación y uso de Plastic SCM resulte sencilla y rápidamente comience a producir beneficios. Con ello se logra mejorar tanto la productividad como disponer de un fino control sobre el trabajo realizado sin recurrir a complejos sistemas que entorpezcan el objetivo fundamental del desarrollo o resulten tan costosos, en tiempo o dinero, que lastren gravemente los plazos de entrega y el coste total de un proyecto.