• Nenhum resultado encontrado

ANÁLISE DO GERENCIAMENTO DE PROJETOS DE DESENVOLVIMENTO DE SOFTWARE: ESTUDO DE CASO EM DUAS EMPRESAS DA REGIÃO CENTRO-OESTE DE MINAS GERAIS

N/A
N/A
Protected

Academic year: 2022

Share "ANÁLISE DO GERENCIAMENTO DE PROJETOS DE DESENVOLVIMENTO DE SOFTWARE: ESTUDO DE CASO EM DUAS EMPRESAS DA REGIÃO CENTRO-OESTE DE MINAS GERAIS"

Copied!
69
0
0

Texto

(1)

INSTITUTO FEDERAL

DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA Minas Gerais

Campus Bambuí

ANÁLISE DO GERENCIAMENTO DE PROJETOS DE DESENVOLVIMENTO DE SOFTWARE : ESTUDO DE CASO EM DUAS EMPRESAS DA REGIÃO CENTRO-OESTE DE MINAS GERAIS

Isabella Regina Campos de Faria

Bambuí - MG 2019

(2)
(3)

Isabella Regina Campos de Faria

ANÁLISE DO GERENCIAMENTO DE PROJETOS DE DESENVOLVIMENTO DE SOFTWARE : ESTUDO DE CASO EM DUAS EMPRESAS DA REGIÃO CENTRO-OESTE DE MINAS GERAIS

Monografia apresentada ao Curso de Enge- nharia de Computação do Instituto Federal de Minas Gerais - Campus Bambuí, como requisito parcial para obtenção do título de Bacharela em Engenharia de Computação.

Área de concentração: Gerenciamento de Projetos Orientador: Prof. Me. Eduardo Cardoso Melo

Bambuí - MG 2019

(4)

F224a Faria, Isabella Regina Campos de.

Análise do gerenciamento de projetos de desenvolvimento de software:

estudo de caso em duas empresas da região Centro-Oeste de Minas Gerais. / Isabella Regina Campos de Faria. – 2019.

57 f.; il.: color.

Orientador: Prof. Me. Eduardo Cardoso Melo.

Trabalho de Conclusão de Curso (graduação) - Instituto Federal de Educação, Ciência e Tecnologia de Minas Gerais – Campus Bambuí, MG, Curso Bacharelado em Engenharia de Computação, 2019.

1. Gerenciamento de projetos. 2. Desenvolvimento de software. 3.

Ensino. I. Melo, Eduardo Cardoso. II. Instituto Federal de Educação, Ciência e Tecnologia de Minas Gerais – Campus Bambuí, MG. III.

Título.

CDD 005.1

(5)
(6)
(7)

Àqueles que nunca me deixaram desistir.

Dedico.

(8)
(9)

Agradecimentos

Em primeiro lugar, agradeço a Deus, presença constante em minha vida, por toda força e sabedoria concedidas para percorrer esta longa jornada.

A meus pais, pelas doses diárias de amor e incentivo, por nunca medirem esforços para a realização desse sonho. Aos meus irmãos e demais familiares, pelo apoio, carinho e compreensão em todos os momentos.

Agradeço a todos os professores que contribuíram em minha trajetória acadêmica por todo o conhecimento repassado dentro ou fora de sala.

Em especial, agradeço ao meu orientador, Professor Eduardo Cardoso Melo, a confiança, a paciência e a incansável dedicação.

Às amizades construídas no decorrer do caminho, pelo companheirismo e por todos os momentos de alegria.

Agradeço às empresas por permitirem a realização deste trabalho, e aos colabora- dores, por toda paciência e cooperação.

A todos que contribuíram, direta ou indiretamente, nesta etapa da minha vida:

gratidão!

(10)
(11)

“Façamos da interrupção um caminho novo. Da queda, um passo de dança; do medo, uma escada; do sonho, uma ponte; da procura, um encontro!”

(Fernando Sabino)

(12)
(13)

Resumo

A constante busca pela melhoria nos processos de desenvolvimento de software levou à criação de metodologias específicas para o gerenciamento destes projetos. Apesar dos benefícios da utilização de tais metodologias, a sua implementação envolve mudanças organizacionais e culturais da empresa, fazendo com que elas nem sempre utilizem tais métodos. O gerenciamento de projetos de software é importante para que o sucesso dos projetos seja alcançado na maioria deles. Sendo assim, este trabalho propôs a realização de um estudo de caso em duas empresas de desenvolvimento de software localizadas na região Centro-Oeste de Minas Gerais, com o intuito de identificar se elas realizam o gerenciamento de seus projetos e, ainda, propor melhorias para a organização. Ao final deste estudo, foi possível concluir que a primeira empresa não fazia a gestão de seus projetos, enquanto a segunda utilizava a metodologia ágil Scrum como instrumento de gerenciamento. Como sugestão de adaptações nos processos das empresas, foram recomendadas a inclusão de metodologias para o gerenciamento de projetos e a utilização de modelos de maturidade, permitindo mensurar o grau de evolução no desenvolvimento dos projetos de software.

Palavras-chave: Gerenciamento de projetos. Desenvolvimento de software.

(14)
(15)

Abstract

The constant search for improvement in software development processes led to the creation of specific methodologies for the management of these projects. Despite the benefits of using such methodologies, their implementation involves organizational and cultural changes of the company which leads some companies to not use those methods.

Software design management is important to achieve success in most of the projects.

Thus, this work proposes a case study in two software development companies located in the center-west region of Minas Gerais, in order to identify if the companies carry out management of their projects and also propose improvements to the organization.

With this study, it is possible to conclude that the first company did not manage its projects while the second one used the agile Scrum methodology as an instrument of management. As a suggestion to adaptations in companies’ processes, it was recommended to include methodologies of project management and the use of maturity models, which allows measuring of evolution’s degree in the development of software projects.

Keywords: Project management. Software development.

(16)
(17)

Lista de Figuras

Figura 1 – Solicitações concluídas de acordo com cada mês . . . 53 Figura 2 – Quantidade de dias para a conclusão das solicitações . . . 53

(18)
(19)

Lista de Quadros

Quadro 1 – Áreas de processo do CMMI . . . 33

Quadro 2 – Processos e seus atributos - MPS.BR . . . 35

Quadro 3 – Barema de Avaliação . . . 44

Quadro 4 – Cidades do Centro-Oeste de Minas Gerais . . . 47

Quadro 5 – Pontuação obtida pela Empresa 1 . . . 48

Quadro 6 – Pontuação obtida pela Empresa 2 . . . 48

(20)
(21)

Lista de Abreviaturas e Siglas

AQU - Aquisição

AMP - Avaliação e Melhoria do Processo Organizacional AP - Atributos do Processo

BID - Banco Interamericano de Desenvolvimento CAR - Análise Causal e Resolução

CM - Gerência de Configuração CMM -Capability Maturity Model

CMMI - Capability Maturity Model Integration DAR - Análise de Decisão e Resolução

DFP - Definição do Processo Organizacional DRE - Desenvolvimento de Requisitos

DRU - Desenvolvimento para Reutilização FDD - Feature-Driven Development

FINEP - Financiadora de Estudos e Projetos GCO - Gerência de Configurações

GDE - Gerência de Decisões

GPP - Gerência de Portfólio de Projetos GPR - Gerência de Projetos

GRE - Gerência de Requisito GRI - Gerência de Risco

GRH - Gerência de Recursos Humanos GRU - Gerência de Reutilização

GQA - Garantia de Qualidade

IBGE - Instituto Brasileiro de Geografia e Estatística

(22)

IFMG - Instituto Federal de Educação, Ciência e Tecnologia de Minas Gerais IPD-CMM - Integrated Product Development Capability Maturity Model

IPM - Gerenciamento Integrado de Projeto ITP - Integração do Produto

MA - Medição e Análise

MCTI - Ministério da Ciência, Tecnologia e Inovação MED - Medição

MN - Modelo de Negócio

MPE - Micro e Pequena Empresa

MPS - Melhoria de Processo do Software OPD - Definição de Processo Organizacional

OPF - Foco de Processo Organizacional

OPM - Gerenciamento do Desempenho da Organização OPP - Desempenho de Processo Organizacional

OT - Treinamento Organizacional PCP - Projeto e Construção do Produto

PI - Integração de Produto

PMBOK - Project Management Body of Knowledge PMC - Acompanhamento e Controle de Projeto

