Cómo evaluar un proyecto de código abierto (3) - red de flujo de valor

Nota del editor

“¿Cómo evaluar un proyecto de código abierto?” siempre ha sido un problema controvertido a resolver. Con solo confiar en algunos indicadores simples, como la cantidad de estrellas, es difícil reflejar con precisión la calidad del proyecto. Por lo tanto, muchas plataformas y organizaciones han lanzado herramientas especiales, como la función " Gitee Index " de Gitee, que evalúa la salud de un proyecto de código abierto desde múltiples dimensiones, como la actividad del código, la actividad de la comunidad, la salud del equipo, las tendencias de la moda y la influencia. . El grupo de proyecto CHAOSS de la Fundación Linux se compromete a proporcionar indicadores cuantitativos para evaluar el desarrollo de comunidades y proyectos de código abierto...

También hay intentos de recopilar sistemáticamente datos de la comunidad de código abierto, incluida la popularidad, la confiabilidad y la actividad del proyecto, para juzgar y evaluar la calidad de un proyecto de código abierto.

Zhao Shengyu, miembro principal de X-lab Open Lab, ha investigado durante mucho tiempo la teoría del código abierto y los datos de comportamiento del código abierto, y ha realizado experimentos relacionados. Recientemente, publicó una serie de artículos sobre "Cómo evaluar un proyecto de código abierto". . La serie continúa actualizándose, ¡así que estad atentos!

El siguiente texto principal es el tercero de la serie.

Llamar por papeles:

La comunidad de OSCHINA está a la espera de más voces diferentes, y ahora está invitando a todos los usuarios a discutir y participar ¿Qué proyecto de código abierto N.° 1 tiene en mente? ¿Cuál crees que es la métrica más importante para evaluar un proyecto de código abierto?
Bienvenido a participar en la discusión, y la forma de participar es la siguiente:
  • Envíe su manuscrito al departamento editorial ([email protected]), exprese su opinión y presente sus argumentos. Después de la revisión, recomendaremos artículos y autores, y enviaremos un pequeño regalo.
  • Deja un mensaje en el área de comentarios del artículo, a partir del 5 de octubre, el usuario del comentario con más likes también recibirá un pequeño obsequio.
Participar en la norma: iniciar una discusión sobre el tema en sí, justificarlo y elaborar los argumentos tanto como sea posible.

texto


Sobre el Autor

Zhao Sheng Yu
Doctor en Ciencias de la Computación de la Universidad de Tongji, miembro principal del laboratorio abierto X-lab, centrado en la teoría de código abierto y la investigación de datos de comportamiento de código abierto.

Este blog continúa la introducción anterior sobre actividad e influencia colaborativa , con la esperanza de resolver el problema de que la influencia colaborativa no puede acomodar más datos, para medir el ecosistema de código abierto de manera más integral y, al mismo tiempo, presentar un modelo matemático altamente escalable, que puede acomode rápidamente más metadatos en cualquier momento sin causar cambios significativos en el modelo. También espero que más amigos que estén interesados ​​en las métricas de la comunidad puedan participar en la discusión Para obtener mi información de contacto, consulte la página Acerca de .

Una galaxia de código abierto completa para explorar.

antecedentes

Los dos blogs anteriores introdujeron un método de cálculo del índice de actividad basado en las estadísticas ponderadas del comportamiento del desarrollador y el método de cálculo del índice de influencia de la colaboración del proyecto bajo la red de colaboración de código abierto basado en la actividad. Entre ellos, el grado de actividad soluciona principalmente las dificultades cognitivas causadas por los múltiples indicadores, y al mismo tiempo, a través de diferentes pesos de comportamiento, este indicador puede desempeñar un papel positivo en la estimulación del comportamiento de los desarrolladores. La actividad de colaboración es desde la perspectiva de todo el ecosistema de tecnología de código abierto y, si bien considera la colaboración entre proyectos, resuelve en cierta medida el problema del cepillado de puntuación malicioso que puede ocurrir en la actividad y la inconsistencia de clasificación causada por pesos dados artificialmente. tema.

