Entrevistas

Fran Ávila (Codurance): “El desarrollo de software es más un arte que una ingeniería”

Negocios

Fran Ávila, director regional para España de Codurance

Fran Ávila, de Codurance.
Fran Ávila, de Codurance.

Codurance es una consultora tecnológica con base en Londres que desde hace más de una década apostó por el movimiento del Software Craftsmanship (o “software artesano”). En la compañía conciben el desarrollo más como “un arte” que como una ingeniería. La idea es preservar la inversión del cliente en el tiempo, ideando aplicaciones que sean capaces de escalar y de “ser extensibles, modificables y mantenibles”.  

“En resumen; aplicamos todo lo necesario para que cuando desarrollemos código no lo hagamos tratando solamente de resolver el reto que se nos plantea hoy, sino que se puedan resolver fácil y eficazmente los del mañana”, recalca Fran Ávila, director regional para España de Codurance.

Además de hablar de los presupuestos del software artesano, un movimiento que desde finales de los 90 se propaga a nivel internacional, Ávila habla de los planes de expansión de la compañía, que aterrizó en Barcelona en 2016, abrió el año pasado oficina en Madrid y tiene previsto hacer lo mismo en breve en Málaga, y que se ha propuesto doblar plantilla este año en España, hasta alcanzar los 100 empleados.

¿Qué es exactamente el software artesano y el movimiento del Software Craftsmanship?

Software Craftsmanship es una filosofía de trabajo que nos impulsa a desarrollar software de alta calidad que sea capaz de proporcionar valor a la organización a la que lo entregamos (innovación, transformación, escalabilidad…). Se fundamenta en dos pilares: profesionalidad y pragmatismo.

Esta filosofía complementa al enfoque Agile, mucho más centrado en metodologías y procesos. De hecho, igual que hay un manifiesto Agile, también se creó un manifiesto de Software Craftsmanship, y uno de los que firmaron el de Agile, Robert Martin, fue después uno de los promotores del manifiesto de Software Craftsmanship.

Software Craftsmanship parte de la idea del Agile y de sus principios, y le añade la capa de capacitación técnica y buenas prácticas de programación, cosa que permite elevar el nivel de calidad en la industria del desarrollo del software a través del profesionalismo y la excelencia técnica en busca de la maestría.

Entendemos el desarrollo de software como un arte más que una disciplina de ingeniería, y como tal el viaje por los procesos de aprendizaje guiado por maestros artesanos es la forma de alcanzar esa excelencia.

Este movimiento apareció a finales de los años 90 y hoy en día existen comunidades de Software Craftsmanship en todo el mundo. En 2010, Sandro Mancuso y Mashooq Badar, co-fundadores de Codurance, iniciaron la London Software Craftsmanship Community, la primera y más grande comunidad de Software Craftsmanship en Europa.

De ese modo, abrieron el camino para inspirar y ayudar a la creación de muchas otras comunidades en todo el mundo. Lo que comenzó dando sentido a un propósito compartido ha crecido más allá de su epicentro original y se ha convertido en el espíritu que nos guía en Codurance. En 2013, José Enrique Rodríguez Huerta, actual managing director de Codurance Spain, formó parte del equipo de desarrolladores que impulsó la “Comunidad Software Craftsmanship de Barcelona”, una de las pioneras en nuestro país.

¿Qué métodos aplican para garantizar la calidad del software que les piden sus clientes y que esté bien diseñado?

Lo que sabemos con casi total seguridad es que la mayoría de los sistemas software van a necesitar cambiar en el tiempo, y por lo tanto va a ser necesario que se adapten a las necesidades de los usuarios y de la organización mientras evolucionan.

Esta es la razón por la que los sistemas software deben ser capaces de escalar, ser extensibles, modificables y mantenibles. La inversión necesaria para crear un sistema software es importante, y lo que hacemos en Codurance es aplicar métodos y técnicas de desarrollo que garanticen resultados capaces de amortizar la inversión creando sistemas escalables, adaptables y flexibles. Ejemplos:

Aplicar Agile nos permite adaptar las prioridades de desarrollo para entregar valor rápidamente, llegar al mercado antes y, lo más importante, obtener feedback que nos sirva para mejorar el producto.

Seguir principios SOLID nos permite que los sistemas sean extensibles al reducir complejidad, acoplamiento y dependencias.