PMI - Project Management Institute PP - Planejamento de Projeto

PPQA - Garantia da Qualidade de Processo e Produto QPM - Gerenciamento Quantitativo de Projeto

RD - Desenvolvimento de Requisitos REQM - Gerenciamento de Requisito

RSKM - Gerenciamento de Riscos

(23)

SAM - Gerenciamento de Acordo com Fornecedor

SEBRAE - Serviço Brasileiro de Apoio às Micro e Pequenas Empresas SECM - Systems Engineering Capability Model

SEI -Software Engineering Institute

SIGP - Sistema de Informação de Gerenciamento de Projetos

SOFTEX - Associação para Promoção da Excelência do Software Brasileiro SW-CMM - Capability Maturity Model for Software

TI - Tecnologia da Informação TS - Solução Técnica

VAL - Validação VER - Verificação

XP - Extreme Programming

(24)
(25)

Sumário

1 INTRODUÇÃO . . . . 25 1.1 Justificativa . . . 25 1.2 Objetivos . . . 26 1.2.1 Objetivo geral . . . 26 1.2.2 Objetivos específicos . . . 26 1.3 Organização do trabalho . . . 27 2 FUNDAMENTAÇÃO TEÓRICA . . . . 29 2.1 Gerenciamento de projetos . . . 29 2.2 Projetos de desenvolvimento de software . . . 30 2.3 Modelos de maturidade de processos de software . . . 31 2.4 Metodologias ágeis . . . 36 2.4.1 Extreme Programming . . . 37 2.4.2 Scrum . . . 39 2.4.2.1 Papéis . . . 39 2.4.2.2 Eventos . . . 40 2.4.2.3 Artefatos . . . 41 2.5 Estado da arte . . . 41 3 METODOLOGIA . . . . 43 3.1 Caracterização da pesquisa . . . 43 3.2 Procedimentos metodológicos . . . 43 4 RESULTADOS E DISCUSSÃO . . . . 47 4.1 Seleção das empresas. . . 47 4.2 Empresa 2 . . . 49 4.2.1 Caracterização da Empresa 2 . . . 49 4.2.2 Sugestões de melhoria para a Empresa 2 . . . 50 4.3 Empresa 3 . . . 54 4.3.1 Caracterização da Empresa 3 . . . 54 4.3.2 Sugestões de melhoria para a Empresa 3 . . . 56 5 CONSIDERAÇÕES FINAIS . . . . 59 REFERÊNCIAS . . . . 61

(26)

APÊNDICES 65

APÊNDICE A – RESPOSTAS OBTIDAS APÓS APLICA- ÇÃO DO FORMULÁRIO . . . . 67

(27)

25

1 Introdução

O cotidiano das empresas que atuam no desenvolvimento de software é marcado pelas diversas atividades a serem realizadas, sejam relacionadas ao gerenciamento de processos ou à criação de novos produtos.

Geralmente, os projetos são iniciados sem que sejam definidas as metas e as etapas seguintes, podendo levar a um resultado não esperado. Os projetos possuem duas características principais, que são a temporariedade e a individualidade do produto. A temporariedade significa que os projetos possuem início e fim estipulados, enquanto a individualidade indica que o produto a ser desenvolvido é único e nunca foi confeccionado nas condições atuais. Por isso, é importante que seja feito o gerenciamento do projeto, indicando o que deverá ser realizado no decorrer da produção, pois um projeto de sucesso é aquele que foi desenvolvido de acordo com o seu planejamento (VARGAS, 2018).

A gestão de projetos começou a ganhar o mercado no ano de 1969, quando alguns profissionais da área fundaram o Project Management Institute (PMI), considerado a maior associação de especialistas que visa indicar as melhores práticas de gerenciamento de projetos (PMBOK, 2013).

Os produtos resultantes dos processos de desenvolvimento desoftware começaram a se destacar na sociedade por serem úteis no estilo de vida atual. Para que eles sejam desenvolvidos com sucesso, é necessário que as atividades de desenvolvimento de software, que possibilitarão o alcance dos objetivos, sejam estabelecidas e coordenadas (PRESSMAN;

MAXIM, 2016).

A partir disso, métodos para o desenvolvimento de projetos de software foram criados visando organizar todo o seu processo de elaboração. Atualmente, as metodologias são dividas em dois tipos: tradicional e ágil. Ambas apresentam pontos fortes e fracos, sendo que a metodologia tradicional é indicada para projetos maiores, de alto risco e com uma equipe grande, enquanto os métodos ágeis são mais recomendados para pequenos projetos, com equipe reduzida, baixo risco e pouca ou nenhuma documentação (COSTA et al., 2017).

Sendo assim, o presente trabalho propôs o estudo de duas empresas desenvolvedoras de software localizadas no Centro-Oeste mineiro, com o objetivo de analisar quais práticas de gerenciamento de projetos elas utilizam, além de sugerir intervenções ou adaptações em seus processos.

1.1 Justificativa

Empresas de desenvolvimento de software estão constantemente criando projetos, e o gerenciamento destes favorece o alcance de resultados satisfatórios. Dentre os vários

(28)

26 Capítulo 1. Introdução

processos de desenvolvimento de software, destaca-se a preocupação das organizações em relação ao tempo e ao custo dos projetos.

O gerenciamento do tempo do projeto é essencial para que o produto seja entregue de acordo com os prazos estipulados, já o gerenciamento de custos colabora para que os gastos se mantenham dentro do orçamento previsto.

De acordo com Ventura (2016), empresas que não utilizam gerenciamento de projetos não exibem resultados satisfatórios em relação à entrega de seus produtos. Em média, 42% dos projetos são cancelados antes de serem finalizados; 52% são concluídos, porém ultrapassando seus gastos e extrapolando seus prazos; e apenas 6% dos projetos são concluídos dentro do tempo e orçamento estipulados.

Diante disso, se faz necessário estudar, de forma sistemática, duas empresas de desenvolvimento de software, no intuito de identificar se fazem o uso de práticas de gerenciamento de projetos.

1.2 Objetivos

O presente trabalho possui objetivos geral e específicos, os quais são apresentados nas subseções que seguem.

1.2.1 Objetivo geral

Identificar como as duas empresas de desenvolvimento de software trabalham o gerenciamento de seus projetos, além de sugerir intervenções para melhorias na gestão destes.

1.2.2 Objetivos específicos

• Realizar o levantamento das empresas desenvolvedoras de software existentes na região Centro-Oeste de Minas Gerais;

• Elaborar um questionário a ser aplicado nas empresas;

• Aplicar questionário nas empresas;

• Definir critérios de seleção;

• Selecionar as empresas;

• Estudar como as empresas gerenciam os projetos;

• Consolidar e analisar os dados obtidos;

• Elaborar sugestões de intervenção ou adequações nos projetos das empresas.

(29)

1.3. Organização do trabalho 27

1.3 Organização do trabalho

Este trabalho é composto por cinco capítulos, iniciados pela introdução e con- textualização do estudo proposto. No capítulo seguinte, apresenta-se a fundamentação teórica, composta por conceitos importantes para o entendimento e desenvolvimento desta pesquisa. A metodologia utilizada é exibida no capítulo 3, onde consta o passo a passo para a execução deste trabalho. Em seguida, no quarto capítulo, os resultados e as análises estão disponibilizados. Por fim, as conclusões e as sugestões para trabalhos futuros se encontram no capítulo 5, seguidas pelas referências bibliográficas utilizadas.

(30)

28 Capítulo 1. Introdução

(31)

29

2 Fundamentação Teórica

Este capítulo apresenta o embasamento teórico necessário para o entendimento deste trabalho, distribuído nas seguintes subseções: Gerenciamento de projetos (2.1);

Projetos de desenvolvimento de software (2.2); Modelos de maturidade de processos de software (2.3); e Metodologias ágeis (2.4). Em seguida, é apresentado o Estado da arte (2.5), cuja finalidade é identificar trabalhos cujos temas sejam relacionados à presente

pesquisa.

2.1 Gerenciamento de projetos

Um projeto é definido como um “esforço temporário e distinto de qualquer outra atividade repetitiva” (ESPINHA, 2018). PMBOK (2013) afirma que “a natureza temporária dos projetos indica que eles têm um início e um término definidos”. Já Vargas (2018) define projeto como um empreendimento não recorrente, definido por um conjunto de atividades com início, meio e fim, tendo em vista atingir um objetivo.