Sin embargo, solo los dos indicadores anteriores, además de algunos problemas de precisión de medición inherentes, también tienen un defecto importante, es decir, el modelo debe revisarse nuevamente después de la introducción de nuevos datos ecológicos. Los datos del ecosistema de software de código abierto están mucho más allá del alcance de los datos de comportamiento global de GitHub, por lo que necesitamos un modelo matemático altamente escalable que pueda integrarse en cualquier momento cuando haya más datos abiertos disponibles.

Red de flujo de valor

Como se afirma en el nuevo libro de Nadia Eghbal "Working in Public": "El propósito de consumir código no es simplemente leerlo y estudiarlo, sino usarlo. El valor del código abierto no proviene de sus cualidades estáticas". , medir el valor del código en función de las dependencias solo nos da una parte de la ecuación. Importa quién usa el código fuente abierto, pero ¿no importa quién lo desarrolló?". Estas dos oraciones son una buena indicación de la lógica subyacente más básica que debemos seguir para medir el software de código abierto.

Es decir, los dos puntos más importantes para medir si el software de código abierto o los productos digitales de código abierto son valiosos se encuentran en el lado de la producción y el lado del consumo. Desde el lado de la producción, incluso si dos desarrolladores tienen el mismo nivel de actividad, el valor generado por el comportamiento de un excelente desarrollador es completamente diferente del valor generado por un desarrollador que recién comienza. Del lado del consumidor, si un software de código abierto está en continuo desarrollo pero nunca se ha utilizado, el valor de un proyecto que puede haber estado inactivo durante mucho tiempo pero utilizado por cientos o miles de personas también es diferente.

Por lo tanto, la red de flujo de valor espera esencialmente analizar desde la perspectiva del valor social generado por el software de código abierto y generar un modelo desde el extremo de producción hasta el extremo del consumidor, que puede medir directamente el valor social de cada software y también puede deducir cada software a la inversa el valor de un desarrollador. Este es un trabajo fundamental para construir un ecosistema económico completo de código abierto.

Comience con la influencia colaborativa

Volvamos atrás y veamos el modelo de influencia colaborativa del artículo anterior.

De hecho, en el algoritmo original de clasificación de páginas web, se basa en un modelo de probabilidad, es decir, cuando un usuario de Internet navega por una determinada página web, ¿a qué páginas web es probable que vaya a continuación? Existe una alta probabilidad de que encuentre aleatoriamente un enlace en el enlace externo de la página actual para continuar visitando, o puede cerrarse y luego abrir un enlace aleatorio en todas las páginas. La clasificación final de la página web es que las páginas web con mayor probabilidad de ser visitadas se clasifican en la primera posición.

Pero al mismo tiempo, este modelo también se puede ver desde la perspectiva del flujo de valor, es decir, cada página web transmitirá algo de su propio valor a las páginas web vinculadas a ella y obtendrá algún valor de las páginas web vinculadas a ella. Al mismo tiempo, todas las páginas web también tienen un valor base. Luego, cuando el flujo de valor de toda la estructura de la red sea estable, el valor de cada página web estará completamente determinado y la página web con el mayor valor se clasificará más alto.

De la red de colaboración de código abierto en el artículo anterior, también se puede considerar que cada proyecto tiene un valor básico y, al mismo tiempo, la asociación entre proyectos provocada por la colaboración del desarrollador traerá flujo de valor y transferencia entre proyectos hasta el momento completo. la red es estable, se determina la influencia colaborativa de todos los proyectos.

un ejemplo sencillo

Desde el punto de vista anterior, de hecho, podemos dar un método más generalizado para construir y calcular la red de valor. El ejemplo más simple se muestra a continuación, agregando más relaciones de datos, especialmente los datos del lado de la producción y del lado del consumo, considerando la actividad de contribución del desarrollador.

