Como parte del proceso de creación de software, productos digitales, entre otros, en dónde se involucran múltiples equipos, personas, roles y procesos dentro de una organización; el compartir información y conocimientos, cada vez se torna más complejo e incluso inmanejable.
Por ejemplo, cada equipo dentro de una organización tiene sus propias fuentes de información (documentación, apps, código, procesos) y no hay maneras de conocer cómo están conformadas las organizaciones o empresas, las cuáles manejan varias líneas de negocio, con diferentes equipos, no hay información de quiénes son los líderes actuales, los miembros de los equipos rotan constantemente o salen de la organización, no existe una estructura organizacional actualizada de toda está información que cambia constantemente, no permite que personas o sistemas sean puntos de referencia o contacto para obtener información.
También hay que considerar el cambio de contexto, sistemas fragmentados, procesos de onboarding y documentación desactualizada; todas estas circunstancias despertaron la necesidad de crear una plataforma que resuelva este problema. Y es así cómo se originó Backstage, desarrollado por Spotify.
¿Qué es Backstage?
Backstage es un developer portal (portal para desarrolladores), una plataforma que permite a los desarrolladores obtener toda la información y herramientas necesarias para el desarrollo de software.
Backstage funciona como “una plataforma de plataformas”, cualquier equipo/persona dentro de una organización puede contribuir a esta plataforma, el equipo central (a cargo de Backstage) debe tratar a estos equipos contribuyentes como clientes de la plataforma. Se puede incentivar la colaboración de código usando herramientas como Github. Estás técnicas de contribución de código son tomadas a partir del InnerSource, el mismo que contiene fundamentos y prácticas de desarrollo de código abierto que pueden ser implementadas dentro de una organización.
Backstage cuenta con una comunidad muy activa, que siempre está dispuesta a responder dudas o preguntas, se reúnen frecuentemente para compartir novedades, nuevos desarrollos, mejoras issues detectados para incentivar a los desarrolladores a la contribución de código.
¿Cómo medir su impacto? (KPIs y métricas)
Estas son algunas de las métricas que se puede utilizar para verificar si Backstage tiene un impacto exitoso en el proceso de desarrollo de software dentro de una organización:
Onboarding time
Offboarding time
Número de PR que se han mergeado por desarrollador/día/equipo
Deploys a producción
Cambio de contexto (Diferentes iniciativas en las que un equipo está trabajando)
Si quieres saber más acerca de prácticas para la adopción de Backstage, este artículo de Spotify te recomienda algunas de las mejores prácticas.
Core Features
1. Software Catalog
Hace posible que un solo equipo administre decenas de componentes de software y que su organización administre miles de ellos, esto permite a los equipos visualizar los proyectos y dependencias.
En lugar de utilizar la consola de un proveedor de servicios en la nube, como por ejemplo AWS o GCP, se puede integrar la opción para administrar el ciclo de vida de un componente dentro de Backstage.
2. Software Template
Facilita a los desarrolladores la creación de un nuevo microservicio, mobile feature, pipeline o cualquier otro componente de software; permite automatizar procesos como onboarding y offboarding.
El tiempo para un Walking Skeleton, se reduce a unos pocos clics, para que los desarrolladores de software se enfoquen en la creación de features. Un caso exitoso de onboarding dentro de Spotify, es el uso de Golden Paths como parte del proceso de onboarding. El concepto de Golden Paths, se traduce: al camino “determinado y apoyado” para “construir algo” (por ejemplo, crear un servicio de back-end, instalar un sitio web, crear un pipeline). El tutorial Golden Path es un tutorial paso a paso que guía a través de este camino con opiniones y apoyo.
3. Kubernetes Integration
Es una herramienta diseñada en torno a las necesidades de service owners, en lugar de cluster admins. Los desarrolladores pueden verificar fácilmente el estado de sus servicios sin importar cómo o dónde se implementen esos servicios, ya sea en un host local para realizar pruebas o en producción con docenas de clústeres de toda la organización.
4. Backstage Search
Cuando tienes miles de desarrolladores construyendo miles de componentes, ¿cómo puede alguien encontrar algo? Backstage permite encontrar service owners, componentes y documentación.
Nuevos desarrolladores pueden encontrar información, todos pueden compartir, crear y colaborar juntos, evitando la duplicación de esfuerzos, porque todo se puede encontrar dentro de un mismo lugar en Backstage.
5. TechDocs
Es la solución docs-like-code (documentación como código) propia de Spotify integrada en Backstage. Esto significa que los desarrolladores escriben su documentación en archivos Markdown que viven junto con su código. Esto facilita que los desarrolladores no tengan que utilizar otra herramienta para documentar.
Instalar Backstage localmente
Para la instalación de backstage, he dejado un paso a paso detallado de cómo hacerlo, para poder facilitar el proceso.
Requerimientos:
yarn >= 1.22.17
node >= 14.17.0
Tech stack:
React
React Testing Library
Typescript
Javascript
Express
Cypress
Lerna
Docker
CLI (Línea de comandos) :
Instalar backstage como Single Page Application (SPA):
npx @backstage/create-app
Instalar dependencias:
yarn install
Para levantar localmente, dentro del directorio packages/app ejecutar:
yarn dev
Conclusión
Backstage es una plataforma que permite solucionar muchos problemas dentro de una organización: encontrar información y documentación de diferentes equipos; creación y administración de componentes desde un mismo lugar; contribución de código, todo esto permite romper silos entre equipos. Los silos afectan la productividad debido a que los equipos o distintas áreas de negocio actúan de manera aislada, tomando decisiones en dónde los sistemas y los miembros de los diferentes equipos no tienen comunicación entre sí.
Si quieres saber más acerca de esta plataforma tan interesante, te recomiendo que empieces a explorar dentro de ella y si te interesa el desarrollo open source, puedes contribuir al desarrollo de features o mejoras en el código.
Aviso legal: Las declaraciones y opiniones expresadas en este artículo son las del autor/a o autores y no reflejan necesariamente las posiciones de Thoughtworks.