Portanto, o gerenciamento de projetos é a “aplicação de conhecimento, habilidades, ferramentas e técnicas às atividades do projeto para atender aos seus requisitos” (PMBOK, 2013). Outra definição é apresentada abaixo:

O gerenciamento de projetos é um conjunto de ferramentas que permi- tem que a empresa desenvolva um conjunto de habilidades, incluindo conhecimento e capacidades individuais, destinado ao controle de eventos não repetitivos, únicos e muitas vezes complexos, dentro de um cenário de tempo, custo e qualidade predeterminados (VARGAS, 2018).

Com o intuito de fornecer diretrizes para o gerenciamento de projetos, o PMI criou o Guia do Conhecimento em Gerenciamento de Projetos, mais conhecido por Guia PMBOK, que descreve um modelo de ciclo de vida do projeto e seus respectivos processos.

No Guia PMBOK (2013), são identificados 47 processos de gerenciamento, divididos em dez áreas de conhecimento. Cada área apresenta um conjunto de conceitos, termos e atividades. As áreas são: Gerenciamento da integração; Gerenciamento de escopo;

Gerenciamento de custos; Gerenciamento de qualidade; Gerenciamento das aquisições;

Gerenciamento de recursos humanos; Gerenciamento das comunicações; Gerenciamento de risco; Gerenciamento de tempo; e Gerenciamento das partes interessadas.

É importante determinar o que são os gerenciamentos de tempo e custos, pois se referem a duas preocupações dos gestores na maioria dos projetos de desenvolvimento de software.

O gerenciamento de tempo do projeto inclui sete processos necessários para que este seja finalizado no tempo proposto, que são:

(32)

30 Capítulo 2. Fundamentação Teórica

• Planejar e gerenciar o cronograma: estabelecer os procedimentos e a documentação necessários para a execução do projeto;

• Definir as atividades: identificar as ações a serem executadas;

• Sequenciar as atividades: identificar o relacionamento entre as atividades do projeto;

• Estimar os recursos das atividades: estabelecer os tipos de recursos necessários para realizar cada atividade;

• Estimar as durações das atividades: estabelecer o tempo necessário para realizar cada uma;

• Desenvolver o cronograma: criar o cronograma do projeto baseado nas sequências de atividades, durações e recursos;

• Controlar o cronograma: monitorar o andamento das atividades.

Já o gerenciamento de custos refere-se a quatro processos de modo que o projeto seja finalizado dentro do orçamento estimado. Estes são:

• Planejar o gerenciamento dos custos: estabelecer os procedimentos e a documentação para o planejamento e controle dos custos do projeto;

• Estimar os custos: definir uma estimativa dos recursos necessários;

• Determinar o orçamento: estipular os custos estimados para estabelecer o orçamento autorizado;

• Controlar os custos: monitor o andamento do projeto para atualização no seu orçamento.

2.2 Projetos de desenvolvimento de software

O processo de desenvolvimento de software possui várias etapas básicas, que incluem levantamento de requisitos, análise de requisitos, projeto, implementação, testes e implantação. Para que ele apresente um resultado satisfatório, é necessário o seu gerenciamento, visando controlar, coordenar e realizar atividades pertinentes à construção dosoftware (ANDRADE; TAIT, 2012).

Andrade e Tait (2012) ainda afirmam que a gestão de projetos desoftware configura- se como uma integração de aspectos tanto organizacionais como técnicos, por agrupar conceitos de gerenciamento de projetos gerais com elementos específicos da área de desenvolvimento desoftware.

(33)

2.3. Modelos de maturidade de processos de software 31

2.3 Modelos de maturidade de processos de software

PMBOK (2013) afirma que maturidade é “o nível de habilidade de uma organização de entregar os resultados estratégicos desejados de maneira previsível, controlável e confiável”. Já Vieira (2016) define maturidade como a capacidade da organização em gerenciar seus projetos com sucesso. Portanto, um modelo de maturidade em processos é um conjunto de níveis sucessivos que buscam a melhoria contínua das etapas do projeto.

É importante evidenciar dois modelos de maturidade que são muito utilizados:

o Capability Maturity Model Integration (CMMI) e o Melhoria do Processo de Software Brasileiro (MPS.BR). Ambos possuem diferentes níveis de maturidade que são disponibili- zados para mensurar o grau de progresso atingido por uma organização no processo de desenvolvimento de software.

O primeiro é o Capability Maturity Model Integration (CMMI), criado em 1998 pelo SEI (Software Engineering Institute) da Carnegie Mellon University. Este modelo surgiu como um avanço do Capability Maturity Model (CMM) e é um combinado de três outros modelos: Capability Maturity Model for Software (SW-CMM), Systems Engineering Capability Model (SECM) eIntegrated Product Development Capability Maturity Model (IPD-CMM). O CMMI possui foco em processo de desenvolvimento desoftware enfatizando

as atividades de definição, especificação e teste (TIOSSI; GASPARATO, 2017).

De acordo com Sotille (2014), o CMMI apresenta os níveis de maturidade, que indicam o grau de evolução em que a organização se encontra, e as áreas de processos, que são o agrupamento de práticas que satisfazem um grupo de metas necessárias à melhoria da área em questão.

Segundo Luz, Lopes e Silva (2016), os níveis de maturidade são:

• Nível 1 - Inicial: os processos são desorganizados, imprevisíveis e reativos;

• Nível 2 - Gerenciado: os projetos têm seus requisitos gerenciados, onde ocorre o seu planejamento, medição e controle;

• Nível 3 - Definido: os processos estão claramente definidos, e os procedimentos se encontram padronizados;

• Nível 4 - Gerenciado Quantitativamente: a gestão é feita com bases quantitativas, onde são estabelecidas metas de qualidade e quantidade;

• Nível 5 - Otimizado: ocorre a melhoria contínua dos processos.

Em cada nível de maturidade, são aplicadas algumas áreas de processos, exceto no nível 1, pois representa um procedimento indefinido. De acordo com Machado e Paula (2017), o CMMI possui 22 áreas de processos, descritas a seguir:

• Gerenciamento de Requisitos (REQM): identifica, analisa e valida os requisitos;

(34)

32 Capítulo 2. Fundamentação Teórica

• Planejamento de Projeto (PP): define o escopo do projeto com base na análise de requisitos;

• Acompanhamento e Controle de Projeto (PMC): monitora o projeto para que aconteça como planejado;

• Gerenciamento de Acordo com Fornecedor (SAM): gerencia a compra de produtos e serviços necessários;

• Medição e Análise (MA): coleta dados dos processos e cria métricas para os projetos;

• Garantia da Qualidade de Processo e Produto (PPQA): garante que o processo esteja de acordo com os padrões da empresa e que o produto tenha a qualidade desejada;

• Gerência de Configuração (CM): controla a versão do código-fonte e as mudanças necessárias;

• Desenvolvimento de Requisitos (RD): processo definido para controlar, analisar e documentar os requisitos;

• Solução Técnica (TS): desenvolve soluções para os requisitos utilizando técnicas de codificação, design e arquitetura de software;

• Integração de Produto (PI): define partes independentes do produto e integrá-las para construir o produto final;

• Verificação (VER): garante que o produto satisfaça os requisitos preestabelecidos;

• Validação (VAL): valida se o produto cumpre o esperado;

• Foco de Processo Organizacional (OPF): encontra possíveis melhorias nos processos;

• Definição de Processo Organizacional (OPD): estabelece um grupo de processos organizacionais;

• Treinamento Organizacional (OT): treinamento para a equipe visando melhorar a realização das tarefas;

• Gerenciamento Integrado de Projeto (IPM): estabelece e gerencia o projeto, bem como o ambiente de stakeholders1 relevantes, de acordo com os processos padrões da organização;

• Gerenciamento de Riscos (RSKM): identifica e busca minimizar os riscos associados ao projeto;

1 Partes interessadas no projeto.

(35)

2.3. Modelos de maturidade de processos de software 33

• Análise de Decisão e Resolução (DAR): utiliza técnicas para definir possíveis decisões e os motivos da escolha;

• Desempenho de Processo Organizacional (OPP): realiza uma comparação de desem- penho entre as equipes participantes do projeto;

• Gerenciamento Quantitativo de Projeto (QPM): gerencia quantitativamente os processos do projeto;

