Neo Legibility Effort Model

Giseldo da Silva Neo

Hipótese

A polaridade do sentimento (ou tom) da descrição da User Story, a subjetividade da descrição da User Story e a legibilidade da descrição da da User Story são bons preditores da estimativa de esforço.

Conjunto de dados

Conjunto de dados

O Neo Dataset contém as User Story com seus respectivos Story Points de 34 Projetos de desenvolvimento de software.

issuekey title description storypoints
0 29688087 Update templates for website merge requests Relates to &232 and #6109 \r\n\r\nGoals:\r\n\r... 1
1 29682716 Make sure that we Capture Advanced Search in o... This was raised in the PM & Engineering meetin... 1

Variáveis

As variáveis do conjunto de dados são:

Variável Tipo Preditora ou Rótulo Descrição
issuekey categórica simples - Chave
created data e hora - Data de criação
title texto preditora Título da User Story
description texo preditora Descrição da User Story
storypoints numérico discreto rótulo Story Point da User Story

Transformação

Projeto 7764

A coluna title e description foi transformada em uma única coluna chamada context. As outras colunas foram removidas pois não trazem dados preditivos.

storypoints context
0 1 Update templates for website merge requestsRel...
1 1 Make sure that we Capture Advanced Search in o...
2 1 Propose new IA for Brand and Digital Handbook#...
3 1 Cache `node_modules` for www-gitlab-com pipeli...
4 1 Disable all remaining unnecessary jobs in pipe...

Story Point

Projeto 7764

Detectado presença de outliers.

Outliers

Projeto 7764

Foram removidos os Story Poits com 2 desvios padrão antes e depois da média.

mean = df['storypoints'].mean()
std_dev = df['storypoints'].std()
outlier_cutoff = 2 * std_dev
df_clean = df[(df['storypoints'] >= mean - outlier_cutoff) & (df['storypoints'] < mean + outlier_cutoff)]

Antes da remoção 355 observações. Depois 352 observações.

Story Point (sem outliers)

Projeto 7764

Data frame

Projeto 7764

storypoints context gunning_fog polarity subjectivity
249 2 Community contribution pipelines failThere is ... 7.41 -0.203409 0.276136
250 2 Reapply redirects in pipeline for testing manu... 10.11 0.159864 0.403912
251 1 Add a visual element on Handbook pages to diff... 11.00 0.143325 0.418265
252 1 Add A beginner's guide to GitOps ebook to topi... 9.05 0.155500 0.423587
253 1 Commit disable scholarship apply buttonAfter t... 10.64 0.000000 0.000000

TF-IDF Model

Projeto 7764

No TF-IDF a coluna context é transformada em uma matriz. Cada palavra é uma coluna dessa matriz. Por isso é interessante o uso de técnicas de pré-processamento de texto (para diminuir o número de palavras que não são relevantes).

Variável Tipo Descrição
context texto título + descrição
storypoint numérico contínuo Story Point da User Story

Neo Legibility

Projeto 7764

Atributos extraídos da User Story (*)

Variável Tipo Descrição
*gunning_fog numérico contínuo Legibilidade da User Story
*polarity numérico contínuo Sentimento da User Story
*subjectivity numérico contínuo Subjetividade da User Story
storypoint numérico contínuo Story Point da User Story

Neo Legibility - Correlação

Projeto 7764

Existe uma correlação fraca entre gunning_fog e os storypoints.

<AxesSubplot: >

Resultado comparação entre os MAE dos modelos

Projeto 7764

O Modelo que tem o menor MAE (erro médio absoluto) é o Neo Legibility.

Resultado Final

Contador de quantas vezes o Neo Legibility teve um MAE menor em cada um dos projetos.