La fuente interna es el uso de las mejores prácticas de desarrollo de software de fuente abierta y el establecimiento de una cultura similar a la de fuente abierta dentro de las organizaciones [1] para el desarrollo de su software propietario o no de fuente abierta . El término fue acuñado por Tim O'Reilly en 2000 [2] en su columna. [3]
Motivación
Se reconoce que el código abierto es capaz de ofrecer software de alta calidad. [4] Además, la colaboración abierta en código abierto permite la colaboración incluso entre competidores (por ejemplo, ARM e Intel trabajando en el kernel de Linux en decisiones basadas en méritos).
En consecuencia, las organizaciones de desarrollo de software quieren beneficiarse de sus resultados (los componentes y herramientas de software), pero también de las prácticas de desarrollo ejercidas y establecidas en el mundo del código abierto. [5]
Prácticas de código abierto utilizadas
Además de varias prácticas establecidas en fundaciones como Apache Software Foundation , Linux Foundation y Eclipse Foundation , los proyectos de código interno y de código abierto requieren colaboración abierta, comunicación abierta y una garantía de calidad adecuada .
Colaboración abierta
Todos los artefactos de desarrollo requeridos (por ejemplo, código, documentación, seguimiento de problemas , etc.) deben ser accesibles para todos los empleados de una empresa que aprovechan la fuente interna. Las falsificaciones de software centrales son una herramienta esencial para implementar la colaboración abierta.
Basado en los principios de colaboración abierta ( igualitaria , meritocrática y autoorganizada), todo colaborador que esté dispuesto a ayudar en un proyecto de fuente interna suele ser bienvenido. Las contribuciones a proyectos de fuentes internas generalmente se juzgan meritocráticamente en función del valor que aportan al proyecto. La meritocracia también puede habilitarse mediante una comunicación abierta, ya que las decisiones se discuten públicamente. Aunque una organización no necesariamente se vuelve completamente autoorganizada para adoptar una fuente interna, la fuente interna permite a los individuos, las unidades organizativas y las comunidades del proyecto un mayor grado de autoorganización.
Comunicación abierta
Los proyectos y programas de fuentes internas se basan en la comunicación abierta para que todas las comunicaciones sean accesibles para todos los empleados. La comunicación abierta es la comunicación pública (dentro de la empresa), escrita, archivada y completa. Como consecuencia de esta propiedad, la comunicación es asincrónica. El objetivo es permitir que cualquier persona o parte que tenga interés en un proyecto de fuente interna participe en la comunicación. A medida que se archivan las discusiones de comunicación abierta, se recopila pasivamente una documentación detallada del software que permite volver atrás y revisar las discusiones y decisiones históricas.
Garantía de calidad mediante la separación de la contribución de la integración
Una revisión de código dedicada y la separación de contribuyentes y confirmadores (integradores, desarrolladores con acceso de escritura) asegura la calidad de un proyecto de código abierto y, por lo tanto, también para un proyecto de código interno.
Beneficios
Más allá de los atributos de calidad del software de código abierto, se informan los siguientes beneficios: [6] [7]
- Desarrollo más eficiente y eficaz
- Tiempo de comercialización más rápido
- Costos de desarrollo reducidos
- Superar los límites de las unidades organizativas
- Distribución de costos y riesgos entre las unidades organizativas
- Colaboración a través de los límites de las unidades organizativas
- Intercambio de información en todo el programa
- Reutilización más exitosa
- Uso de las competencias que faltan en los proveedores de componentes
- Independencia entre reutilizadores y proveedores
- Alivio de los proveedores de componentes
- Mejor producto de software
- mayor calidad del código
- Desarrollo más innovador
- Utilización más flexible de los desarrolladores
- Implementación de desarrollador simplificada
- Colaboración de desarrolladores independientes
- Gestión mejorada del conocimiento
- Aprendizaje basado en la comunidad
- Apertura y disponibilidad de conocimiento
- Mayor motivación de los empleados
Predominio
Entre otras, las siguientes empresas son conocidas por adoptar una fuente interna: [6]
Factores clave para adoptar una fuente interna
La fuente interna puede ser un enfoque prometedor para las grandes organizaciones que desarrollan software. Sin embargo, puede que no sea apropiado en todos los entornos. Los siguientes nueve factores, agrupados en tres categorías, pueden consultarse para medir hasta qué punto la fuente interna puede ser apropiada. [13]
Factores de producto
- Producto semilla para atraer a una comunidad.
- Múltiples partes interesadas para una variedad de contribuciones
- Modularidad para atraer colaboradores y usuarios
Factores de procesos y herramientas
- Prácticas que apoyan el desarrollo "estilo bazar"
- Prácticas que respaldan la garantía de calidad "estilo bazar"
- Estandarización de herramientas para facilitar la colaboración
Factores de organización y comunidad
- Coordinación y liderazgo para apoyar el surgimiento de una meritocracia interna.
- Transparencia para abrir la organización
- Apoyo a la gestión y motivación para involucrar a las personas
Referencias
- ↑ Capraro, Maximilian; Riehle, Dirk (6 de febrero de 2017). "Definición de fuente interna, beneficios y desafíos" (PDF) . Encuestas de computación ACM . 49 (4): 1–36. doi : 10.1145 / 2856821 . ISSN 0360-0300 .
El código interno (IS) es el uso de prácticas de desarrollo de software de código abierto y el establecimiento de una cultura similar al código abierto dentro de las organizaciones. La organización aún puede desarrollar software propietario, pero internamente abre su desarrollo.
- ^ Ven van 't ende (9 de mayo de 2016). "InnerSource: un enfoque de código abierto para la cultura comunitaria" .
Tim O'Reilly, el fundador de O'Reilly Media, acuñó el término "abastecimiento interno" en 2000, y lo describió como: "el uso de técnicas de desarrollo de código abierto dentro de la corporación".
- ^ O'Reilly, Tim (1 de diciembre de 2000). "Código abierto y OpenGL" . oreilly.com . O'Reilly y asociados. Archivado desde el original el 15 de febrero de 2015 . Consultado el 22 de febrero de 2017 .
También hemos trabajado con empresas en lo que llamamos "abastecimiento interno", es decir, ayudarlas a utilizar técnicas de desarrollo de código abierto dentro de la corporación.
- ^ Kevin Crowston, Kangning Wei, James Howison, Andrea Wiggins (2012), ACM (ed.), "Desarrollo de software de código abierto libre / libre: lo que sabemos y lo que no sabemos", Encuestas de computación de ACM (en alemán), 44 (2): 1–35, doi : 10.1145 / 2089125.2089127 , S2CID 2246943CS1 maint: varios nombres: lista de autores ( enlace )
- ^ Stol, Klaas-Jan; Fitzgerald, Brian (2014). "Fuente interna: adopción de prácticas de desarrollo de código abierto dentro de las organizaciones: un tutorial" (PDF) . Software IEEE . doi : 10.1109 / MS.2014.77 . hdl : 10344/4443 .
[...] varias organizaciones han adoptado prácticas de código abierto para desarrollar su software. [...] A diferencia de los enfoques tradicionales, los desarrolladores de un proyecto de fuente interna no pertenecen a un solo equipo o departamento. En cambio, cualquiera dentro de los límites de la organización puede convertirse en un miembro contribuyente de esta comunidad interna, ya sea como usuario o colaborador.
Mantenimiento de CS1: utiliza el parámetro de autores ( enlace ) - ^ a b Capraro, Maximiliano; Riehle, Dirk (1 de diciembre de 2016). "Definición de fuente interna, beneficios y desafíos" . Computación ACM. Surv . 49 (4): 67: 1–67: 36. doi : 10.1145 / 2856821 . ISSN 0360-0300 . S2CID 5385511 .
- ^ Stol, Klaas-Jan; Fitzgerald, Brian (1 de julio de 2015). "Inner Source - Adopción de prácticas de desarrollo de código abierto dentro de las organizaciones: un tutorial" (PDF) . Software IEEE . 32 (4): 60–67. doi : 10.1109 / MS.2014.77 . hdl : 10344/4443 . ISSN 0740-7459 . S2CID 1965218 .
- ^ Actualización de investigación interna de Microsoft Solorigate .
- ^ Oram, Andy (2015). Introducción a InnerSource . O'Reilly Media, Inc. ISBN 978-1-491-93758-7.
- ^ Smith, Jared (2016). Uso de métodos de código abierto para proyectos de software internos . O'Reilly Media, Inc.
- ^ https://www.youtube.com/watch?v=pTssFh1qLwk
- ^ "Ver: Creación de un centro de origen interno en Siemens" . JFrog . 2020-07-28 . Consultado el 9 de diciembre de 2020 .
- ^ Stol, KJ; Avgeriou, P .; Babar, MA; Lucas, Y .; Fitzgerald, B. (2014). "Factores clave para la adopción de fuente interna". Transacciones ACM sobre Ingeniería y Metodología de Software . 23 (2): 1. doi : 10.1145 / 2533685 . hdl : 10344/3897 . S2CID 6995068 .