Como digitalizar um desenvolvedor ou, enfim, como tornar o trabalho dos desenvolvedores mais transparente para a Empresa

Preâmbulo



Um, um banco russo de médio porte, tem um banco na Internet para físicos e advogados, sites e aplicativos móveis. E há também um loteamento que acompanha e desenvolve toda essa economia. Aí vem o jovem Líder, que trabalha nesta organização há mais de 3 anos, em nome de quem ficará esta história.



fundo



O banco é moderno, os processos são construídos de acordo com o ITIL, à primeira vista tudo parece um livro didático. Como sugere o título do artigo, abordaremos apenas uma parte do processo "Fazendo alterações" que nos interessa.



Problema



Tudo neste processo foi excelente excepto um momento, nomeadamente, o Analista acordou com o Cliente o cronograma de desenvolvimento - o proprietário do produto “Banco de Internet de Pessoas Jurídicas, Canais Web + Mobile”, doravante simplesmente o chamaremos de Cliente. O cliente sempre compreendeu e aceitou os trabalhos que decorriam à sua frente ou com a sua participação, a saber:



  • Esclarecimento e formalização de seus requisitos. Ele viu diretamente como uma história de cliente, um protótipo e, finalmente, uma declaração para um desenvolvedor nasceu de suas 2 linhas de texto.
  • Todos os tipos de teste. Ele viu uma lista enorme de testes.
  • Documentando. Ele poderia olhar para o número de páginas de texto e imagens (diagramas).
  • Mas em termos de desenvolvimento, o cliente sempre sentia uma pegadinha, parecia-lhe que um chefe de equipe barbudo do mal (e na verdade, uma pessoa de bom coração) que dava sua avaliação, só vê como entrar 50% horas extras ali, sem se preocupar em encontrar o SL e conseguir motivação por KPI. Foi esse problema que o jovem líder teve que resolver.


Decisão



Passo 1. Como calcular a duração do desenvolvimento em termos absolutos Havia



muitas ideias, uma delas: fazer uma estimativa com base em tarefas concluídas anteriormente é melhor do que nada, mas:



  • trabalhoso para fazer uma análise retrospectiva sempre
  • Nem todas as tarefas podem ser combinadas com análogos.


E se você não assumir toda a tarefa, mas dividir cada um nos componentes finais do trabalho para o nosso sistema (ao longo do artigo, chamaremos o banco de pessoas jurídicas na Internet, canais web + mobile)?



No nosso caso, ficou assim:



  1. Alterar o layout da página
  2. Criação de uma nova página de documento
  3. Finalizando o formulário, exibindo um novo campo de formulário do banco de dados
  4. Controle típico
  5. Controle complexo (algoritmo complexo não trivial)
  6. Extensão de esquema de banco de dados
  7. Script de envio de SMS
  8. Script para envio por assinatura eletrônica


etc. no início das vagas eram cerca de 20 e, como resultado, pouco mais de 80.



Para avaliar a intensidade de trabalho de cada bloco, foi inventada uma unidade - uma unidade padrão de custos de trabalho (CET, s). SET é uma medida abstrata de intensidade de trabalho, não tem significado físico, pode ser chamado como quiser. Através de uma análise retrospectiva (para os últimos 3 meses), nós (eu, o analista de sistema e o líder da equipe) dividimos todas as tarefas em componentes finais e estimamos proporcionalmente a complexidade de cada uma delas (si), o resultado está na tabela (Tabela 1).







Agora podemos avaliar cada tarefa em SETs, por exemplo:



  1. Objetivo: implementar um formulário de feedback na página principal do sistema, que aparece para os clientes que não deram feedback. O formulário exibe:

    • escala de avaliação em forma de estrelas, clicando na qual você pode dar uma avaliação de 1 a 5,
    • um campo de entrada de formato livre com 500 caracteres,
    • o botão enviar, ao clicar no qual os dados são gravados na tabela do banco de dados correspondente, o formulário é fechado sem recarregar a página.
  2. Determinação das ações mais simples, de acordo com a tabela 1.:
    • Criando uma tabela em um banco de dados existente, escrevendo uma lógica de exibição de formulário - 0.2 CET
    • Layout do formulário, 2 campos + verificação de integridade - 1 CET
    • Gravando uma solicitação assíncrona no lado do servidor, gravando uma função do servidor para gravar no banco de dados, - 1 SET
  3. Cálculo da entrada de trabalho em SETs: 1 + 1 + 0,2 = 2,2 CET


Em seguida, foi introduzido o termo produtividade (p), que define a produtividade de cada categoria de desenvolvedor (Tabela 2)







Agora foi possível estimar a duração do desenvolvimento de cada tarefa através da fórmula: vamos







continuar com nosso exemplo



4. Determinação da duração do trabalho de trabalhador da categoria Sénior:

2,2 (CET) / 1,5 (CET / dia) = 1,6 dias

Duração 1,6 dias



Fazemos suposições: tendo desenvolvedores full-stack, apenas um deles está envolvido na solução de cada problema individual.



O Cliente gostou tanto do método de avaliação que se ofereceu para avaliar as restantes etapas do trabalho:



  • esclarecimento dos requisitos
  • planejamento de implementação
  • teste e documentação


em proporção ao tempo de desenvolvimento, foram introduzidos os seguintes coeficientes (Tabela 3):







Agora foi possível estimar a duração de cada etapa:







toda a duração das mudanças no sistema, de acordo com a fórmula:







por exemplo:



4. Determinação da duração do trabalho de um funcionário (analista e desenvolvedor) da categoria Sênior:



0,2 * 2,2 / 1,5 + 0,3 * 2,2 / 1,5 + 2,2 / 1,5 + 0, 2 * 2,2 / 1,5 = 0,3 + 0,44 + 1,6 + 0,3 = 2,64 dias

Duração 2,64 dias





Como resultado, obtivemos uma metodologia bastante compreensível, a assembleia geral (o cliente, eu, o analista de sistemas e o líder da equipe) decidiu experimentá-la, os primeiros resultados serão continuados ...



All Articles