• Gerenciamento do Desempenho da Organização (OPM): ocorre a gestão do desem- penho organizacional visando satisfazer às necessidades comerciais;

• Análise Causal e Resolução (CAR): identifica a causa da ocorrência de erros e define métodos para evitá-los no futuro.

Quadro 1 – Áreas de processo do CMMI Níveis de maturidade Áreas de processo

Nível 1 – Inicial Não possui nenhuma área de processo

Nível 2 – Gerenciado

Gerenciamento de Requisitos (REQM) Planejamento de Projeto (PP)

Acompanhamento e Controle de Projeto (PMC) Gerenciamento de Acordo com Fornecedor (SAM)

Medição e Análise (MA)

Garantia da Qualidade de Processo e Produto (PPQA) Gerência de Configuração (CM)

Nível 3 – Definido

Desenvolvimento de Requisitos (RD) Solução Técnica (TS)

Integração de Produto (PI) Verificação (VER)

Validação (VAL)

Foco de Processo Organizacional (OPF) Definição de Processo Organizacional (OPD)

Treinamento Organizacional (OT) Gerenciamento Integrado de Projeto (IPM)

Gerenciamento de Riscos (RSKM) Análise de Decisão e Resolução (DAR) Nível 4 – Gerenciado

Quantitativamente Desempenho de Processo Organizacional (OPP) Gerenciamento Quantitativo de Projeto (QPM) Nível 5 – Otimizado Gerenciamento do Desempenho da Organização (OPM)

Análise Causal e Resolução (CAR) Fonte: Adaptado de Machado e Paula (2017).

O Quadro 1 foi construído para possibilitar uma melhor observação das áreas de processo de acordo com cada nível.

(36)

34 Capítulo 2. Fundamentação Teórica

O outro modelo de maturidade, denominado Melhoria do Processo de Software Brasileiro (MPS.BR), foi criado em 2003 e é coordenado pela Associação para Promoção da Excelência doSoftware Brasileiro (SOFTEX), que conta com o apoio do Ministério da Ciência, Tecnologia e Inovação (MCTI), da Financiadora de Estudos e Projetos (FINEP), do Serviço Brasileiro de Apoio às Micro e Pequenas Empresas (SEBRAE) e do Banco Interamericano de Desenvolvimento (BID) (SOFTEX, 2016b).

Softex (2016b) ainda afirma que o programa MPS.BR possui cinco componentes:

Modelo de Referência MPS paraSoftware(MR-MPS-SW), Modelo de Referência MPS para Serviços (MR-MPS-SV), Modelo de Referência MPS para Gestão de Pessoas (MRMPS- RH), Método de Avaliação (MA-MPS) e Modelo de Negócio (MN-MPS). Seu objetivo é melhorar a capacidade do desenvolvimento desoftware, serviços e práticas de gestão.

Este modelo possui mais níveis de maturidade que o CMMI, totalizando sete.

Segundo Luz, Lopes e Silva (2016), a escala de maturidade inicia no nível G e progride até o nível A. Os níveis de maturidade estão listados a seguir:

• Nível A - Em otimização: há preocupação com a inovação na área de desenvolvimento dos projetos;

• Nível B - Gerenciado quantitativamente: avalia o desempenho dos processos e os gerencia quantitativamente;

• Nível C - Definido: ocorre o gerenciamento de riscos para que o processo seja considerado definido;

• Nível D - Largamente definido: possui foco em verificação, validação, liberação, instalação e integração dos produtos;

• Nível E - Parcialmente definido: acontece a melhoria e o controle do processo organizacional;

• Nível F - Gerenciado: institui controles de medição, gerência de configuração, conceitos sobre aquisição e garantia da qualidade;

• Nível G - Parcialmente gerenciado: estágio inicial do processo, onde se inicia o gerenciamento de requisitos e projetos.

De acordo com Softex (2016b), dentro de cada nível de maturidade, existe a capacidade de processos, que é um dos principais aspectos para o nivelamento das empresas, sendo representada por atributos de processos. No Quadro 2, construído com base no que é dito por Martins et al. (2016), é possível identificar os processos e seus atributos de acordo com cada nível de maturidade.

(37)

2.3. Modelos de maturidade de processos de software 35

Quadro 2 – Processos e seus atributos - MPS.BR

Níveis de maturidade Processos Atributos do

Processo

Nível A - Em otimização Não possui processos específicos

AP 1.1, AP 2.1, AP 2.2, AP 3.1, AP 3.2, AP 4.1, AP 4.2, AP 5.1

e AP 5.2 Nível B - Gerenciado

quantitativamente Gerência de Projetos (GPR)

AP 1.1, AP 2.1, AP 2.2, AP 3.1, AP 3.2, AP 4.1

e AP 4.2 Nível C – Definido

Gerência de Riscos (GRI) Desenvolvimento para Reutilização

(DRU)

Gerência de Decisões (GDE)

AP 1.1, AP 2.1, AP 2.2, AP 3.1

e AP 3.2

Nível D - Largamente definido

Verificação (VER) Validação (VAL)

Projeto e Construção do Produto (PCP)

Integração do Produto (ITP) Desenvolvimento de Requisitos (DRE)

AP 1.1, AP 2.1, AP 2.2, AP 3.1

e AP 3.2

Nível E - Parcialmente definido

Gerência de Projetos (GPR) Gerência de Reutilização (GRU) Gerência de Recursos Humanos (GRH)

Definição do Processo Organizacional (DFP)

Avaliação e Melhoria do Processo Organizacional (AMP)

AP 1.1, AP 2.1, AP 2.2, AP 3.1

e AP 3.2

Nível F – Gerenciado

Medição (MED)

Garantia de Qualidade (GQA) Gerência de Portfólio de Projetos

(GPP)

Gerência de Projetos (GPR) Gerência de Configurações (GCO)

Aquisição (AQU)

AP 1.1, AP 2.1 e AP 2.2

Nível G - Parcialmente

gerenciado Gerência de Requisitos (GRE)

Gerência de Projetos (GPR) AP 1.1 e AP 2.1 Fonte: Adaptado de Martins et al. (2016).

Os atributos do processo são descritos abaixo, de acordo com Softex (2016b):

• AP 1.1 – O processo é executado;

• AP 2.1 – A execução do processo é gerenciada;

• AP 2.2 – Os produtos de trabalho do processo são gerenciados;

(38)

36 Capítulo 2. Fundamentação Teórica

• AP 3.1 – O processo é definido;

• AP 3.2 – O processo está implementado;

• AP 4.1 - O processo é objeto de análise quantitativa;

• AP 4.2 – O processo é controlado quantitativamente;

• AP 5.1 - O processo é objeto de melhorias incrementais e inovações;

• AP 5.2 – O processo é objeto de implementação de melhorias inovadoras e incremen- tais.

2.4 Metodologias ágeis

Em meados da década de 1990, novos processos para o desenvolvimento desoftware surgiram, criando métodos com maior concordância à atividade realizada, diferentemente dos recursos já existentes, os quais eram considerados pesados por serem sistemáticos, demorados e com excesso de documentos (PRIKLADNICKI; WILLI; MILANI, 2014).

De acordo com Prikladnicki, Willi e Milani (2014), a popularização das novas técni- cas ocorreu no início do ano de 2001, quando receberam a nomenclatura de metodologias ágeis, após dezessete especialistas se reunirem em busca de melhorias no desempenho dos projetos, criando o Manifesto Ágil, onde foram definidos alguns valores e princípios.

Com apenas quatro valores, Beck et al. (2001) afirmam que “mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda”, conforme elencados abaixo:

• “Indivíduos e interação mais que processos e ferramentas”;

• “Software funcionando mais que documentação abrangente”;

• “Colaboração com o cliente mais que negociação de contratos”;

• “Responder a mudanças mais que seguir um plano”.

Complementando os valores acima, a fim de formar um suporte para as metodologias ágeis, Beck et al. (2001) definiram 12 princípios:

1. “Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado”;

2. “Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas”;

3. “Entregar frequentemente software funcionando, de poucas semanas a poucos meses, com preferência à menor escala de tempo”;

(39)

2.4. Metodologias ágeis 37

4. “Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto por todo o projeto”;

5. “Construir projetos em torno de indivíduos motivados. Dando a eles o ambiente e o suporte necessário, e confiando neles para fazer o trabalho”;

