Inner Source es un concepto acuñado por Tim O´Reilly en 2000 y no es otra cosa que el uso de las best practices del desarrollo open source y el establecimiento de una cultura open source en las organizaciones. Inner Source promulga que las organizaciones pueden seguir desarrollando software propietario pero internamente abren su desarrollo como su fuera open-source.

La motivación principal de Inner Source viene de que en el mundo open source se desarrolla software innovador y de alta calidad, además en el mundo open source colaboran incluso competidores (el core de Linux es un buen ejemplo), y por tanto las organizaciones que desarrollan software se pueden beneficiar de componentes y herramientas open-source pero también de las prácticas de desarrollo establecidas en el mundo open source.

Hay muchas empresas adheridas y usando este modelo, como HP, IBM, Google, Microsoft, SAP, PayPal,…

Las ventajas promulgadas por este modelo incluyen:

  • Desarrollo más rápido: los programadores usan pruebas unitarias, cobertura de código e integración continua para eliminar errores en etapas tempranas
  • Documentación completa: el código se documenta mejor, tanto en los comentarios en código y menos formalmente en las listas de discusión
  • Reuso del código: los programadores de la organización entienden el código y la arquitectura de los módulos desarrollados por otros equipos
  • Colaboración entre equipos: las aportaciones de miembros ajenos al equipo no tienen fricción y rara vez tienen que ser reescritas
  • Desarrollo con GitHub: GitHub mantiene repositorios privados para proyectos internos, así como repositorios públicos para código fuente abierto

También es importante decir que aunque Inner Source puede ser una aproximación prometedora para grandes organizaciones que desarrollan software, no tiene por qué ser apropiada en todos los casos.

Se identifican varias factores a validar cuando nos planteamos esta estrategia:

A nivel de producto:

  • Interés en atraer a una comunidad
  • Contribuciones desde diferentes partes
  • Modularidad para atraer contribuidores y usuarios

A nivel de procesos y herramientas:

  • Estandarización de herramientas para facilitar la colaboración
  • Prácticas que soportan un estilo Market

A nivel de organización y comunidad:

  • Coordinación y liderazgo para soportar el concepto de meritocracia
  • Transparencia para abrir la organización
  • Apoyo administrativo y motivación para involucrar a las personas.

Una buena lectura para entender de verdad qué es y qué significa adoptar en la organización Inner Source es esta: http://www.oreilly.com/programming/free/files/getting-started-with-innersource.pdf