Como se muestra en la figura anterior, en esta red de valor simple, hay dos nodos, desarrolladores y proyectos.Los desarrolladores y los proyectos tienen sus propios valores, y los desarrolladores tienen una relación de seguimiento, similar a la relación Seguir en GitHub. Los proyectos tienen dependencias, es decir, las relaciones de uso ascendentes y descendentes. Al mismo tiempo, además de la actividad del desarrollador en el proyecto, también agregamos el concepto de atención, es decir, el comportamiento unidireccional iniciado por el desarrollador en el proyecto, como estrella, reloj, bifurcación, clon, etc. ., expresando atención al proyecto , pero ningún comportamiento que realmente se retroalimente al proyecto. El flujo de valor en esta red se puede representar en la siguiente tabla, donde cada celda representa la transferencia de valor del nodo de fila al nodo de columna:

  proyecto Desarrolladores
proyecto confiar actividad, atención
Desarrolladores Actividad concentrarse en

Según dicho modelo, en la red de flujo de valor de los proyectos y desarrolladores globales de código abierto, el valor de cada desarrollador fluirá hacia el exterior a través de su actividad, la atención del proyecto y la atención a otros desarrolladores; el valor fluye hacia el exterior a través de la vida y las dependencias. Es decir, la mayor parte del valor que creo personalmente fluirá a los proyectos que contribuyo a través de mi comportamiento de contribución específico, otra parte fluirá a los proyectos que sigo pero a los que no contribuyo, y otra parte fluirá a los desarrolladores que sigo. . Parte del valor del proyecto regresará al desarrollador a través de la relación de contribución y parte fluirá al proyecto aguas arriba que lo proporciona a través de la relación de dependencia.

Dado que los proyectos y los desarrolladores aún conservarán una parte de su propio valor, podemos agregar algunas propiedades inherentes que no están en la red a su valor inicial. Por ejemplo, el valor inicial de los KOL de código abierto es más alto que esta parte del valor inicial. el valor será en realidad Impacto continuo debido a tener un porcentaje de tenencias reservadas.

Si este modelo finalmente puede converger y obtener una solución estable es un problema matemático relativamente complejo.Los estudiantes interesados ​​pueden consultar el contenido en el apéndice.

Red de flujo de valor ecológico de código abierto

Lo anterior es un modelo matemático que se puede implementar y verificar rápidamente y tiene buena escalabilidad, pero de hecho, la red de valor de todo el ecosistema de código abierto es mucho más compleja que la red anterior. Los datos contenidos desde el lado de la producción hasta el lado del consumidor están mucho más allá de esta categoría, especialmente en el lado del consumidor, ya que otros proyectos dependen de ellos no es la forma en que los proyectos de código abierto se consumen en última instancia. La forma en que todo el software finalmente se consume es para satisfacer las necesidades de algunos usuarios reales al convertirse en un servicio. De hecho, debe referirse a su utilidad social final, no a si está integrado para un desarrollo secundario. Si el proyecto después del desarrollo secundario tampoco es utilizado por ningún usuario, no resuelve ninguna necesidad real o, en otras palabras, no produce ninguna utilidad social, entonces su valor es limitado.

Aquí hay una red de valor más compleja que puede no ser factible en este momento para su referencia:

En la estructura de red compleja representada en la figura anterior, su flujo de valor se puede observar en la siguiente tabla:

  proyecto software Desarrolladores empresa Fundación Agencia de inversiones usuario
proyecto confiar en, usar usar actividad, atención tener tener invertir -
software usar - - - - - usar
Desarrolladores Actividad - concentrarse en contratar miembro - -
empresa tener - contratar Subsidiario patrocinador invertir -
Fundación tener - miembro patrocinador - - -
Agencia de inversiones invertir - - invertir - - -
usuario Actividad - concentrarse en contratar miembro - -

En la figura anterior se incluyen una gran cantidad de entidades relacionadas con el ecosistema de software, tales como software, empresas, fundaciones, instituciones de inversión, usuarios, etc. Desde esta perspectiva incompleta, la actividad de los desarrolladores y el uso del software por parte de los usuarios son esencialmente la fuente del valor ecológico de todo el software de código abierto, mientras que la inversión de las instituciones de inversión, las empresas a través de sus relaciones laborales con los desarrolladores y el patrocinio de fundaciones inyectan la relación. es el valor de influencia externa, y otros valores fluyen dentro de la red de acuerdo con la relación mencionada anteriormente.

