En 2019 se cumplen 20 años de la que seguramente haya sido la película con mayor proyección internacional del cine español. “Todo sobre mi madre” triunfó en los Goya, pero también en los Óscar, los premios Bafta y los Globos de Oro.
Una idea bien ejecutada que gustó más allá de nuestras fronteras y que años después sigue formando parte del imaginario colectivo tras aquel resonado “Pedrooooo” de Pe .
Aunque con unos años menos, once desde que iniciaron su aventura en el 2008, SonarSource también ha cosechado éxitos y reconocimiento internacional. Así que hemos decidido preparar un “Todo sobre SonarSource”, con un acento español y estando muy orgullosos por ser los partners con mayor trayectoria de SonarSource y los únicos en el mercado hispano. Y sí de paso aprovechamos el tirón de la 33 edición de los Goya que se celebrará este sábado.
Esperamos que os guste tanto como la película y quedamos atentos a las nominaciones.
¿Sonar? ¿SonarSource? ¿SonarQube? Los veteranos como nosotros, siguen y seguirán llamando Sonar a SonarQube, y algún que otro se preguntará qué es SonarSource.
En términos sencillos y haciendo spoiler de lo que a continuación se presenta: “Sonar” ya no existe. Sus creadores cambiaron el nombre por motivos de marca. La herramienta pasó a llamarse SonarQube y la empresa que la gestiona (ésta y otras herramientas) es SonarSource.
Aclarados estos primeros términos, repasemos la historia y evolución de la herramienta número uno de inspección continua de código y de la empresa que hay tras ella:
A finales de 2006, Freddy Mallet se dio cuenta de que la gestión de calidad de código se estaba convirtiendo en una actividad crítica en el desarrollo de software. A pesar de ello, no había ningún producto en el mercado que permitiera realizar un análisis automático de código de una forma eficaz e integrada.
En febrero de 2007, Simon Brandhof empezó a desarrollar la plataforma Sonar, que integraba las mejores herramientas Open Source para Java.
En septiembre del mismo año, Olivier Gaudin, une a Simon y Freddy, empujado y entusiasmado por la visión de Sonar.
Un año más tarde, en noviembre de 2008 y habiendo trabajado durante un año en el desarrollo de la plataforma open-source, los tres decidieron unir fuerzas para fundar SonarSource y así preparar Sonar para el mercado empresarial. Este salto al mercado incorporó nuevas funcionalidades a la herramienta: incorporar una API para el desarrollo de plugins, profesionalizar el acceso y logins, paneles personalizados con información de negocio, etc.
En octubre de 2009 salió a la venta el primer plugin comercial, Views. Éste proporcionaba gestión por portfolio de proyectos. El lanzamiento fue rápidamente seguido por plugins para COBOL, SQALE, VB6… Lo que nunca cambió a pesar del salto al mundo empresarial, fue y es, la filosofía Open-Source con la que se inició el proyecto. Prueba de ello, en ese mismo año Sonar fue galardonado en el Open World Forum, como una de las ideas más originales en términos de innovación, calidad de ejecución y potencial para creación de valor. Diez años después, en 2019, SonarQube sigue siendo una herramienta Open-Source mantenida por la empresa que crearon sus fundadores y por todo el equipo que ahora forma parte de SonarSource.
En Junio de 2010, Sonar tenía un ritmo de descarga de más de 2.000 veces al mes. Gracias al éxito tanto de la plataforma Open-Source como de los plugins comerciales, SonarSource crecía tanto en tamaño como en servicios comerciales, con la salida de los plugins para C# y para PL/SQL, en junio y septiembre de 2011 respectivamente.
En abril de 2013, Sonar pasa a llamarse SonarQube y su salida al mercado comercial se profesionaliza con distintas “ediciones” – logrando así satisfacer las necesidades de las grandes empresas en las que SonarQube se había convertido en la herramienta crítica para asegurar la calidad de su código y realizar análisis estático sobre el mismo. Este fue el primer gran cambio en el modelo comercial de SonarSource.
2015 fue un año significativo para SonarQube. Si dos años antes cambiaba el modelo comercial, ahora era la propia herramienta la que volvía a adaptarse a las necesidades del mercado. Los análisis se estructuran de una manera más sencilla y clara gracias a la introducción de mantenibilidad, confiabilidad y seguridad. Un movimiento necesario para estandarizar la plataforma, pues ya se cubría entonces el análisis de 24 tecnologías diferentes.
En noviembre de 2016 SonarSource recibió 45 millones de dólares de la empresa estadounidense Insight Venture Partners (inversores también en BlaBlaCar, Docker, Twitter, Flipboard, Hootsuite, Jfrog, N26, Qualtrics, Nextdoor, Udemy, Alibaba, New Relic, Privalia, Groupalia, Shopify…) Una prueba más de que SonarQube es el líder del mercado y quiere afianzarse en esa posición.
Con el lanzamiento de la última LTS (6.7), se introdujeron en Noviembre de 2017, nuevos cambios en su estructura comercial. Se elimina por completo la comercialización de plugins y se crea un modelo comercial basado en líneas de código y lenguajes en distintas ediciones. Puedes verlo en su página web. Y sí, nosotros como partners tenemos descuentos especiales (ya hemos avisado de que era una versión española de la trayectoria de una empresa suiza)
En la actualidad, los productos de SonarSource están siendo utilizados por más de 85.000 organizaciones a través del mundo, incluyendo Cisco, Samsung, Michelin, Telefónica, etc. En su web, encontramos listados a los más de 1000 clientes, entre los que se encuentran también los de excentia. Un honor que estén ahí y se reconozca públicamente su esfuerzo por mejorar la calidad de su código.
SonarQube es el producto estrella de la compañía, pero no el único. SonarLint y el muy reciente SonarCloud completan la oferta de la empresa suiza.
¿Qué es SonarQube? Os preguntareis en qué demonios estamos pensando para plantear esta pregunta. En la experiencia pensamos. Nos hemos encontrado con afirmaciones y preguntas de todo tipo: “sin Maven SonarQube no funciona, SonarQube solo analiza Java, es un escáner de código…”
Para responder a esta pregunta nos remitimos al artículo que en 2014 Antonio Calero escribió en su blog y citamos:
“SonarQube es una plataforma de gestión de la calidad del código que permite a los equipos de desarrollo gestionar, hacer seguimiento y mejorar la calidad de su código fuente. Es una herramienta que mantiene datos históricos de una gran variedad de métricas y proporciona tendencias de los indicadores de referencia para no cometer los pecados capitales del desarrollo de software.”
Si en 2014 eso era SonarQube, podéis imaginar que en 2019 es mucho más. La mejor forma sin embargo de saber qué es SonarQube es descargarlo y probarlo. Para algo es una herramienta Open-Source. Ayer mismo se lanzó la versión 7.6. Notas de la versión y enlace de descarga por aquí.
SonarCloud es la versión en la nube de SonarQube, lanzada en Junio de 2017.
Las ventajas y desventajas de SonarCloud frente SonarQube son las típicas y ya por todos conocidas posibilidades de Server/On Premise frente a Cloud. Beneficios de SonarCloud: adaptable a tus necesidades, se adapta a la cantidad de líneas de código que tienes (escalabilidad), siempre vas a trabajar con la última versión de la herramienta y costes de mantenimiento menores. Desventajas: menor posibilidad de integración y personalización, posibles caídas de servicio, y todas las cuestiones asociadas a liberar o subir tu código.
Al igual que con SonarQube, nuestra recomendación es probar, trastear, preguntarnos y decidir.
Extensión para IDE’s que te ayuda a detectar y reparar problemas de calidad en el código a medida que vayas escribiendo. Como un corrector ortográfico, marcará con una rayita roja debajo de la línea o palabra en cuestión el error para que se pueda reparar antes de hacer commit.
Funciona en Eclipse, IntelliJ IDEA, Visual Studio, VS Code y Atom. Toda la información sobre esta extensión está disponible en su página web.
Es sin duda la herramienta que más sorprende en las presentaciones que hemos hecho a lo largo de los años. Sorprende y gusta muy mucho, así que si no la usas o no habías escuchado a hablar de ella, no sabemos a qué estás esperando para descargarla.
Las estadísticas de la industria muestran que en promedio el 80% del coste de un producto software se invierte en mantenimiento durante todo su ciclo de vida, y que los costes de mantenimiento tienen alta variabilidad en función de la calidad interna del código. Esto quiere decir que la capacidad de mantenibilidad del producto software de hoy determinará el coste de mañana.
Los enfoques tradicionales de control de la calidad del código implican auditorías puntuales. Estas auditorías se realizan generalmente por auditores externos durante la “última recta” del proceso de desarrollo, durante o después de las pruebas funcionales. Por su naturaleza, las auditorías puntuales pueden provocar perturbaciones en el ciclo de desarrollo, ya que dan lugar a cambios en el software “completado”.
Hay una necesidad urgente de un modelo más nuevo, que haga hincapié en la calidad en todo el ciclo de desarrollo, y que tenga bucles de retroalimentación más cortos, para asegurar una rápida resolución de los problemas internos de calidad; en definitiva, un modelo que se basa en medir la calidad desde el principio, en lugar de considerarse después de los hechos.
Y en esto es precisamente en lo que se basa Fix the Leak(TM), marca registrada de SonarSource y filosofía tras todas las herramientas que acabamos de explicar.
Si tuvieras una inundación, ¿qué harías primero, sacar toda el agua, o arreglar la pérdida o rotura y luego sacar el agua? ¿Reparar el problema verdad? ¡Pues con el código se debe hacer lo mismo! Presta atención a los errores que estás cometiendo ahora mismo (SonarLint), asegúrate de que no se introduzcan más errores (SonarQube), de manera que se pueda reparar la perdida (SonarQube leak period). Gradualmente, el código antiguo irá mejorando al centrarse los esfuerzos en el causante actual del problema.
Si te interesa esta metodología te recomendamos su lectura en las propias palabras de su impulsor, Olivier Gaudin. O bien, si te apañas mejor, puedes leer la traducción que en su día realizó el equipo de excentia.
Y sí, está filosofía le viene como anillo al dedo al modelo de inspección continua, proporcionando una gestión ininterrumpida de calidad del código, detectando los problemas a tiempo y centrándose en el ahora y no en el ayer. Pero del modelo de inspección continua ya hablamos en su día.
Una de las características que hacen de SonarQube una herramienta flexible son los plugins, desarrollados por la comunidad de usuarios y expertos en SonarQube. Ventajas de ser una herramienta Open-Source, abierta a la comunidad y a la colaboración.
¡Nota importante! Con plugins, no caigamos en el error de pensar que nos referimos a lenguajes. Ese modelo cambió como hemos dicho al principio, aunque sigamos instalando plugins de lenguajes. Es algo confuso, pero quedemonos con que SonarQube se vende por ediciones a las que se les pueden añadir plugins.
Los plugins son desarrollos que permiten ampliar la funcionalidad de la herramienta, bien sea mediante la introducción de antiguas funcionalidades (SQALE), la gamificación, idiomas, seguridad… Y un largo etcétera.
Momento de publicitarnos un poco y animaros a que probéis los plugins que excentia ha desarrollado.
SonarQube 3D Code Metrics: tu código fuente como nunca lo habías visto. Visualiza complejidad, número de líneas y artefactos de tu código en forma de ciudad.
SonarQube Connector for Jira: Consulta tu deuda técnica, bugs, vulnerabilidades, code smells y mucho más desde tu panel de proyecto en Jira. Tiene más de 220 instalaciones activas y solo podemos sentirnos agradecidos y motivados a seguir aportandole funcionalidad y mejoras.
SonarQube Connector for Confluence: permite tener acceso a los datos más relevantes de la calidad del código en el mismo espacio donde reside toda la documentación del mismo. Un project manager podrá decidir si pasar a producción un producto software sin ni siquiera tener que acceder al panel de control de SonarQube. Desde Confluence tendrá acceso claro, simple y directo a todas las métricas y al umbral de calidad.
En la documentación de SonarQube puedes encontrar una recopilación de los plugins disponibles en la plataforma. Pero no es el único listado disponible. En esta web se han dedicado a recopilar muchos de los plugins desarrollados por la comunidad, por lo que es interesante seguirle también la pista.
Para cerrar este “Todo sobre SonarSource” os dejamos a continuación enlaces a las distintas comunidades que mejoran, contribuyen y debaten cada día sobre las herramientas líderes en inspección continua de código.
Comunidad Hispana mantenida por excentia
Comunidad oficial mantenida por SonarSource
Si se ha quedado alguna duda pendiente, no dudes en escribirnos. Esperamos impacientes nuestras nominaciones a los Goya y a los Oscar, y tener claro que en el largo agradecimiento (tan largo como este post) cuando recojamos el premio, estaréis todos incluidos.