O que os funcionários estão fazendo? Analisando o software Jira

Rastreador de tarefas como uma boa fonte de dados para gerenciamento estratégico. Parece muito. E na nossa empresa até funciona e é benéfico.



Este artigo é uma extensão do anterior: Automatizando Jira Analytics com Apache NiFi . Agora, quero revelar com mais detalhes nossa visão de relatórios sobre o Jira Software e a experiência de sua implementação usando R. A linguagem aqui, é claro, não é um dogma. Hoje nosso tudo é um conceito. A imagem é emprestada aqui .



imagem










Vamos imaginar um rastreador de tarefas. Que dados posso, como analista, extrair dela? Ou qualquer plataforma de análise de prateleira? O número de tarefas do período, estatísticas de registro, divisão básica em projetos, algumas fotos sobre a produtividade dos funcionários ... e isso é tudo, de improviso.



Mas tudo o que é feito é colocado na gordura. Portanto, você provavelmente pode destacar algo mais global: o que a equipe está fazendo e em que direção está se movendo.



Sim, nós fizemo-lo. No entanto, não foi sem a ajuda de PM primeiro.



Reorganização do rastreador de tarefas



Claro, cada Jira específico é significativamente diferente de qualquer outro. E nossa solução pode não ser a mais eficaz para você, ou mesmo aplicável.



Peço que você considere isso apenas como uma ideia de organizar um rastreador de tarefas, usando o exemplo de nossa empresa de terceirização.



Fizemos apenas dois movimentos.



Primeiro e mais simples. Eles aceitaram que todas as tarefas em uma direção deveriam estar ligadas ao épico , é claro . Os épicos são os maiores objetos em Jira, representando vários problemas. Eles ajudam a construir hierarquia e estrutura e também podem abranger vários sprints e versões.



Um pouco mais sobre o segundo. Seremos capazes de ter uma visão geral e responder a perguntas estratégicas seo workflow será apresentado como uma espécie de fluxo, para o qual cada funcionário contribui . Para isso, em nosso caso, o conceito IT4IT é ideal, com seu modelo operacional baseado em uma cadeia de valor de quatro fluxos: Na verdade, o que fizemos. Aproveitando a IT4IT, adicionamos um componente de tarefa ao Jira. Nós os temos da seguinte forma:

imagem





  • Serviço ao Portfólio (Demanda e Seleção) - fase de “picking”, busca, escolha do serviço, tecnologia.
  • Request to Deploy (Plan and Design) - discussão, planejamento de desenvolvimento, desenvolvimento de serviços, serviços.
  • Request to Deploy (Develop) - desenvolvimento de um serviço, serviço de algo.
  • Request to Deploy (Deploy) - implementação de algo.
  • Solicitação de implantação (teste) - testando um serviço, serviço.
  • Request to Fulfill - fase de operação dos serviços desenvolvidos, prestação dos serviços.
  • Detectar para corrigir (corrigir) - correção, revisão de serviços e serviços internos.
  • Detect to Correct (Monitor & Feedback) - a mesma coisa, apenas + comunicação com o cliente.



Nesta fase, talvez o mais difícil seja convencer os funcionários de que o item extra no rastreador não é à toa e que deve ser preenchido corretamente.



Análise de dados em R



Agora não deve haver obstáculos para a implementação de relatórios. Vou formular a semelhança de TK.



Como no início de cada semana a equipe se reúne para a etapa de planejamento, o relatório deve ser semanal. É importante para nós ver estatísticas sobre o aparecimento e evolução das tarefas, o registo dos colaboradores e a contribuição de cada um deles para o quadro geral. Responda à pergunta: o que a equipe está fazendo - em termos de epopeias e componentes.



Sabendo o que precisamos obter, vamos descarregar os dados. Por meio da API Jira, solicitamos todos os problemas (questões) que foram atualizados na semana passada. Extraímos as chaves deles e carregamos o histórico de registro (log de trabalho) e o histórico de alterações (log de mudanças) para cada tarefa. Perversões com sobrecarga são necessárias para contornar as restrições apish.



Em seguida, inicia-se a área de responsabilidade R, pois o pré-processamento dos dados recebidos é um componente do script de geração de relatórios.



Não há nada de inteligente nisso, você só precisa analisar os JSONs que vieram da api e deixar apenas as propriedades necessárias (itens em Jira). No único momento, ao processar o changelog, estamos apenas interessados ​​nas mudanças de status da tarefa, o resto pode ser excluído com segurança.