El uso de patrones, tanto de diseño como arquitectónicos (como la arquitectura hexagonal), nos permite resolver problemas de extensibilidad de una manera estándar en la industria, utilizando un lenguaje común y reduciendo los costes cognitivos de nuestro equipo.

El enfoque de desarrollo Domain Driven Design (DDD) nos permite poner el negocio en el centro del desarrollo y desarrollar un lenguaje común con los miembros no técnicos de la organización.

Prácticas como Pair Programming, que incrementa la calidad y acelera los ciclos de retroalimentación, Test Driven Development (TDD) que simplifica los diseños, Behavior Driven Development (BDD) que hace que especifiquemos los sistemas mediante ejemplo funcionales, y la automatización de test o procesos, que hace que reduzcamos el factor de error humano en ejecución y permite la repetición de tareas de verificación del sistema a bajo coste (lo que significa que podemos verificar más a menudo y por tanto estar listos para poner el software en producción antes) nos permiten garantizar la calidad de nuestras soluciones. 

Y  todo eso lo hacemos aplicando las prácticas propias de Código Limpio (Clean Code), que implica que nuestro código sea sencillo, legible y, por tanto, fácilmente mantenible.

En resumen; aplicamos todo lo necesario para que cuando desarrollemos código no lo hagamos tratando solamente de resolver el reto que se nos plantea hoy, sino que se puedan resolver fácil y eficazmente los del mañana.

¿Es más caro para los clientes su aproximación que la del desarrollo de software tradicional o incluso el low-code o no-code?

Lo cierto es que nuestra filosofía es muy diferente a este tipo de enfoques que, efectivamente, son tendencia porque resuelven determinadas necesidades de forma sencilla y pragmática. Sin embargo, nuestra labor se centra en la consultoría, en un análisis profundo y exhaustivo de los retos que nuestros clientes tienen por delante y que, habitualmente, son de alta complejidad e implican a diferentes áreas del negocio.

Por ello, sí puede requerir mayor inversión por parte del cliente. Dicho lo cual, creo que es importante clarificar que nos centramos en aportar al cliente las mejoras que le permitan evolucionar y escalar según las necesidades del negocio. Y si, como resultado de este análisis, se ve que hay herramientas no-code que permiten lograr ese equilibrio entre alcanzar el objetivo y satisfacer las restricciones del contexto, las recomendamos. En este sentido, nuestro trabajo siempre va más allá de las soluciones tecnológicas.

“Si hay herramientas no-code que permiten lograr ese equilibrio entre alcanzar el objetivo y satisfacer las restricciones del contexto, las recomendamos”

Creo que las soluciones low-code o no-code también tienen cabida en la industria y son necesarias. Es otro tipo de aproximación distinta que soluciona una serie de problemas evidentes e inmediatos para un escenario concreto, pero no es el tipo de aproximación que nosotros tenemos.

Entiendo que ustedes llegan con esta propuesta porque detectan muchas ineficiencias y problemas en el desarrollo habitual de software en las empresas. ¿Cuáles son estos problemas y carencias?

Sí, nuestros clientes se enfrentan de manera habitual a realidades y necesidades de negocio muy complicadas derivadas de la cultura que tienen y de los sistemas legados sobre los que se construye el negocio. Y tiene sentido que así sea, si no hay un reto importante y complejo por delante, ¿para qué va a ser necesario recurrir a una consultora de alto nivel?

En este sentido se podría decir que muchas veces están intentando cambiarle la rueda al coche mientras está en marcha, y esto requiere una aproximación muy distinta a desarrollar un producto desde cero. Como consultora de software, nos piden resolver retos especialmente complejos para potenciar la innovación y la capacidad de respuesta de los negocios a través del software.

Fran Ávila, de Codurance.
Fran Ávila, de Codurance.

Precisamente lo que más destacan nuestros clientes de nuestro trabajo es que pueden seguir con el negocio en marcha mientras resolvemos las situaciones a las que nos enfrentamos y ese es en la mayoría de los casos la gran cuestión cuando se aproxima un proyecto de forma ineficiente. Y no solamente desde el prisma del sistema software, sino también en lo que se refiere al equipo humano.

