Topics Version control ¿Qué es InnerSource?

¿Qué es InnerSource?


InnerSource es una estrategia de desarrollo de software en la que las empresas adoptan un enfoque y una cultura de código abierto para colaborar de manera más efectiva.

¿Qué significa InnerSource?

InnerSource es una tendencia creciente que se encuentra en los equipos de desarrollo e ingeniería de alto rendimiento que adoptan procesos de código abierto para trabajar y colaborar de manera más efectiva. Cuando los equipos usan InnerSource, desarrollan software propietario y abren el trabajo internamente entre los equipos para que todos, desde los desarrolladores hasta los gerentes de producto, puedan contribuir al código fuente.

InnerSource es una estrategia de desarrollo de software que aplica prácticas de código abierto al código propietario. InnerSource puede ayudar a establecer una cultura de código abierto dentro de una organización al tiempo que conserva el software para uso interno. Los equipos usan InnerSource para aumentar la visibilidad, fortalecer la colaboración y romper los silos.

Al establecer el valor predeterminado para abrir proyectos internos dentro de una organización, los equipos pueden permitir que se reutilicen las soluciones existentes y así minimizar la redundancia, potenciar la colaboración en equipo y aprovechar el talento en toda la fuerza laboral. Las organizaciones de cualquier tamaño se benefician de InnerSource y pueden incorporar continuamente prácticas modernas de desarrollo de software a través del aprendizaje de proyectos de código abierto a gran escala.

En las grandes organizaciones y empresas, los equipos de desarrollo por lo general se distribuyen en diferentes departamentos o zonas horarias. Es posible que varios desarrolladores nunca se reúnan o tengan acceso a las mismas estrategias departamentales. Sin embargo, con InnerSource, pueden alinearse con el mismo modelo de flujo de trabajo, que ha demostrado su éxito en proyectos de código abierto.

PayPal demuestra cómo las prácticas de desarrollo de código abierto hacen que los negocios sean más eficientes y rentables, incluso si el «abierto» en «código abierto» realmente solo se limite al equipo de una organización. Otras empresas pioneras que adoptaron InnerSource, como Bosch, Autodesk, Bloomberg y SanDisk, demuestran la capacidad de completar proyectos complejos y crear productos innovadores mediante el uso del mismo sistema ágil y económico empleado en el código abierto.

Por qué las organizaciones quieren funcionar como proyectos de código abierto

En esencia, las grandes organizaciones funcionan de manera similar a los grandes proyectos de código abierto. En ambas entidades, existen muchas variables: múltiples contribuidores, diversas herramientas y una gama de directivas y estrategias. Sin embargo, en el modelo corporativo tradicional, una organización funciona de acuerdo con las instrucciones de una jerarquía de líderes superiores. En parte, la eficiencia de la organización se basa en la capacidad de los gerentes para realizar un seguimiento de grandes cantidades de información entrante.

La abundancia de información a menudo se canaliza hacia un cuello de botella gerencial, por lo que no es sorprendente que se pasen por alto varios proyectos. A medida que los proyectos se vuelven más complejos o más equipos se involucran, es probable que más tareas pasen desapercibidas durante algún tiempo. En los proyectos de código abierto, la información relacionada con el desarrollo se gestiona a través de un proceso de documentación y comprobaciones diseñado para evitar que los componentes se descuiden con el tiempo.

Las prácticas de flujo de trabajo de código abierto más importantes para las empresas son las siguientes:

  • Visibilidad
  • Bifurcación
  • Solicitudes de extracción/fusión
  • Pruebas
  • Integración continua
  • Documentación
  • Rastreador de tickets

Al adoptar una mentalidad de código abierto para el desarrollo de software, las organizaciones cierran brechas y rompen los silos, lo que lleva a un ciclo de vida de desarrollo del software más robusto y estricto. Además, allana el camino para una experiencia mejorada del desarrollador, metodologías de desarrollo optimizadas y una cultura de colaboración transparente.

Este enfoque no solo aumenta la velocidad del desarrollador, sino que también fomenta una colaboración más estrecha entre los miembros del equipo central en varios proyectos de desarrollo.

Beneficios de InnerSource

Las organizaciones que utilizan InnerSource experimentan beneficios típicos del desarrollo de código abierto, como los siguientes:

  • Código de alta calidad: con pruebas unitarias, cobertura de código e integración continua, los equipos mejoran la calidad del código al principio del ciclo de vida.
  • Documentación completa: el código está mejor documentado, tanto en los comentarios como de manera menos formal en los debates, lo que genera una fuente única de la verdad y una mayor transparencia y conocimiento compartido.
  • Reutilización efectiva del código: el código y la arquitectura se pueden descubrir y están disponibles en todos los equipos y en la organización.
  • Sólida colaboración: las revisiones de código tienen menos fricción, la comunicación se fortalece y las contribuciones aumentan.
  • Cultura saludable: los silos se rompen, por lo que la satisfacción laboral del desarrollador mejora, y esto lleva a una mejor retención y contratación.

Problemas que InnerSourcing resuelve

Estos son algunos de los problemas que a menudo enfrentan las grandes organizaciones que el InnerSource podría ayudar a resolver.