Además de las dependencias entre los proyectos antes mencionados, también existe la relación de uso entre el software y los proyectos. De hecho, las dependencias de proyectos tradicionales se refieren principalmente al desarrollo secundario, que generalmente se presenta en forma de un paquete de productos de lenguaje específico. El uso de software significa que cuando el usuario final brinda servicios, no debe ser un proyecto separado para brindar servicios, sino también el sistema operativo subyacente, la base de datos, la máquina virtual, su lenguaje de desarrollo y otros servicios que interactúan a través de RPC. a la categoría de uso de software.

Bajo este modelo de red, si podemos cuantificar el valor específico y el mecanismo de flujo de cada parte, no solo se puede evaluar bien el valor de todas las entidades, sino que también con la mejora continua de los datos, este valor se acercará gradualmente a su correspondiente utilidad social real. . Este es el objetivo final. De hecho, este método se usa a menudo para resolver sistemas complejos, y su solución suele ser la solución de estado estacionario del sistema complejo, lo que revela el modelo operativo que debe tener el sistema complejo.

Por supuesto, este no es un modelo final, por ejemplo, para la introducción de riesgos de seguridad, aquellos desarrolladores o empresas que se han dedicado a monitorear y analizar las vulnerabilidades técnicas de seguridad durante mucho tiempo también aportan un gran valor al ecosistema de código abierto. Pero la extensión de la extensión hará que la red se expanda rápidamente, por lo que no se expandirá aquí.

pensar

  • 1. El modelo de red de flujo de valor en realidad espera incluir todos los datos contenidos en el ecosistema de código abierto tanto como sea posible y, lo que es más importante, proporcionar un modelo de nivel superior que sea compatible con más datos.
  • 2. El modelo de red de flujo de valor desacopla el modelo matemático y el modelo comercial, de modo que la descripción ecológica de código abierto de capa superior se puede llevar a cabo sin preocuparse por el modelo matemático subyacente. Por ejemplo, la estructura de red más compleja mencionada anteriormente no no implica ninguna matemática Modelo.
  • 3. Si el modelo de red de flujo de valor puede obtener una solución de estado estacionario está estrechamente relacionado con sus restricciones matemáticas subyacentes.Los estudiantes interesados ​​pueden consultar el apéndice. Sin embargo, una vez que se determina el modelo de negocio, los estudiantes con conocimientos subyacentes pueden ajustarlo en colaboración para hacerlo convergente.
  • 4. Lo que el modelo de red de flujo de valor espera resolver en última instancia es la construcción del sistema económico de todo el ecosistema de código abierto, que se discutirá en el próximo artículo.

pregunta

  • 1. Aunque este modelo es un modelo matemático y un modelo de negocio desacoplados, y tiene una buena escalabilidad, si la persona que diseña el modelo de negocio no está familiarizada con la lógica matemática subyacente, es probable que diseñe un modelo de negocio que no pueda obtener una solución estable. , por lo que existen mayores requisitos para los diseñadores de modelos de negocio.
  • 2. Para medir con precisión el sistema económico de todo el ecosistema digital de código abierto, este modelo requiere una gran cantidad de datos, la mayoría de los cuales son difíciles de obtener y correlacionar. Esta parte será de muy largo plazo y requerirá una colaboración a gran escala. El trabajo también será parte del trabajo que presentaremos en el futuro.

apéndice

Problema de convergencia de PageRank

La convergencia de PageRank generalmente se prueba utilizando la teoría de procesos estocásticos desde la perspectiva de su proceso de Markov equivalente. Su correspondiente matriz de transición necesita satisfacer dos condiciones:

  • 1. Cumplir con los requisitos del proceso aleatorio, es decir, la matriz de transición es una matriz aleatoria.
  • 2. La matriz de transición debe ser una matriz prima o una matriz primitiva. En este momento, la matriz puede satisfacer irreductible y aperiódica. De acuerdo con el teorema de Perron-Frobenius, el proceso aleatorio debe converger.

Entonces, en una red de información heterogénea de alta dimensión, un proceso aleatorio similar también debe cumplir las dos condiciones anteriores, que pueden satisfacer sus requisitos de convergencia. Para obtener información más detallada, consulte el contenido correspondiente.

 

{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4489239/blog/5310178
Recomendado
Clasificación