Domanda

Io lavoro su un progetto di software e vorrei stimare la percentuale di contributo totale che ho messo nello sviluppo del software. C'è qualche strumento di fare questo? Tale strumento può essere utile per valutazioni o trattative, per esempio. Dopo tutto, noi lavoriamo per i soldi (sì, non solo il denaro, ha messo il punto rimane). Penso che ci sia sufficiente a mano agitando per le cose più importanti.

La stima è molto soggettiva (almeno a me ora), ma non so di qualsiasi strumento che fornisce anche una stima soggettiva. So di conteggio elaborato che definisce lo sforzo totale utilizzando le linee di codice, ma non su base per-sviluppatore.

La mia idea di uno strumento ideale per questo scopo sarebbe:

  • misurare la complessità del codice (più complesso è più sforzo, ma uno sforzo maggiore non è necessariamente più contributo)
  • misurare la decomposibility / flessibilità del software (più scomponibile è meglio)
  • come viene utilizzato molto codice della libreria - utilizzando il codice della libreria accelera il processo di sviluppo, aumenta il rischio associato e richiede allo sviluppatore di sapere da prima o conoscere la biblioteca.
  • essere abbastanza intelligente da distinguere tra "chi ha scritto il codice", "che ha copiato il codice" e "chi rientrato il codice".

E 'difficile distinguere tra la complessità nella realizzazione e l'intrinseca complessità del problema. Forse un confronto può essere fatto con una controparte open source equivalente se c'è, o per ciascun modulo separatamente.

Se non c'è tale strumento, non v'è alcun merito ad avere un tale strumento? O credi "Faccio il lavoro, io non misuro"? Ci vuole tempo, dopo tutto. Forse il project manager dovrebbe fare questa stima continuamente, per esempio, settimanale. Esistono norme? Sì, la standardizzazione è difficile perché ogni progetto ha obiettivi diversi, ma forse dovrebbe significare non ci dovrebbe essere più standard, non esistono standard a tutti. Questo è simile al modo in cui un società è valutata sul mercato.

Aggiorna : dopo aver visto alcune risposte iniziali: Non ha senso immaginare uno strumento che emette solo le percentuali. Ci sono strumenti che possono aiutare gli esseri umani (in particolare manager) nel prendere decisioni migliori? O che cosa è la statistica sufficiente per prendere decisioni migliori? Sono queste statistiche disponibili?

Nessuna soluzione corretta

Altri suggerimenti

ho davvero dubbio non v'è alcun modo affidabile affidabile per misurare il contributo individuale alla soluzione. A volte la riscrittura del codice legacy complicato che si traduce in meno linee di codice, soluzione meno complicata (minore complessità ciclomatica, ecc) può essere visto come un contributo molto significativo, mentre in altri casi l'eliminazione di codice prezioso che copre i casi limite che si traduce nelle stesse statistiche ( meno linee di codice, più piccola CC, ecc) è sicuramente qualcosa di brutto. Tutto si riduce a persone, la fiducia e la cooperazione, l'individualismo nella squadra è quasi sempre sbagliato e avrei preferito evitarlo e soprattutto non usarlo come un fattore di motivazione.

Questo è un argomento di ricerca a sé stante. Ci sono diversi strumenti che hanno cercato di definire le metriche come codice di proprietà . Ci sono altri approcci che affrontano altro aspetto di sviluppo collaborativo, per esempio, il TruStability che possiamo avere nel codice.

C'è stato anche diversi studi che hanno cercato di utilizzare le informazioni da inseguitori bug . Per esempio, per identificare lo sviluppatore che è il più probabile per introdurre bug. Ma è difficile essere obiettivi (Uno sviluppatore geniale che viene assegnato la parte più critica del sistema, sarà ancora più probabilità di introdurre bug critici).

In realtà è difficile da monetizzare le attività di sviluppo. Qual è il costo di un bug? Qual è il guadagno di refactoring? Sarebbe tuttavia un modo per stimare il contributo di uno sviluppatore.

L'ultima freddo strumento che ho visto di questo tipo è stata la Gioco Plugin per Hudson l'integrazione continua del sistema. Un punteggio viene assegnato a ogni sviluppatore, secondo le loro azioni

  • -10 se si rompono la build
  • -1 per rompere un test
  • 1 per il fissaggio di un test
  • ecc.

Questa è ancora una volta un modo per valutare in qualche modo il contributo dello sviluppatore.

Tutto sommato, mi sento come quello che si sta chiedendo per esistere, ma è ancora molto immaturo.

Non credo che si può ottenere uno strumento per valutare la vostra parte del progetto. linee di fonte di misurazione è tutto molto bene, ma ciò che della qualità di questa fonte? Lei non vorrebbe qualcuno che prende il credito per 200 linee di fonte se il lavoro avrebbe potuto essere easiy fatto in 20 ...

Inoltre, pensando a mio datore di lavoro per un momento, un sacco di gente contribuire al progetto in modi diversi da quelli del codice. esempi immediati mi viene in mente sarebbero responsabili di progetto e Tester -. entrambi i quali sono essenziali, entrambi i quali giustamente meritano un po 'di credito

Martin

L'unica cosa che potevo immaginare sarebbe un sistema di votazione. Non ho assolutamente idea, se questo avrebbe funzionato nella vostra squadra o dovunque - ma sono sicuro, che sarà necessario esseri umani per qualsiasi valutazione realistica della qualità del codice

.

Nel libro di Stroustrup su C ++ ho letto una volta: "Non cercare di risolvere i problemi sociali con mezzi tecnici".

Il pensiero progmatically, l'atteggiamento e la capacità di un programmatore potrebbe essere molto rapidamente stimato facendo un codice-review insieme e avere un colloquio su temi rilevanti.

entrare descrizione dell'immagine qui

Il pensiero come un IT-entusiasta e come controllo-freak, questo non dovrebbe essere molto difficile, per implementare un software di apprendimento automatico insegnabile, che utilizza la versione-cotrol, bug-base di dati, ecc e greates tempo reale performanced dati per ogni collaboratore. Per esempio. R, KNIME o WEKA potrebbero essere utilizzati per questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top