Desafío Solución
Comunicación: por lo general, en las grandes organizaciones no hay un solo equipo unificado que trabaje hacia un único objetivo. En cambio, los miembros del equipo tienden a estar aislados en varios equipos desconectados que tienen sus propias estructuras y liderazgo. Las normas y terminologías de comunicación pueden variar entre los equipos, y la comunicación y el intercambio de conocimientos son mínimos e ineficaces entre los silos. Los sistemas de código abierto permiten la participación y las contribuciones a gran escala. Las líneas de comunicación son directas y visibles para todos en el proyecto. Las jerarquías de comunicación suelen ser planas, eliminando así el ruido innecesario y conectando las contribuciones con las partes interesadas.
Descubrimiento: una solución de software puede crearse varias veces en diferentes departamentos, lo que multiplica el esfuerzo, simplemente porque los departamentos carecen de comunicación, transparencia y colaboración. Por lo general, no hay un proceso para verificar si ya se creó una solución. El beneficio de los proyectos de código abierto es que son transparentes por naturaleza. Tener acceso al proyecto significa que los equipos pueden realizar una búsqueda para determinar si existe una solución para un problema que enfrenta un equipo. Si alguien no realiza una búsqueda antes de comenzar a trabajar, otros contribuidores del proyecto tienen visibilidad completa y pueden identificar una solución preexistente. Los proyectos de código abierto aumentan el descubrimiento de soluciones existentes y ayudan a reducir la duplicación de esfuerzos.
Burocracia: en la mayoría de los entornos comerciales, hay estructuras organizativas que dictan a qué pueden acceder los miembros del equipo. Es posible que un miembro del equipo sepa que existe una solución, pero debe solicitar acceso a un proyecto a un administrador. Esto hace que el desarrollador y el administrador desvíen su atención de las tareas importantes. Con los proyectos de código abierto, los miembros del equipo tienen acceso completo para trabajar o ver los proyectos. Esta visibilidad y acceso disminuye el trabajo administrativo y los retrasos de tener que gestionar las solicitudes de acceso.
Hacer modificaciones: en un entorno comercial tradicional, si los equipos tienen acceso de solo lectura a un proyecto, no cuentan con los permisos ni la capacidad para editar o agregar una funcionalidad y deben pedirle a otra persona que lo haga. Si las personas designadas como responsables de los cambios no tienen tiempo o no ven el sentido de los cambios, los contribuidores no tienen ningún recurso. El equipo responsable de la aplicación tiene la tarea de garantizar que su aplicación cumpla con los plazos y funcione correctamente, por lo que el trabajo de alguien depende del mantenimiento de esa aplicación. Aunque otro equipo podría beneficiarse de esta nueva funcionalidad, la solicitud de cambiar la aplicación podría interferir con la estabilidad de la aplicación, por lo que otorgar acceso es un riesgo. Si un desarrollador no puede obtener acceso para realizar las modificaciones necesarias, los equipos tendrán que crear su propio código base o aplicación para resolver el problema, lo que puede ocurrir varias veces, con distintas personas que se encuentran exactamente con el mismo problema. Esto lleva a que se creen muchas aplicaciones por separado para resolver el mismo problema. Si los equipos quieren hacer un cambio en un proyecto de código abierto, no necesitan obtener la aprobación. En cambio, contribuyen al cambio y permiten que el sistema pruebe su funcionalidad y validez. En la práctica, los equipos realizan una bifurcación del código base, hacen las modificaciones y crean una solicitud de fusión. Otro desarrollador puede verificar esta solicitud, hacer preguntas y ponerla a prueba. Las personas responsables de aceptar la solicitud de fusión tienen una carga de trabajo reducida en comparación con el otro escenario, porque no tuvieron que hacer el trabajo adicional ellos mismos, y la funcionalidad fue puesta a prueba, por lo que saben que funciona. Existe el beneficio adicional de que este enfoque reduce la carga general en el generador de informes, ya que solo debe admitir un único código base en lugar de ocho.

Cómo pueden usar los equipos InnerSource

InnerSource es una forma sencilla de crear un flujo de trabajo más eficiente para los equipos que trabajan en colaboración en distintas zonas horarias, como es el caso de la mayoría de los equipos en la actualidad, y para las organizaciones con varios departamentos. Los equipos pueden romper los silos de información y fomentar una colaboración más efectiva en toda la organización. InnerSource también puede utilizarse para agilizar la incorporación de desarrolladores y animar a los miembros del equipo a contribuir con software a la comunidad de código abierto.

La adopción de proyectos InnerSource se traduce en un cambio de los enfoques de desarrollo tradicionales hacia flujos de trabajo de desarrollo más dinámicos, inclusivos y eficientes.

Conclusión

InnerSource representa un cambio fundamental en la forma en que las organizaciones abordan el desarrollo de software. Promete no solo una mejora en la calidad y la seguridad de los productos de software, sino también una transformación cultural que posiciona a las organizaciones para el éxito. El uso de las prácticas de InnerSource permite a las empresas abordar los desafíos del desarrollo de software moderno con agilidad, al tiempo que promueve la innovación colaborativa para el crecimiento empresarial

A medida que las organizaciones miran hacia el futuro, la adopción de InnerSource se destaca como un imperativo estratégico que las equipará para enfrentar los desafíos emergentes y capitalizar las nuevas oportunidades.

Descubra cómo GitLab agiliza el desarrollo de software

¿Todo listo para comenzar?

Descubra lo que su equipo puede hacer con una plataforma de DevSecOps unificada.