Nuestra forma de entender el desarrollo impacta también en los equipos que lo crean, en los equipos técnicos y de negocio. No es fácil adoptar nuevas formas de trabajo, más modernas y efectivas, en definitiva mejores, sin ayuda externa, bien porque es difícil estar continuamente en la vanguardia de la industria o bien porque el día a día hace que sea complicado vislumbrar que es lo que va a suceder más a largo plazo.

¿Qué planes de negocio tiene la compañía a nivel internacional y en España? 

Así es, España fue el primer mercado en el que entró Codurance, concretamente en Barcelona en 2016. Y después de ganarse un hueco en el mercado español, ha llegado el momento de reforzar esa apuesta, para lo que hemos abierto una oficina en Madrid a finales de 2021 y estamos trabajando en el crecimiento, con especial foco, en la costa mediterránea, y la vista puesta en Málaga como próximo destino en el que abrir una nueva sede. 

“Nuestros clientes pueden seguir con el negocio en marcha mientras resolvemos las situaciones a las que nos enfrentamos”

Pero lo más importante es que nuestra forma de trabajar completamente en remoto (por supuesto que tenemos las oficinas de Barcelona y Madrid disponibles para los empleados que prefieren trabajar en la oficina) nos ha permitido captar talento en todo el terreno español. Ahora mismo nuestro equipo está repartido en distintas ciudades y pueblos de toda la geografía española (Vigo, Murcia, Zaragoza, Valencia, Segovia, Bilbao, Sevilla… yo mismo estoy en Granada). Tenemos un plan de crecimiento muy ambicioso y vamos por el buen camino para cumplirlo.

¿No es complicado doblar plantilla en un momento en que hay una exagerada carencia de recursos humanos en el sector? ¿Cómo lo van a hacer y qué van a ofrecer a sus profesionales para captarlos y fidelizarlos?

Sin duda. Con una elevadísima demanda de trabajadores en el sector IT a nivel global, con grandes compañías buscando talento en todo el mundo y, muchas, especialmente en España, hace que la carrera por conseguir los mejores profesionales sea dura. Pero, gracias a nuestra forma de trabajar y de entender la consultoría y el desarrollo de software, somos capaces de ofrecer una filosofía y unos valores muy diferenciadores.

Pero lo que nos diferencia y lo que nos permite atraer el mejor talento (y lo que es más importante que atraerlo, retenerlo) es nuestra cultura. Porque queremos crecer, sin duda, y lo estamos consiguiendo, pero no va a ser a cualquier precio. ¿Qué quiero decir? En lo que más atención ponemos y más recursos dedicamos es a no perder por el camino de ese crecimiento aquello que nos hace diferentes y especiales: el ADN que nos vincula fuertemente a compartir conocimiento con la comunidad de desarrollo, el plan de desarrollo de carrera que tenemos personalizado para cada profesional de la compañía, la autonomía a la hora de planificar el trabajo, la flexibilidad y todas las facilidades de conciliación que ofrecemos, la cohesión en cuanto a los valores que vertebran el equipo, la unión en torno a los intereses que compartimos… Todo eso nos permite asegurarnos de que incorporamos perfiles de alta calidad y que vienen para quedarse.

“Hemos abierto una oficina en Madrid a finales de 2021 y estamos trabajando con la vista puesta en Málaga como destino de una nueva sede” 

¿Cuántos clientes ha atendido la compañía en España y cuáles son las principales referencias?

Codurance ha trabajado con algunas empresas españolas incluso antes de entrar en nuestro mercado, por lo cual la elección de Barcelona como primer paso hacia la internacionalización fue natural. Algunas empresas con las que contamos en nuestra cartera de clientes son Roche, Firmenich, Webbeds, Verychic, Banco Santander, Mango, ASOS, Cazoo, por citar solo algunos recientes. Para todos ellos trabajamos en la modernización de sus sistemas a través del software entrando en diferentes estadios de madurez del proyecto según los requerimientos del cliente. 

¿En qué tipo de proyectos están más especializados?

Hay varios verticales en los que tenemos una sólida experiencia: retail, pharma y banca son algunos de ellos. Nos sentimos muy cómodos trabajando en entornos altamente regulados (como es el sector pharma) porque el reto de aportar soluciones en un entorno con restricciones normativas nos gusta y estamos muy familiarizados con ello.

 

 

LA PREGUNTA
¿En qué medida se beneficiará, como partner de tecnología, de los fondos europeos?