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:
- Alterar o layout da página
- Criação de uma nova página de documento
- Finalizando o formulário, exibindo um novo campo de formulário do banco de dados
- Controle típico
- Controle complexo (algoritmo complexo não trivial)
- Extensão de esquema de banco de dados
- Script de envio de SMS
- 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:
- 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.
- 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
- 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 ...