E, finalmente, chegamos à análise.



Descobrimos quantas tarefas foram abertas, em andamento, encerradas e adiadas na última semana. Dê uma olhada no código R:



#  

this_week_opened <- jira_changelog_data %>% 
        filter(issue_type != "Epic") %>% 
        filter(as.Date(issue_created) >= start_date) %>% 
        filter(as.Date(issue_created) <= end_date) %>% 
  select(key, issue_created) %>% unique() %>% nrow()

#  

this_week_processed <- jira_worklog_data %>% 
	filter(as.Date(started) >= start_date) %>% 
        filter(as.Date(started) <= end_date) %>% 
  select(key) %>% unique() %>% nrow()

# 

this_week_closed <- jira_changelog_data %>% 
        filter(issue_type != "Epic") %>% 
        filter(as.Date(issue_resolutiondate) >= start_date) %>% 
        filter(as.Date(issue_resolutiondate) <= end_date) %>%
  select(key, issue_created) %>% unique() %>% nrow()

#    / 
 
this_week_holded <- issue_history %>% 
	filter(change_date >= start_date) %>% 
        filter(change_date <= end_date) %>%
	filter(toString == "Hold" | toString == "Backlog") %>% 
  select(key) %>% unique() %>% nrow()




Isso o lembra do pseudocódigo? E se eu disser que o operador ' %>% ' transfere dados da função anterior para a próxima. E a última modificação em toda a cadeia será salva em uma variável. Imagine, acabamos de escalar o limiar de entrada no R!



Você já se apaixonou por ele? Então, se você quiser, acrescentarei mais algumas informações.



Palavras da Wikipedia:

Em geral, como linguagem de programação, R é bastante simples e até primitivo. Sua maior força é a expansão ilimitada com embalagens.



A entrega básica do R inclui um conjunto básico de pacotes e, no total, em 2019, mais de 15.316 pacotes estão disponíveis.


E a última coisa por hoje. Este ano, o R entrou no ranking das dez línguas mais populares do mundo ( prova ). Eu estou orgulhoso dele.



Por favor, me perdoe por este retiro. Posso falar sobre R por horas. É que ele está completamente envolto em mitos e gosto de destruí-los - um hobby, você sabe.



Voltemos ao relatório. Tendo os números necessários, nós os visualizamos. Depois disso, fazemos o registro dos funcionários. É assim que essa parte se parece conosco: Vou continuar mostrando as fotos finais do mesmo relatório real. Nossa linha de negócios está refletida no gráfico a seguir. Também permite que você avalie a carga de trabalho dos funcionários com atividades operacionais. E aqui está uma análise de todas as tarefas por componente. Ele responde à pergunta sobre o que estamos fazendo. Eu complemento a imagem com figuras.



imagem











imagem







imagem



Bem, a contribuição prometida de cada funcionário para o quadro geral dado acima.



Tenho certeza de que você notará imediatamente onde está nosso desenvolvedor e onde está o administrador. Estávamos nos esforçando por essa clareza. O relatório real também é complementado com um resumo do movimento das tarefas. Este é um acréscimo às estatísticas gerais publicadas no início, com os nomes das tarefas e os nomes dos responsáveis.



imagem







Gerando um relatório



Para configurar a geração automática de relatórios, por exemplo, às segundas-feiras a partir de um script R, você pode usar o pacote cronR , é extremamente simples.



Com a gente, tudo é mais complicado e elegante. Usamos Apache NiFi para baixar dados da API Jira semanalmente, executar o script de geração de relatório e enviar um relatório para todos os funcionários por e-mail . Este tópico é tão extenso que merece um artigo separado .



Conclusão



O número de implementações do Jira Software, assim como o número de empresas onde é utilizado, é grande. Ao mesmo tempo, cada chefe precisa de sua própria base de métricas exclusiva para um gerenciamento taticamente correto. Sim, existem eazyBI e outros plug-ins para análises Jira, mas o resultado é como comprar um terno na loja em vez de um personalizado personalizado.



O relatório considerado é costurado de acordo com modelos. Segundo o chefe, proporciona uma visão estratégica do que a unidade ou equipe está fazendo . Espero que este artigo o ajude a implementar algo semelhante em casa.



Obrigado.



All Articles