6. “O método mais eficiente e eficaz de transmitir informações para e entre uma equipe de desenvolvimento é através de conversa face a face”;

7. “Software funcionando é a medida primária de progresso”;

8. “Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefi- nidamente”;

9. “Contínua atenção à excelência técnica e bom design aumentam a agilidade”;

10. “Simplicidade: a arte de maximizar a quantidade de trabalho não realizado é essencial”;

11. “As melhores arquiteturas, requisitos edesigns emergem de times auto-organizáveis”;

12. “Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então refina e ajusta seu comportamento de acordo”.

Portanto, o Manifesto Ágil defende que o processo de desenvolvimento de software deve ser ajustado de acordo com cada equipe, tendo como única regra a melhoria contínua, buscando aprender com os erros, analisar o que funcionou e fortalecer o que está sendo executado (PRIKLADNICKI; WILLI; MILANI, 2014).

A partir da criação do Manifesto Ágil, as metodologias ágeis foram ganhando espaço e, atualmente, são mais utilizadas que os métodos tradicionais. Dentre as metodologias mais comuns, como Lean Development, Feature-Driven Development (FDD), Extreme Programming (XP) e Scrum, destacam-se as duas últimas como as mais conhecidas e aplicadas. Portanto, serão apresentadas a seguir.

2.4.1 Extreme Programming

Extreme Programming (XP) é uma metodologia conhecida por ser utilizada em projetos pequenos, com duração máxima de 36 meses, equipe reduzida e com requisitos instáveis. Foi criada no ano de 1997 em um projeto para uma fabricante de veículos norte-americana. No nome da metodologia, ressalta-se o fato de que o Extreme indica que são empregadas ao extremo as boas práticas da Engenharia de Software (JEFFRIES et al., 2001).

(40)

38 Capítulo 2. Fundamentação Teórica

De acordo com Jeffries et al. (2001), tal metodologia busca garantir que o cliente sempre receba o máximo de valor de cada dia de trabalho da equipe. Portanto, é baseada em cinco valores fundamentais: feedback, comunicação, simplicidade, respeito e coragem.

A XP é adaptável e dinâmica; todavia, necessita de muita disciplina para que seja aplicada com sucesso em um projeto. Visando definir seu uso, a metodologia possui doze práticas, que são consideradas como ciclos. Segundo Nunes (2017), as boas práticas são:

1. Cliente presente: é fundamental que o cliente participe ativamente do desenvolvimento do projeto, estando presente em todas as etapas.

2. Jogo do planejamento: o cliente coloca, em pequenos cartões, chamados de user story, quais funcionalidades deverão constar no sistema e qual a prioridade para que sejam desenvolvidas, garantindo que a equipe mantenha o foco no que é mais importante para o cliente.

3. Programação em par: dois desenvolvedores escolhem qualuser story irão implementar e fazem a codificação juntos, sendo que o programador com menor experiência assume o controle e conduz a programação, enquanto o outro revisa o código, questiona as decisões e busca soluções mais simples para o problema. Essa prática permite que o código seja constantemente inspecionado e facilita a difusão do conhecimento entre as duplas, nivelando a equipe.

4. Releases curtos: o cliente recebe versões atualizadas do sistema à medida que as interações são concluídas, o que facilita a validação do que está sendo implementado e permite que as alterações sejam identificadas antes da entrega do produto final.

5. Desenvolvimento guiado pelos testes: antes da codificação das funcionalidades, os testes necessários são definidos. Eles são realizados pelos desenvolvedores e pelo cliente antes de validar o software.

6. Refactoring: é realizada a otimização do código-fonte sem que ocorram modificações na funcionalidade, facilitando a leitura e a identificação de erros.

7. Código coletivo: todos os desenvolvedores têm acesso ao código-fonte, podendo modificá-lo ou atualizá-lo, caso seja necessário. Se forem encontrados erros, o código passa pelo processo de refactoring.

8. Código padronizado: para que os desenvolvedores manipulem o código com maior facilidade, são utilizados padrões de codificação.

9. Integração contínua: sempre que determinada funcionalidade estiver finalizada, ela deve ser integrada ao código geral, de forma que as atividades estejam sincronizadas.

(41)

2.4. Metodologias ágeis 39

10. Ritmo sustentável: a equipe deverá trabalhar com qualidade dentro da carga horária prevista, evitando horas extras e sobrecarga de trabalho.

11. Metáfora: a comunicação entre cliente e desenvolvedor deve ser clara, utilizando um vocabulário comum entre eles.

12. Stand Up Meeting: a equipe deverá se reunir todos os dias antes de iniciar as atividades, informando aos colegas o que foi implementado no dia anterior e o que será feito no dia.

Desta forma, a metodologia XP é focada em entregar um produto que atenda às necessidades do cliente, prezando pela qualidade do software, que passa por testes e validações durante todo o processo de desenvolvimento (NUNES, 2016).

2.4.2 Scrum

Desenvolvido no início de 1990 por Ken Schwaber e Jeff Sutherland,Scrum é um framework estrutural que busca melhorias no desenvolvimento de projetos. Seu foco é gerenciar a criação de produtos complexos e flexíveis, sendo considerado leve e de fácil entendimento, porém de difícil domínio (SCHWABER; SUTHERLAND, 2013).

De acordo com Schwaber e Sutherland (2013), a teoria do Scrum para controle de processos é o empirismo, onde o conhecimento é resultado da experiência, aplicando uma abordagem iterativa e incremental para prever, monitorar e reduzir os riscos. Para resultar em uma implementação do controle de processo empírico de sucesso, é indicado que se utilize como apoio a transparência, a inspeção e a adaptação. Estes três pilares, se combinados ao comprometimento, à coragem, ao foco, à transparência e ao respeito, estabelecem a confiança necessária entre todos os membros da equipe.

O funcionamento do Scrum se dá de acordo com as regras, artefatos, eventos e papéis associados ao Time Scrum, os quais estão especificados nas subseções seguintes.

2.4.2.1 Papéis

O framework Scrum é caracterizado por uma pequena quantidade de pessoas, tornando a equipe versátil e autogerenciável, formando juntas, o Time Scrum, divido em três papéis: Product Owner, Scrum Master e Time de Desenvolvimento (SCHWABER;

SUTHERLAND, 2013).

Segundo Schwaber e Sutherland (2013), oProduct Owner é responsável por guiar a equipe em todo o projeto de desenvolvimento do produto. Ele é a única pessoa encarregada por gerir o Product Backlog, indicando e ordenando os itens de acordo com a prioridade, além de garantir que todos da equipe entendam, de forma clara e objetiva, as funcionalidades do produto.

(42)

40 Capítulo 2. Fundamentação Teórica

O Time de Desenvolvimento é formado por um grupo de pessoas que realizam as tarefas definidas no Product Backlog. Os colaboradores devem possuir habilidades necessárias para desenvolver todas as funcionalidades do projeto, sejam elas análises, execuções, implementações ou testes. O Time de Desenvolvimento deve ser constituído por, no mínimo, três e, no máximo, nove integrantes, visto que a equipe deve se manter ágil e capaz de concluir um trabalho que demanda maior esforço (SCHWABER; SUTHERLAND, 2013).

OScrum Master é a pessoa responsável por prestar assistência a todos os papéis do Scrum e à organização. Ele gerencia e organiza os eventos, promove a interação entre os membros da equipe e auxilia na remoção de obstáculos entre eles, além de possibilitar o entendimento de todos sobre a teoria, as práticas, os valores e as regras doScrum, a fim de alcançar os melhores resultados possíveis (SCHWABER; SUTHERLAND, 2013).

2.4.2.2 Eventos

NoScrum, alguns eventos padrões são estabelecidos, visando inspecionar e transpa- recer o desenvolvimento do projeto. Tais eventos possuem um tempo máximo para sua duração e objetivam manter os encontros regulares entre o TimeScrum.

O principal evento do Scrum é conhecido como Sprint e consiste na divisão do processo de desenvolvimento do projeto em ciclos, com duração entre duas e quatro semanas, onde as funcionalidades presentes noProduct Backlog serão construídas. Ao final de cada ciclo, uma nova Sprint é iniciada até que o projeto seja concluído (SCHWABER;

SUTHERLAND, 2013).

