La historia de Códice Software y de Plastic SCM, su software de control de versiones, parece la típica en Silicon Valley. La de una empresa que logra ayuda de un inversor y más tarde de un fondo de capital riesgo para convertirse en un referente en el mercado y dar servicio pequeñas y grandes empresas con miles de desarrolladores en plantilla.
Pero aquí hay una historia diferente, porque Códice Software es una empresa con sede en Valladolid que sigue fiel a sus orígenes y que ha logrado competir con gigantes como Git desafiando esa percepción de que en España estas cosas no pasan. Pues sí que lo hacen, y para contárnoslo hemos hablado con su fundador y CTO, Pablo Santos.
Pablo Santos (@psluaces) comenzó a buscarse las castañas en el año 2000. Tras acabar sus estudios de ingeniería informática trabajó para un par de empresas. En la segunda de ellas, Sony, ayudó a desarrollar sistemas de televisión digital, pero más que su labor allí, lo que le cambió la vida es cómo se trabajaba.
Fue entonces cuando conoció el software de control de versiones Clearcase de IBM. Apenas conocía el tema de antes "en mis tiempos no se daba control de versiones en la Universidad y lo que vimos era muy rudimentario", y aquella forma de trabajar le sorprendió. Aquello no era fácil de hacer con alternativas como Subversion o con aquel legendario CVS que inició su andadura en 1990.
"El proceso de trabajo era mucho más controlado y profesional, y el control de versiones jugaba un papel muy importante para estructurar todo el proceso", explica. ClearCase era de lo mejor de la época, pero también era extraordinariamente caro, algo que hizo que Santos se planteara una idea cada vez con más fuerza.
"Estaría bien montar una empresa", indicaba. Una que hiciera un producto mejor que Clearcase -llegó a trabajar de consultor para este producto de IBM-, pero también "más fácil de usar, instalar y gestionar". Y por supuesto, añade, "que fuera más asequible: no solo para grandes corporaciones, sino para equipos pequeños".
Aquella idea le tentaba, pero otra le rondaba la cabeza: Pablo también se estaba planteando trabajar en el desarrollo de un videojuego. Había trabajado en un motor de un juego de coches, pero acabó decantándose por aquel proyecto para crear un software de control de versiones.
Después de todo Pablo ya había hecho algunos pinitos en el desarrollo software para empresas: había trabajado con pequeños proyectos durante sus estudios y se dio cuenta de que el software podía llegar a ser rentable.
Todo acabó desembocando en la creación de Códice Software. En 2005 comenzó el desarrollo de su software, pero hizo algo igual de importante: creó un plan de negocio y comenzó a buscar inversión para tratar de iniciar el proyecto con ciertas garantías de poder tener éxito.
En junio de 2005 un 'business angel' invirtió en aquel proyecto y con un capital de 500.000 euros (recursos propios incluidos) aquel proyecto empezó a andar de verdad. Códice Software se funda formalmente en agosto de 2005, se contrata a los dos primeros ingenieros en octubre -ambos siguen trabajando en la empresa- y comienza el periodo de desarrollo de la primera versión pública de Plastic SCM.
Dicha versión apareció por primera vez a finales de 2006 -para entonces ya eran 7 personas-, y aquel primer año fue muy especial: "disfrutabas del sueño en primera persona, de tu empresa con una oficina. Todos los días hacías lo que realmente querías hacer, pero trabajando muy duro". Montaron un stand en el SIMO "cuando el SIMO aún era importante" y acudieron a otro evento de Microsoft para ISVs en Barcelona -eran el único ISV español- y dieron a conocer su producto.
De allí salió su primer cliente, una empresa asturiana que hoy sigue utilizando Plastic SCM. Y a partir de entonces, más y más crecimiento, aunque con muchos tropiezos. En la estrategia comercial "no dábamos pie con bola", nos contaba, pero el producto iba conociéndose cada vez más, en parte gracias a sus colaboraciones con la revista Dr. Dobbs, una de las más reputadas en el ámbito de los desarrolladores en aquella época.
Durante esos años también llegaron los primeros acuerdos con empresas de fuera de España: Plastic SCM estaba preparado para tener éxito en todo el mundo, aunque en aquellos primeros logros su software de control de versiones se centraba en equipos pequeños "de 20 personas como mucho".
En 2008 ocurre algo importante: "contratamos a un comercial dedicado a Estados Unidos y abrimos mercado. Todavía no estábamos en break even, así que buscamos de nuevo inversión, aunque esta vez con una empresa de capital riesgo".
Es así como contactaron con Bullnet Capital, una empresa dedicada a las inversiones en compañías de tecnología con la que llegan a un acuerdo en octubre de 2008 que se hizo público algo más tarde, en febrero de 2009.
Como dice Pablo, aquello fue "curioso, porque era una época muy mala económicamente". Otras empresas se veían afectadas por la crisis que explotaba en aquel momento, pero para Códice Software empezaba una época fantástica en la que además como dice Pablo contaron con una participación muy activa de Bullnet en esos primeros tiempos del acuerdo: "estaban muy cerca en el negocio, sobre todo en las épocas más difíciles y con una visión muy profesional".
Aquella ronda de inversión permitió afrontar nuevos retos y tratar de impulsar el negocio, aunque no siempre salió bien. "Contratamos un equipo comercial en Estados Unidos en el que llegamos a tener a 5 personas, pero aquello funcionó regular". Aún así, nos cuenta, empezaron a lograr instalaciones cada vez más grandes con más de 100 usuarios, algo que Pablo temía que pudiera causar problemas.
Durante 6 años compaginé mi trabajo en Códice con el de profesor en la Universidad. "Enseñaba Plastic SCM en clases de 25 alumnos y me asustaba, pero en la actualidad tenemos implantaciones con más de 3.000 desarrolladores", afirmaba satisfecho.
Fue también entonces cuando entró en escena el actual CEO de la empresa, Francisco Monteverde, que provenía de Microsoft España y que asumió esa parte comercial que era tan importante en Códice. "Gracias a él cerramos 2011 con nuestro cliente más importante hasta la fecha", nos cuenta. "Era Pantech, una empresa surcoreana que fabricaba teléfonos móviles. De repente teníamos una instalación con 1.000 desarrolladores, y encima un partner coreano, con una diferencia cultural y de idioma brutal, aquello fue toda una aventura".
Aunque Pantech dejó de fabricar móviles el negocio acabó dando lugar a su apertura a otras empresas: algunos de aquellos exempleados acabaron trabajando en Samsung, y hoy en día Plastic SCM se utiliza por parte de "entre 500 y 600 usuarios en la división Medical Devices" del gigante de la electrónica.
El crecimiento de la empresa hizo que tomaran decisiones estratégicas como la de diferenciar su producto en dos modalidades: Team, para 15 o menos usuarios, y Enterprise, para equipos de más de 15 usuarios. Esta última modalidad es la que por ejemplo utiliza Delphi Technologies, una empresa que fabrica todo tipo de componentes para la industria de la automoción y que cuenta con un equipo de 3.000 personas que hacen uso de Plastic SCM.
Los casos de éxito son numerosos, y Pablo nos hablaba de la aseguradora Mapfre, un caso sorprendente: "uno imaginaría que su equipo de desarrollo es pequeño, pero tienen más de 1.000 personas usando Plastic SCM, no solo en España sino en un montón de países en todo el mundo".
Códice Software también ha llegado a conquistar a algunos clientes muy especiales como la US Navy "e incluso hay algún equipo en la NASA que utiliza Plastic SCM", un hito que demuestra el alcance que ha tenido una empresa que sigue creciendo hoy en día y lo hace con un equipo sorprendentemente pequeño. Como decía Santos, "nos pegamos con empresas que tienen más gente en la recepción que nosotros en el equipo de desarrollo".
Si hay una plataforma conocida en el ámbito del software de control de versiones, esa es Git. Creada por Linus Torvalds, este sistema distribuido de control de versiones que es el pilar fundamental de servicios como GitHub o BitBucket, pero también de productos como GitLab que son utilizados a diario por miles de desarrolladores.
No solo eso: empresas como Atlassian o Microsfot contribuyen al desarrollo de este software, algo que haría pensar que la competencia es muy difícil. Y sin embargo la creación de Pablo Santos es muy conocida en este segmento. ¿Qué tiene Plastic SCM que no tenga Git?
Eso es lo que explicaba Pablo en un post que publicaba en marzo de 2018 y que aclaraba esa competencia natural con este "gigante" en su segmento.
En él hablaba de algunos aspectos técnicos muy orientados a desarrolladores como la forma en la que Plastic SCM habilita el "trabajo paralelo con múltiples ramas. Al principio (en 2007-2008) era difícil para nosotros contar lo de tener muchas ramas. Era algo bueno, pero no lográbamos convencer a los usuarios, aunque al final toda la industria ha ido por ahí".
A esa parte también le ayudan el sistema de visualización con Branch Explorer para ver cómo van las ramas de un proyecto. De hecho, destacaba Pablo, "ahora ofrecemos un gráfico interactivo donde incluso se pueden hacer merges".
Una de las novedades importantes de los últimos tiempos fue la puesta en marcha de Plastic Cloud, que perimtía "poder hacer hosting de repositorios en la nube. No es como GitHub exactamente, son como repositorios privados, pero de gran tamaño. GitHub 'te invita' a sacar tu repo del servicio si es de más de 2 GB, pero en Plastic SCM el tamaño medio de estos repos es de 30 GB".
Algo de lo que está especialmente orgulloso es de Semantic Merge, una herramienta que "queríamos hacer desde el principio" y que permite hacer diff y merge de ficheros pero "entendiendo el código".
Eso es difícil de entender para los no desarrolladores, pero intentémoslo. Cuando haces un diff sobre dos ficheros el comando muestra las diferencias entre dos ficheros línea por línea, y eso permite detectar modificaciones del código. Con Semantic Merge diff va más allá porque "entiende el código y matchea funciones y métodos aunque no estén en el mismo sitio y no coincidan línea a línea"
Santos explicaba que "llevamos años avanzando con esto, y podemos hasta hacer merge de funciones que se han movido entre ficheros". Nos confiesa que "no es algo que usas constantemente, pero cada vez que lo usas es un verdadero salvavidas" y en Git no hay nada similar. De hecho, nos contaba, "con los merge no limitas al equipo, todo el mundo toca y luego se mezcla todo el código. Plastic hace el renombrado,y la gestión de todo el contenido, y lo hace bien. En Git o Subversion pasa que incluso te duplica ficheros o deja de funcionar bien, puede ser un lío".
Sin embargo una de las diferencias fundamentales es, como explicaba Pablo en un detallado artículo, que "Plastic no llora con grandes repositorios". Este software de control de versiones destaca por no tener problemas con grandes ficheros o grandes repositorios, algo que con Git es mucho más incómodo. Eso, como veremos más adelante, es importante en un segmento muy especial del mercado.
Como nos decía Santos, "Plastic ha sido buena gestionando grandes archivos desde el principio. Supimos qué hacer para trocearlos, guardarlos por trozos y evitar una mayor carga de RAM. Git es incapaz de trabajar con repos y ficheros muy grandes. Donde Git no llega nosotros podemos estar", algo que les ha permitido diferenciarse en ese apartado.
La evolución de Plastic SCM se haya convertido en un desarrollo enorme: Pablo nos contaba cómo tenían ya "más de 2 millones de líneas de códigos con GUIs incluido (GUI nativa en Windows, Linux, macOS), integración con Visual Studio, Eclipse, con Jenkins, etc.".
El crecimiento ha sido notable, y Pablo también nos hablaba de la versatilidad de Plastic SCM para trabajar tanto en modo centralizado y en distribuido ("hago checkin contra un repo local y luego push/pull contra un servidor centralizado"). Esto permite satisfacer distintas necesidades porque "aunque a los desarrolladores les encanta el distribuido, a los artistas pasan de él".
Opciones como poder bloquear archivos para que nadie los toque -"Git no lo permite, github tiene una opción pero no es nativa de verdad", aclaraba Pablo- es otra de esas opciones de interés que lo diferencian de Git. Los propios responsables de Plastic reconocen que hay alternativas muy potentes en el mercado como Perforce, y de hecho tienen una tabla comparativa con algunos de los más populares.
Aún así en Códice Software pueden presumir de estar compitiendo en un segmento en el que algunos de sus rivales tienen muchos más recursos. Santos tiene afrontaba el tema con humor cuando nos decía que ?nos pegamos con empresas que tienen más gente en la recepción que nosotros en el equipo de desarrollo?.
Aunque Códice Software trabaja con muchas empresas de distinta entidad, hay un segmento en el que tienen una relevancia especialmente llamativa: la de los videojuegos.
Los propios responsables de Plastic SCM presumen de esa buena relación con productoras de videojuegos en su sitio web, y hay diversos foros en los que desarrolladores de videojuegos hablan de esas virtudes que tiene Plastic SCM. Estudios como telltale, Rust/Facepunch Studios o Kobold Games han usado o usan Plastic SCM, y lo hacen por dos razones fundamentales.
La primera la habíamos perfilado anteriormente. El soporte de ficheros grandes puede no ser importante en otros escenarios, pero es crítico en el mundo de los videojuegos. Como decía Pablo, que haya este requisito "pasa constantemente en el mundo de los videojuegos". Las texturas, los modelos 3D, los componentes artísticos o la música son elementos del desarrollo que también hay que gestionar, y Plastic SCM es especialmente versátil en este aparatado.
Lo es además por una segunda razón llamada Gluon. Este componente es una interfaz gráfica de usuario separada para artistas y diseñadores y no necesariamente para desarrolladores de código.
Con ella es posible trabajar con esas partes para "no desarrolladores" que pueden así gestionar documentos, arte y que como dice Santos "quita las complicaciones extra del camino. Intentamos simplificar la interfaz de desarrolladores y acabamos creando dos GUIs distintas, una para artistas y otra para desarrolladores".
El trabajo en este sentido sigue dando frutos, y de hecho Códice Software tiene un acuerdo con Unity, uno de los motores de desarrollo de videojuegos más importantes del mundo, y en él hay integración tanto con Plastic SCM como con Perforce, algo que deja claro la relevancia de Plastic SCM en este mercado.
Llegábamos al final de la entrevista con una pregunta fundamental: ¿cómo es crear una empresa así en Valladolid? Uno esperaría una historia así en Silicon Valley o quizás alguna otra gran capital mundial, pero desde luego resulta sorprendente y refrescante conocer un caso de éxito como este.
Para Pablo Santos ha habido algunas desventajas claras. Por ejemplo "la visibilidad. Si hubieramos nativos de Silicon Valley hubiéramos tenido una exposición mayor a empresas y usuarios".
Aún así, explica, la ventaja es importante porque crear una empresa en Valladolid no impide que tengas a gente trabajando fuera. "Tenemos trabajadores en Zaragoza, Burgos o Madrid", nos contaba, pero al estar en Valladolid "tienes las ventajas de la vida en una ciudad pequeña, manejable, sin estrés y que te da cierta calidad de vida", destacaba.
Eso permite disftutar de "un entorno laboral que no es tan competitivo. En Silicon Valley la cultura hace que la gente busque otras opciones más rápido y se te puede ir medio equipo de repente. Aquí hay más tranquilidad, un entorno más calmado", pero en eso tiene mucho mérito Santos, que confesaba que "si hay algo de lo que estoy orgulloso es de haber cuidado al equipo". En Códice Software muchos de los empleados llevan 8, 10 o 12 años con ellos, casi toda la vida de la empresa, y parece que esa combinación funciona porque al contrario de lo que ocurre en Silicon Valley, el talento se queda en la empresa.
Precisamente de talento le preguntábamos a Santos. La percepción general es que en España hay pocas oportunidades de triunfar o siquiera tener un buen trabajo en este ámbito, pero Códice Software es la demostración de que esto no es así.
¿Hay talento en España? Santos lo tenía claro. "Para nosotros eso no ha sido un problema. Todos podríamos ser mejores, empezando por mí, pero tenemos la suerte de tener un montón de estudiantes de ingeniería informática en Castilla y León y hay gente y talento. Creo que hay capital humano", apuntaba, "pero necesitamos que más gente cree empresas. Me encantaría ver cómo se crean montones de empresas de software".
Aquí la experiencia de Santos también era positiva en cuanto a las ayudas que recibió tanto por parte de los inversores como por parte de la financiación pública. "A nivel nacional en España hay una cosa fantástica llamada Enisa", nos contaba, "que apoya el I+D con créditos muy blandos, con carencias, con intereses muy pequeños. Aunque hay que pasar una criba y son exigentes, funciona". Esas ayudas pueden tardar en llegar, pero son importantes.
Hablaba de otras alternativas como el plan Torres Quevedo que "pagan hasta el 50% de los sueldos de doctores e ingenieros, lo que permite darle un empuje importante a la plantilla".
Todo ello le deja claro esa buena experiencia general. "No ha sido fácil pero ha sido viable. Hay que trabajar mucho y sacrificar muchas cosas", pero para este ingeniero el resultado ha merecido la pena.
Al preguntarle qué consejo daría a quienes quieren imitar sus pasos Santos se ríe. "Si supiera las cosas que ahora sé quizás ni me hubiera metido", bromea. Y poniéndose algo más serio, reflexiona: "es importante mirar cosas básicas de negocio. Los ingenieros piensan mucho en la parte técnica y poco en la parte de negocio".
Para Santos era imprescindible saber "cómo funciona la analítica del negocio para tener métricas", pero sin obsesiobarse: "si te tratas de ser un experto en todo no arrancas; hay que arrancar. Hay que buscar el balance entre escuchar y leer y lanzarte".
Ya sabéis. Lanzaos.
.