Como estimar a contribuição de um indivíduo para um projeto de software? [fechadas]

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

  •  19-09-2019
  •  | 
  •  

Pergunta

Eu trabalho em um projeto de software e gostaria de estimar o percentual de contribuição total que eu pus no desenvolvimento do software. Existe alguma ferramenta está fazendo isso? ferramenta Tal pode ser útil para avaliações ou negociações, por exemplo. Afinal, trabalhamos por dinheiro (sim, não só dinheiro, colocar os restos de ponto). Eu acho que há bastante mão-acenando para as coisas mais importantes.

A estimativa é muito subjetivo (pelo menos para mim agora), mas eu não sei de qualquer ferramenta que oferece ainda uma estimativa subjetiva. Eu sei de sloccount que enuncia o esforço total, utilizando as linhas de código, mas não na base por desenvolvedor.

A minha ideia de uma ferramenta ideal para esta finalidade seria:

  • medir a complexidade do código (mais complexo é mais esforço, mas mais esforço não é necessariamente mais contribuição)
  • medir a decomposibility / flexibilidade do software (mais decomposable é melhor)
  • a quantidade de código biblioteca é utilizada - usando velocidades de código da biblioteca-se o processo de desenvolvimento, aumenta o risco associado e exige que o desenvolvedor saber de antes ou aprender sobre a biblioteca.
  • ser suficiente inteligente para diferenciar entre "quem escreveu o código", "quem copiou o código" e "quem recuado o código".

É difícil diferenciar entre a complexidade da implementação e da complexidade intrínseca do problema. Talvez uma comparação pode ser feita com uma contrapartida de código aberto equivalente, se houver, ou para cada sub-módulo separadamente.

Se não existe tal ferramenta, há nenhum mérito em ter essa ferramenta um? Ou você acredita em "Eu faço o trabalho, eu não medem"? Leva tempo depois de tudo. Talvez o gerente de projeto deve fazer esta estimativa continuamente, por exemplo, semanal. Existem normas? Sim, a padronização é difícil porque cada projeto tem objetivos diferentes, mas talvez isso deve significar deve haver múltiplos padrões, não há padrões em tudo. Esta é semelhante à forma como a empresa é valorizado no mercado.

Atualizar : depois de ver algumas respostas iniciais: Não faz sentido imaginar uma ferramenta que apenas emite os percentuais. Existem ferramentas que podem ajudar os seres humanos (particularmente gerente) na tomada de decisões melhores? Ou o que é a estatística suficiente para tomar melhores decisões? São estas estatísticas disponíveis?

Nenhuma solução correta

Outras dicas

Eu realmente dúvida existe alguma maneira confiável confiável de medir a contribuição do indivíduo para a solução. Às vezes reescrevendo algum código legado complicado que resulta em menos linhas de código, menos solução complicado (menor complexidade ciclomática etc.) pode ser visto como uma contribuição bastante significativa, enquanto em outros casos exclusão de código valiosa cobrindo casos de ponta que os resultados nas mesmas estatísticas ( menos linhas de código, menor CC etc.) é definitivamente algo ruim. Tudo se resume às pessoas, confiança e cooperação, o individualismo na equipe é quase sempre errado e eu preferiria evitá-lo e, especialmente, não usá-lo como um factor de motivação.

Este é um tema de pesquisa por conta própria. Existem várias ferramentas que tentaram definir métricas como propriedade do código . Existem outras abordagens que abordam outro aspecto de desenvolvimento colaborativo, por exemplo, o TruStability nós podemos ter no código.

Houve também vários estudos que tentaram usar as informações do bug trackers . Por exemplo, para identificar o desenvolvedor que é o mais provável para introduzir bugs. Mas é difícil ser objetivo (Um desenvolvedor brilhante que é atribuído a parte mais crítica do sistema, ainda vai ser mais propensos a apresentar bugs críticos).

É realmente duro para as tarefas Rentabilizar desenvolvimento. Qual é o custo de um bug? Qual é o ganho de refatoração? Isso seria no entanto uma maneira de estimar a contribuição de um desenvolvedor.

A última fresco ferramenta que vi deste tipo foi o Game Plugin para Hudson integração contínua sistema. A pontuação é atribuída a cada desenvolvedor de acordo com suas ações

  • -10 se quebrar a construir
  • -1 para quebrar um teste
  • +1 para a fixação de um teste
  • etc.

Isso é novamente uma forma de avaliar alguma forma o contributo do desenvolvedor.

Em suma, eu me sinto como o que você está pedindo para existir, mas ainda é muito imaturo.

Eu não acho que você pode obter uma ferramenta para avaliar a sua parte do projeto. linhas de fonte de medição é tudo muito bem, mas o que dizer da qualidade dessa fonte? Você não iria querer alguém tomar o crédito para 200 linhas de código se o trabalho poderia ter sido easiy feito em 20 ...

Além disso, o pensamento do meu empregador, por um momento, um monte de gente contribuir com o projeto em outras do que o código maneiras. exemplos imediatos eu posso pensar seria Gestores e testadores de projeto -. ambos os quais são essenciais, tanto de quem merece justamente algum crédito

Martin

A única coisa que eu poderia imaginar que seria um sistema de votação. Não tenho absolutamente nenhuma idéia, se isso iria trabalhar em sua equipe ou em qualquer lugar - mas eu tenho certeza que você vai precisar de seres humanos para qualquer estimativa realista da qualidade do código

.

Livro de Em Stroustrup em C ++ Eu li uma vez "Não tente resolver problemas sociais com meios técnicos".

Thinking progmatically, a atitude ea capacidade de um programador poderia ser muito rapidamente estimado fazendo um código de revisão em conjunto e ter uma conversa sobre temas relevantes.

enter descrição da imagem aqui

Pensando como um IT-entusiasta e como um controle-freak, isso não deve ser muito difícil, para implementar um software de aprendizado de máquina dócil, que usa versão de cotrol, erro do banco de dados, etc e greates em tempo real performanced dados de cada contribuinte. Por exemplo. R, KNIME ou WEKA poderia ser usado para isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top