A Sprint Planning é outro evento onde todo o Time Scrum se reúne para planejar o trabalho que será realizado na Sprint. Este evento tem duração máxima de oito horas, com o objetivo de definir quais funcionalidades serão desenvolvidas durante aSprint e o que deverá ser feito para concluí-las (SCHWABER; SUTHERLAND, 2013).

A Daily Scrum é uma reunião diária realizada entre o Time de Desenvolvimento com duração de quinze minutos, onde os participantes determinam as atividades a serem realizadas no dia e comentam o que foi feito no dia anterior. Tal reunião promove a melhoria da comunicação entre a equipe e remove prováveis impedimentos no desenvolvimento do produto (SCHWABER; SUTHERLAND, 2013).

A Sprint Review é realizada ao final de cada Sprint, de forma que o Time de Desenvolvimento apresentará as funcionalidades desenvolvidas no período da Sprint, identificando quais impedimentos surgiram e como foram solucionados. OProduct Owner e Scrum Master deverão participar da reunião, garantindo um feedback ao restante da equipe. A duração máxima deste evento é de quatro horas (SCHWABER; SUTHERLAND, 2013).

De acordo com Schwaber e Sutherland (2013), a Sprint Retrospective consiste em um evento para identificar os processos de desenvolvimento do produto que funcionaram,

(43)

2.5. Estado da arte 41

o que pode ser melhorado e quais ações podem ser utilizadas para que a melhoria seja efetivada.

2.4.2.3 Artefatos

Os artefatos do Scrum são elementos desenvolvidos para que as informações sejam difundidas de forma transparente entre todos da equipe, gerando uma documentação ao final do desenvolvimento do projeto.

O primeiro artefato a ser citado é o Product Backlog, que consiste em uma lista contendo todos os requisitos, funções, características, correções e melhorias a serem implementados no produto. O Product Owner é o responsável por esta lista e por priorizar as necessidades do cliente ou demanda do mercado (SCHWABER; SUTHERLAND, 2013).

Schwaber e Sutherland (2013) afirmam que o Sprint Backlog é um grupo de funcionalidades provenientes do Product Backlog, que serão desenvolvidas na Sprint. Neste documento também consta o plano de atividades para a conclusão dos requisitos.

Por último, o artefato chamado de Incremento é considerado como o resultado de todos os esforços do Time de Desenvolvimento. Ao final de cada Sprint, o Incremento deve estar pronto para uso, visto que a funcionalidade foi desenvolvida (SCHWABER;

SUTHERLAND, 2013).

2.5 Estado da arte

Gonçalves, Méxas e Drumond (2016) realizaram um estudo visando identificar as vantagens e desvantagens das práticas sugeridas em modelos e guias voltados para a gerência de projetos. Os autores identificaram 18 vantagens e 9 desvantagens referentes às práticas utilizadas pelo PMBOK e pelo Scrum em projetos de desenvolvimento de software.

Pereira et al. (2012) abordaram uma proposta de um modelo genérico de processo de monitoramento e controle de projetos em Micro e Pequenas Empresas(MPE’s), alinhado ao CMMI e PMBOK. Os autores também realizaram um estudo comparativo das ferramentas de código livre para a gestão de projetos. Como resultado, constatou-se que muitas empresas falham no desenvolvimento de seus projetos de software devido à falta de maturidade de seus processos ou à inexistência de padrões sugeridos pelos modelos e guias de gerenciamento de projetos.

Silva (2017) avaliou o impacto do gerenciamento de riscos no sucesso dos projetos, utilizando, para isso, quinze projetos. A autora também realizou um estudo de caso em uma organização de desenvolvimento de software, objetivando implantar melhorias no processo de gerenciamento de riscos sugeridas pelos modelos de maturidade CMMI e MPS.BR.

Durante o estudo de caso, criou-se um repositório contendo os riscos organizacionais de cinco projetos.

(44)

42 Capítulo 2. Fundamentação Teórica

Palmieri et al. (2018) realizaram uma pesquisa a fim de identificar quais fatores contribuem para a finalização de um projeto de desenvolvimento desoftware cujos custos extrapolam o que foi estimado no início de sua criação. Após estudarem diversos trabalhos existentes na literatura, foi possível constatar que as falhas no gerenciamento de escopo, tempo, qualidade e riscos afetam diretamente o orçamento planejado, sendo tais falhas as principais causas para que os projetos sejam concluídos com custos elevados. Tais resultados são úteis para que os gerentes dos projetos possam desenvolver mecanismos com o intuito de minimizar os erros e alcançar o sucesso ao finalizar o produto.

No trabalho desenvolvido por Bueno e Araujo (2017) foi realizado um estudo de caso em quatro empresas incubadoras, localizadas na cidade de Uberlândia, de forma a identificar como elas faziam o gerenciamento de seus projetos, por meio da aplicação de um questionário, e se utilizavam algum Sistema de Informação de Gerenciamento de Projetos (SIGP) como forma de auxiliar nas decisões. Como resultado, as autoras sugerem melhorias nas organizações, uma vez que as ações e ferramentas utilizadas não atendem completamente às necessidades dos projetos.

As obras descritas anteriormente contêm elementos importantes que contribuem diretamente para o desenvolvimento deste trabalho.

Para facilitar a aplicabilidade do conhecimento da área de processos do PMBOK, definida como gerenciamento de custos nas empresas, é necessário identificar as principais causas dos orçamentos estourados ao final do projeto. O estudo de Palmieri et al. (2018) contribui ao definir tais fatores, de forma a facilitar a inserção do gerenciamento dos custos de maneira correta, corrigindo as falhas e concluindo o projeto com o orçamento dentro do previsto. Ao propor um modelo abrangente para o gerenciamento de projetos em MPE’s, baseado no PMBOK e CMMI, Pereira et al. (2012) conseguiram definir que a falta de maturidade ou a ausência de padrões também interferem na finalização dos projetos dentro dos prazos e custos estimados.

Para o desenvolvimento do estudo realizado por Bueno e Araujo (2017) em quatro empresas incubadoras, as autoras elaboraram um roteiro de entrevista a ser respondido por cada empresa, a fim de caracterizá-las e definir como o gerenciamento dos projetos é realizado. Tal entrevista serviu como base para o desenvolvimento do formulário para a seleção das empresas no presente estudo.

Gonçalves, Méxas e Drumond (2016) identificaram as vantagens e desvantagens de se utilizar o Guia PMBOK e a metodologia ágil Scrum para o gerenciamento de projetos.

Já Silva (2017) mostra a implantação de melhorias no processo de software, atendendo aos modelos CMMI e MPS.BR, de modo a analisar o desenvolvimento de 15 projetos na empresa estudada e verificar o impacto dos fatores de risco no sucesso destes. Desta forma, os estudos realizados por Silva (2017) e Gonçalves, Méxas e Drumond (2016) fornecem atributos necessários para uma implementação do gerenciamento de projetos em micro e pequenas empresas, garantindo maior agilidade para concluir os objetivos pretendidos.

(45)

43

3 Metodologia

Neste capítulo, estão descritos os métodos necessários para o cumprimento dos objetivos descritos no capítulo 1 e a classificação da pesquisa quanto à abordagem, aos objetivos e aos procedimentos técnicos.

3.1 Caracterização da pesquisa

Yin (2015) afirma que o estudo de caso é a verificação de um fenômeno baseada na experiência, compreendendo um método de coleta e análise de dados. Gil (2008) define que o estudo de campo é uma investigação realizada por meio da observação direta das ações e da coleta de dados a partir de entrevistas com as pessoas envolvidas na realidade que se deseja estudar. Portanto, quanto aos procedimentos técnicos, esta pesquisa se caracteriza como estudo de caso e de campo.

Quanto à abordagem, esta pesquisa caracteriza-se como qualitativa, uma vez que os dados analisados não são numéricos e objetivam produzir informações ao invés de quantificar seus resultados (GERHARDT; SILVEIRA, 2009).

No que se refere aos objetivos, esta pesquisa configura-se como exploratória e descri- tiva, pois, de acordo com Marconi e Lakatos (2017), o combinado de estudos exploratórios e descritivos objetiva apresentar, em sua totalidade, determinado acontecimento, de forma que a coleta de informações seja realizada com procedimentos flexíveis e envolva análises empíricas e teóricas.

3.2 Procedimentos metodológicos

