Cómo estimar la contribución de un individuo a un proyecto de software? [cerrado]

StackOverflow https://stackoverflow.com/questions/2437881

  •  19-09-2019
  •  | 
  •  

Pregunta

Yo trabajo en un proyecto de software y me gustaría para estimar el porcentaje de la contribución total que he puesto en el desarrollo de software. ¿Hay alguna herramienta de hacer esto? Dicha herramienta puede ser útil para las evaluaciones o negociaciones, por ejemplo. Después de todo, trabajamos por dinero (sí, no sólo dinero, puso el punto permanece). Creo que hay suficiente mano que agita de las cosas más importantes.

La estimación es muy subjetiva (al menos para mí), pero no sé de cualquier herramienta que proporciona aún una estimación subjetiva. Sé de SLOCCount que explica en detalle el esfuerzo total usando las líneas de código, pero no en función de cada desarrollador.

Mi idea de una herramienta ideal para este propósito sería:

  • medir la complejidad del código (más compleja es más esfuerzo, pero más esfuerzo no es necesariamente más contribución)
  • medir la decomposibility / flexibilidad del software (más descomponible es mejor)
  • ¿Cómo se utiliza mucho código de la biblioteca - el uso de código de la biblioteca acelera el proceso de desarrollo, aumenta el riesgo asociado y requiere que el desarrollador para saber desde antes o aprender acerca de la biblioteca.
  • ser lo suficientemente inteligente como para diferenciar entre "que escribió el código", "que copió el código" y "sangría que el código".

Es difícil diferenciar entre la complejidad en la implementación y la complejidad intrínseca del problema. Tal vez una comparación se puede hacer con un homólogo de código abierto equivalente si hay, o para cada submódulo separado.

Si no hay tal herramienta, no es ningún mérito en tener una herramienta de este tipo? ¿O es que cree en "el trabajo que hago, yo no mido"? Se necesita tiempo, después de todo. Tal vez el director del proyecto debe hacer esta estimación de forma continua, por ejemplo, semanalmente. ¿Existen normas? Sí, la normalización es difícil porque cada proyecto tiene objetivos diferentes, pero quizá debería decir debe haber múltiples normas, no hay normas en absoluto. Esto es similar a la forma de una compañía está valorada en el mercado.

Actualizar : después de ver algunas respuestas iniciales: No tiene sentido imaginar una herramienta que simplemente da salida a los porcentajes. ¿Hay herramientas que pueden ayudar a los seres humanos (en particular los gerentes) en la toma de mejores decisiones? O lo que es la estadística suficiente para tomar mejores decisiones? ¿Son estas estadísticas disponibles?

No hay solución correcta

Otros consejos

Realmente me cabe duda hay alguna manera confiable fiable para medir la contribución del individuo a la solución. A veces reescritura de algo de código legado complicado que resulta en menos líneas de código, solución menos complicada (menor complejidad ciclomática etc.) puede ser visto como una contribución muy significativa, mientras que en otros casos la supresión de código valiosa que cubre los casos límite que se traduce en las mismas estadísticas ( menos líneas de código, menor CC etc.) es definitivamente algo malo. Todo se reduce a las personas, la confianza y la cooperación, el individualismo en el equipo es casi siempre está mal y yo preferiría evitarlo y sobre todo no lo utilizan como un factor de motivación.

Este es un tema de investigación por su cuenta. Hay varias herramientas que han tratado de definir las métricas como propiedad del código . Hay otros enfoques que abordan otros aspectos del desarrollo de colaboración, por ejemplo, el TruStability que podemos tener en el código.

Ha habido también varios estudios que intentaron utilizar la información de rastreadores de errores . Por ejemplo, para identificar el desarrollador que es el más probabilidades de introducir errores. Pero es difícil ser objetivo (Un desarrollador brillante que se asigna la parte más crítica del sistema, todavía será más probable que introduzca errores críticos).

En realidad es difícil de monetizar las tareas de desarrollo. ¿Cuál es el costo de un error? ¿Cuál es la ganancia de refactorización? Eso sería sin embargo una manera de estimar la contribución de un desarrollador.

La última herramienta fresca que vi de este tipo fue la Juego Plugin para Hudson integración continua strong> sistema

  • -10 si se rompen la creación
  • -1 para romper una prueba
  • 1 para la fijación de una prueba
  • etc.

Eso es de nuevo una forma de evaluar de alguna manera la contribución del desarrollador.

Con todo, me siento como lo que se está pidiendo existe, pero es todavía muy inmaduro.

No creo que se puede obtener una herramienta para evaluar su parte del proyecto. líneas de fuente de medición está muy bien, pero ¿qué pasa con la calidad de esa fuente? Usted no quiere que alguien tome el crédito por 200 líneas de código si el trabajo se podría haber hecho en easiy 20 ...

Además, pensando en mi empleador por un momento, una gran cantidad de personas que contribuyen al proyecto de manera distinta código. ejemplos inmediatos que se me ocurre sería gestores y los testers -. ambos de los cuales son esenciales, tanto de los cuales con razón merecen algo de crédito

Martin

Lo único que me podía imaginar que sería un sistema de votación. No tengo absolutamente ninguna idea, si eso fuera a trabajar en su equipo o en cualquier lugar - pero estoy seguro, que tendrá que ser humano para cualquier estimación realista de la calidad del código

.

En el libro de Stroustrup en C ++ que he leído una vez "No trate de resolver los problemas sociales con medios técnicos".

Pensamiento progmatically, la actitud y la capacidad de un programador pueda estimarse muy rápidamente, haciendo un código de revisión juntos y tener una charla sobre temas relevantes.

introducir descripción de la imagen aquí

Pensando como un IT-entusiasta y como control-freak, esto no debería ser muy difícil, para implementar un software de aprendizaje de máquinas enseñable, que utiliza versión de cotrol, bug-base de datos, etc., y greates en tiempo real performanced datos de cada colaborador. P.ej. I, KNIME o WEKA se podrían utilizar para esto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top