A priori, foi produzido o referencial teórico, cujo objetivo é identificar documentos que contribuam para o desenvolvimento do estudo, relacionando os conceitos, as teorias e os modelos encontrados ao tema e ao problema proposto no presente trabalho.

Depois, realizou-se uma pesquisa nosite do IBGE, visando identificar quais cidades fazem parte da região Centro-Oeste de Minas Gerais. Em seguida, efetuou-se o levanta- mento das empresas desenvolvedoras de software cuja matriz esteja localizada em alguma destas cidades, por meio de contatos com as organizações municipais existentes, tais como Câmaras de Dirigentes Lojistas, Associações de Comércio, Prefeitura, dentre outras. As informações obtidas nessa busca foram armazenadas em uma planilha contendo o nome, a localização e o contato das empresas.

Em seguida, elaborou-se um questionário simplificado, baseado em outros modelos já existentes, para obter dados sobre cada empresa, inclusive número de funcionários, ano

(46)

44 Capítulo 3. Metodologia

em que foi fundada e, principalmente, como elas gerenciam o custo e o prazo de seus projetos. A aplicação deste questionário foi feita de forma eletrônica utilizando oGoogle Forms.

Os dados obtidos foram consolidados com a finalidade de escolher uma empresa que servisse de base para a condução do estudo de caso. A proposta era não utilizar como base do estudo uma empresa definida aleatoriamente, que talvez não possuísse um ambiente com características mínimas, no qual a aplicação de técnicas de gerenciamento de projetos pudesse ser observada. O critério de seleção utilizado foi um barema de avaliação, conforme Quadro 3. Dessa forma, cada empresa recebeu uma pontuação, a qual foi dada de acordo com o processo descrito anteriormente. A empresa selecionada foi a que obteve maior pontuação.

Quadro 3 – Barema de Avaliação

Critérios Pontuação

Número de funcionários (maior ou igual a cinco) 5 pontos Número de funcionários na área de desenvolvimento (maior ou igual a três) 5 pontos A empresa faz o gerenciamento de seus projetos utilizando alguma técnica 20 pontos

A empresa documenta as etapas do projeto 20 pontos

Realiza o gerenciamento dos custos dos projetos com auxílio de técnicas 25 pontos Realiza o gerenciamento dos prazos dos projetos com auxílio de técnicas 25 pontos

Fonte: A autora (2018).

Com a empresa já definida, formalizou-se a realização do estudo junto aos seus gestores, garantindo que a identidade da empresa seria mantida em sigilo e que as informações obtidas seriam utilizadas exclusivamente para fins acadêmicos, estando as organizações isentas de qualquer exposição.

Em seguida, realizou-se um estudo de campo visando conhecer mais sobre a meto- dologia utilizada pela empresa para realizar o gerenciamento de seus projetos. Tal estudo foi composto de um levantamento de informações referentes às práticas de gerenciamento dos projetos no ambiente da empresa. Para isso, foram conduzidas entrevistas com os par- ticipantes dos projetos, inclusive com os gestores, objetivando adquirir maior conhecimento sobre os processos da empresa.

Posteriormente, os dados foram analisados a fim de identificar se a gestão dos projetos da empresa estava apresentando resultados satisfatórios. Em seguida, foram elaboradas sugestões de intervenção e adequações nos processos da organização com base em guias, modelos e metodologias de gerenciamento de projetos, para que os custos e prazos dos projetos da empresa sejam gerenciados de forma apropriada.

Conforme consta no Capítulo 4, o estudo realizado na empresa 2 não atendeu aos requisitos do presente trabalho. Como a outra empresa que respondeu ao questionário também não possuía as características necessárias para a realização do estudo, optou-se por

(47)

3.2. Procedimentos metodológicos 45

entrar em contato com a empresa 3 de forma direta, para que fosse possível dar continuidade à realização do trabalho. Destaca-se que tal organização também constava no levantamento de empresas de desenvolvimento de software localizadas na região Centro-Oeste de Minas Gerais, porém não respondeu ao questionário.

Sendo assim, realizou-se um estudo na empresa 3, de forma a identificar dados sobre ela e o gerenciamento de seus projetos. Por meio de entrevistas, foi possível obter as informações necessárias acerca da empresa. Após a análise destas informações, foram sugeridas melhorias para os processos da organização.

(48)

46 Capítulo 3. Metodologia

(49)

47

4 Resultados e discussão

Neste capítulo, são apresentados e discutidos os resultados do presente trabalho, onde estão especificadas a conclusão do processo de seleção das empresas e as suas carac- terísticas, seguidas por recomendações de adaptações nos processos de desenvolvimento de software das organizações.

4.1 Seleção das empresas

Quadro 4 – Cidades do Centro-Oeste de Minas Gerais Cidades

Aguanil Japaraíba

Araújos Lagoa da Prata

Arcos Leandro Ferreira

Bambuí Luz

Bom Despacho Martinho Campos

Bom Sucesso Medeiros

Camacho Moema

Campo Belo Nova Serrana

Cana Verde Oliveira

Candeias Pains

Carmo da Mata Passa Tempo Carmo do Cajuru Pedra do Indaiá Carmópolis de Minas Perdigão

Cláudio Perdões

Conceição do Pará Pimenta

Cristais Piracema

Córrego Danta Piumhi Córrego Fundo Quartel Geral Divinópolis Santana do Jacaré

Dores do Indaiá Santo Antônio do Amparo Doresópolis Santo Antônio do Monte Estrela do Indaiá Serra da Saudade

Formiga São Francisco de Paula Ibituruna São Gonçalo do Pará Igaratinga São Roque de Minas Iguatama São Sebastião do Oeste Itapecerica Tapiraí

Itaúna Vargem Bonita

Fonte: IBGE (2018)

(50)

48 Capítulo 4. Resultados e discussão

Conforme site do IBGE (2018), a região Centro-Oeste de Minas Gerais é composta por 56 cidades, as quais estão especificadas no Quadro 4.

Em seguida, foram identificadas 62 empresas de desenvolvimento desoftware nessa região e seus dados foram armazenados em uma planilha. O formulário desenvolvido para obter os dados das empresas está disponível no APÊNDICE A juntamente com as duas respostas obtidas após o término do prazo determinado para elas responderem ao questionário. Após serem avaliadas, as organizações obtiveram as pontuações conforme os Quadros 5 e 6.

Quadro 5 – Pontuação obtida pela Empresa 1 Empresa 1

Critérios Pont. máxima Pont. obtida

Número de funcionários (maior ou igual a cinco) 5 pontos 5 pontos Número de funcionários na área de desenvolvimento

(maior ou igual a três) 5 pontos 5 pontos

A empresa faz o gerenciamento de seus projetos

utilizando alguma técnica 20 pontos 5 pontos

A empresa documenta as etapas do projeto 20 pontos 0 pontos Realiza o gerenciamento dos custos dos projetos

com auxílio de técnicas 25 pontos 0 pontos

Realiza o gerenciamento dos prazos dos projetos

com auxílio de técnicas 25 pontos 0 pontos

Total de pontos 100 pontos 15 pontos

Fonte: A autora (2018).

Quadro 6 – Pontuação obtida pela Empresa 2 Empresa 2

Critérios Pont. máxima Pont. obtida

Número de funcionários (maior ou igual a cinco) 5 pontos 5 pontos Número de funcionários na área de desenvolvimento

(maior ou igual a três) 5 pontos 5 pontos

A empresa faz o gerenciamento de seus projetos

utilizando alguma técnica 20 pontos 0 pontos

A empresa documenta as etapas do projeto 20 pontos 0 pontos Realiza o gerenciamento dos custos dos projetos

com auxílio de técnicas 25 pontos 5 pontos

Realiza o gerenciamento dos prazos dos projetos

com auxílio de técnicas 25 pontos 5 pontos

Total de pontos 100 pontos 20 pontos

Fonte: A autora (2018).

Para que a empresa escolhida possuísse as características necessárias para a rea- lização do estudo, a pontuação obtida deveria ser de, no mínimo, 60 pontos. Portanto,

(51)

4.2. Empresa 2 49

de acordo com as pontuações alcançadas por elas, constatou-se que nenhuma obteve o mínimo necessário para fazer parte do presente estudo.

Ainda assim, a Empresa 2 foi selecionada por ter alcançado uma pontuação maior que a Empresa 1. Na subseção 4.2, constam a caracterização da Empresa 2 e as sugestões de melhoria em seus processos de gerenciamento de projetos.

Com a finalidade de satisfazer os objetivos deste trabalho, optou-se por contatar uma terceira empresa de forma direta, a qual possui uma estrutura propícia e realiza a gestão de seus projetos. As informações sobre a Empresa 3 e as sugestões de adaptações em seu ambiente estão disponibilizadas na subseção 4.3.

4.2 Empresa 2

As definições das características da Empresa 2 podem ser observadas na subseção 4.2.1, enquanto as sugestões de melhoria estão especificadas na subseção 4.2.2.

4.2.1 Caracterização da Empresa 2

A primeira empresa onde se realizou o estudo, denominada como Empresa 2, existe há 15 anos no mercado e possui sistemas voltados para pequenas empresas, totalizando aproximadamente 40 clientes, dos quais a maioria são indústrias de calçados.

Existem apenas 4 colaboradores na empresa, sendo:

• Proprietário: responsável pela parte administrativa;

• Gerente de TI: atendimento, suporte e relacionamento com o cliente;

• Desenvolvedor: programação dos sistemas;

• Estagiário: atendimento e parte operacional.

Todos os programas que a empresa possui foram desenvolvidos utilizando a lin- guagem de programação Object Pascal, sendo estes programas industriais e comerciais, voltados à emissão de nota fiscal e manifesto eletrônico. Geralmente, o programa comercial é adaptado de acordo com a necessidade, pois, como a produção é genérica, o sistema pode ser utilizado em diferentes segmentos.

Quando ocorrem erros nos sistemas, o reparo é feito o mais rápido possível. Inclusive, o desenvolvimento de novos produtos é paralisado para solucionar os problemas de sistemas já existentes. Muitos clientes entram em contato com a empresa reclamando de algum erro, quando, na verdade, é apenas uma dificuldade do usuário ao utilizar o produto, apesar de estes receberem treinamento durante a implantação do sistema.

(52)

50 Capítulo 4. Resultados e discussão

O fato de o principal sistema emitir a nota fiscal exige que as atualizações obri- gatórias estejam sempre em andamento, visando entregar as funcionalidades no prazo estipulado e sem nenhum erro.

Em relação ao desenvolvimento do último sistema, realizou-se uma reunião com os donos da empresa, o gerente de TI e o programador, onde ficou definido que este programador ficaria por conta do desenvolvimento desse sistema, sem ser interrompido para resolver outros problemas.

Sobre o tempo necessário para o desenvolvimento, o programador definiu o período de um ano e afirmou que, em dois anos, o sistema estaria no mercado. Diferentemente do combinado, ele parava sempre que surgiam outras demandas mais urgentes. Já o custo do sistema foi definido baseado no número de pessoas trabalhando, banco de dados, máquinas utilizadas e tempo gasto.

Por ser uma empresa pequena, o proprietário não considera vantajoso ou necessário fazer a documentação dos projetos, devido ao fato de precisar de um funcionário respon- sável por essa função, que demandaria muito tempo, sendo que a pessoa poderia estar desenvolvendo outras atividades.

Por causa da pequena quantidade de pessoas na equipe, a comunicação entre os colaboradores é feita informalmente, tornando-a mais rápida e fácil.

4.2.2 Sugestões de melhoria para a Empresa 2

Para que os softwares sejam produzidos com mais qualidade, tendo como maior importância a satisfação do cliente com o produto, as empresas estão tentando transformar seus colaboradores em equipes ágeis. Portanto, é necessário que haja uma constatação de que as técnicas utilizadas atualmente não estão conseguindo cumprir os objetivos predefinidos e que sejam adotadas novas metodologias ágeis de gerenciamento de projetos, as quais apresentam mais pontos positivos que negativos para a organização (SOUZA et al., 2014).

De acordo com Moreira (2018), um dos maiores desafios encontrados no processo de implantação de uma metodologia ágil em uma empresa é a conscientização de todos os membros da equipe sobre os benefícios da sua utilização. Por isso, os funcionários devem participar de eventos e treinamentos sobre o tema, visando absorver o máximo sobre a nova cultura a que irão aderir.

Os métodos analisados foram Capability Maturity Model Integration, Extreme Programming, Melhoria do Processo de Software Brasileiro e Scrum. Após analisar o ambiente da empresa, verificou-se que a metodologia ágilScrum era a mais indicada, na qual os projetos são divididos em ciclos.

Para a implantação desta metodologia, é necessário definir qual papel determinado funcionário irá assumir. Paulo et al. (2015), ao incluírem Scrum no dia a dia de uma empresa, notaram que o passo mais importante é a clara definição dos papéis de cada

(53)

4.2. Empresa 2 51

membro da equipe, de forma que os colaboradores não confundam qual função é de sua responsabilidade.

O primeiro papel a ser definido será oProduct Owner, pois é considerado um dos mais importantes para o sucesso do projeto. Para desenvolver tal função, o mais indicado é o gerente de TI, visto que ele já possui prática em no relacionamento com os clientes e em repassar as informações necessárias para o restante da equipe.

Farias (2016) realizou um estudo exploratório em projetos de software e observou que a maioria das empresas faz adaptações na metodologia Scrum, principalmente nos casos em que a equipe é pequena e uma mesma pessoa assume mais de uma função.

Portanto, o papel de Scrum Master também será exercido pelo gerente de TI, ficando responsável por remover quaisquer obstáculos que surgirem entre os membros da equipe e facilitar a comunicação entre eles.

OScrum Team é definido como a equipe de desenvolvimento que, nesse caso, será composta pelo programador e pelo estagiário. Eles serão responsáveis por organizar e distribuir as tarefas de forma que consigam atingir o objetivo final e o trabalho seja desenvolvido.

Inicialmente, na fase de planejamento do produto, o Product Owner trabalhará diretamente com o cliente para definir o Product Backlog, que é uma lista onde constarão todas as funcionalidades que serão implementadas no sistema. Em seguida, o colaborador fará uma reunião inicial com os demais membros da equipe, chamada de Sprint Planning, para que sejam definidos quais requisitos são prioridade. Destes requisitos, o Scrum Team selecionará quais serão implementados em cada Sprint, que terá duração de duas semanas;

prazo estipulado com base nos estudos de Leidemer (2014) e Souza et al. (2014). A cada seleção, tais requisitos deverão ser transferidos do Product Backlog para uma nova lista contendo as tarefas escolhidas pela equipe de desenvolvimento, definida como Sprint Backlog.

Para facilitar a visualização das tarefas necessárias para o desenvolvimento do produto, um quadro será montado na sala de reuniões, contendo três colunas que indicam o estado em que determinada tarefa se encontra: TO DO (para fazer), DOING (fazendo) e DONE (feito). Desta forma, no início do projeto, todas as tarefas serão inseridas na primeira coluna (TO DO) e, à medida que forem desenvolvidas, mudarão de coluna até alcançarem o final (DONE).

Todos os dias, acontecerá uma reunião, denominada Daily Scrum, para que seja feito o acompanhamento e o compartilhamento de informações importantes com os demais membros da equipe, indicando o que foi feito no dia anterior, se há algum obstáculo atrasando a equipe e o que será realizado nas próximas horas de trabalho.

Ao final de cada Sprint, a equipe de desenvolvimento apresentará o que foi im- plementado, verificando se há alterações a serem realizadas no produto e concluindo se o objetivo do ciclo foi alcançado. Essa reunião é chamada de Sprint Review e ocorrerá

Referências

Documentos relacionados

Os eventos de inundação nas duas cavernas, ocasionada pelo aumento do nível do lençol freático e enxurradas durante o período chuvoso permitem que espécies de peixes

Para atingir este fim, foram adotados diversos métodos: busca bibliográfica sobre os conceitos envolvidos na relação do desenvolvimento de software com

ITIL, biblioteca de infraestrutura de tecnologia da informação, é um framework que surgiu na década de mil novecentos e oitenta pela necessidade do governo

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para

Tem como diretrizes, a integração com as políticas e diretrizes das Secretarias Municipais, das Subprefeituras e órgãos equiparados; o incentivo e apoio às

A tabela 25 apresenta os resultados brutos desta avaliação em relação à característica busca e a tabela 26 exibe o resultado ponderado para esta característica.. A tabela 27

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a

The campaign has determined the requirements for procure- ment of reproducible radiopure titanium metal, included an extensive assay campaign of titanium samples (along- side