20
PROPOSTA DE METODOLOGIA DE DESENVOLVIMENTO DE SOFTWARE BASEADA EM RUP E SCRUM Eduardo Finzi 1 William Chaves de Souza Carvalho 2 Resumo Esse artigo tem como objetivo realizar uma análise do processo tradicional de desenvolvimento de software, RUP, e do processo ágil SCRUM. Será apresentado também um framework híbrido de desenvolvimento baseado no RUP e SCRUM. Tendo em vista os problemas enfrentados pelas fábricas de desenvolvimento de software, o intuito do artigo é expor uma nova metodologia de desenvolvimento que minimize os problemas enfrentados pela gestão de projetos de TI. O artigo apresenta, em sua seção de analise de dados, resultados de comparações de indicadores de projetos, em que o framework foi aplicado e onde não houve aplicação. Nesses resultados, a aplicação do framework na empresa pesquisada gerou uma melhora de 54,6% no indicador de atraso de projetos. Após a utilização do framework, o percentual de atraso que era de 32% caiu para 14,5%. Palavras chave: RUP, Scrum, Processos, Indicadores. 1 Aluno do curso de Especialização em Gestão em Tecnologia da Informação , Turma VI, 2010 2 Professor orientador: William Chaves de Souza Carvalho, curso de Especialização em Gestão em Tecnologia da Informação, Especialista

PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

Embed Size (px)

Citation preview

Page 1: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

PROPOSTA DE METODOLOGIA DE DESENVOLVIMENTO DE SOFTWARE BASEADA EM RUP E SCRUM

Eduardo Finzi1

William Chaves de Souza Carvalho2

Resumo

Esse artigo tem como objetivo realizar uma análise do processo tradicional de

desenvolvimento de software, RUP, e do processo ágil SCRUM. Será apresentado também

um framework híbrido de desenvolvimento baseado no RUP e SCRUM. Tendo em vista os

problemas enfrentados pelas fábricas de desenvolvimento de software, o intuito do artigo é

expor uma nova metodologia de desenvolvimento que minimize os problemas enfrentados

pela gestão de projetos de TI. O artigo apresenta, em sua seção de analise de dados,

resultados de comparações de indicadores de projetos, em que o framework foi aplicado e

onde não houve aplicação. Nesses resultados, a aplicação do framework na empresa

pesquisada gerou uma melhora de 54,6% no indicador de atraso de projetos. Após a

utilização do framework, o percentual de atraso que era de 32% caiu para 14,5%.

Palavras chave: RUP, Scrum, Processos, Indicadores.

1 Aluno do curso de Especialização em Gestão em Tecnologia da Informação , Turma VI, 2010

2 Professor orientador: William Chaves de Souza Carvalho, curso de Especialização em Gestão em

Tecnologia da Informação, Especialista

Page 2: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

2

1. Introdução

Uma tendência cada vez mais adotada pelas empresas é a utilização de processos híbridos,

que reúnem as boas práticas de paradigmas ágeis e tradicionais, sempre alinhados com os

objetivos da empresa. E como ocorre em todas as engenharias, desde a civil até a

aeronáutica, a construção de software também deve seguir rotinas e etapas estabelecidas.

Essas rotinas correspondem aos processos de desenvolvimento de software. O objetivo

deste artigo é apresentar um framework de processo híbrido, baseado em RUP e Scrum,

adotado por uma empresa produtora de software e quantificar os resultados objetivos de sua

utilização. Para isso, realizou-se um estudo de caso numa empresa de desenvolvimento de

software utilizando dados reais de projetos desenvolvidos ao longo de 2011.

Um processo é um conjunto de ações e atividades inter-relacionadas que são realizadas

para atingir um determinado objetivo (PÁDUA FILHO, 2009), que reflete elementos da

estratégia de negócio da empresa. Para que seja útil e eficaz, o processo deve ser definido

com foco na maximização do desempenho dos parâmetros que atendam as expectativas

organizacionais, como produtividade, qualidade ou flexibilidade de mudança.

A indústria de software busca continuamente novas alternativas e processos de

desenvolvimento que minimizem os problemas encontrados na gestão de projetos. Segundo

Gartner, 70% dos projetos falham no cumprimento de cronograma, custos e metas de

qualidade e 50% são executados acima do orçamento (AZEVEDO, 2008).

Desde meados da década de 1990, os processos de desenvolvimento utilizados pelas

empresas de TI podem ser classificados em duas grandes categorias: processos

tradicionais e processos ágeis:

Processos tradicionais de desenvolvimento de software são baseados na aplicação

sistemática de princípios de Engenharia, incluindo as áreas de Qualidade e

Engenharia de Sistemas. Metodologias baseadas em processos tradicionais têm

foco no planejamento e na elaboração de arquiteturas estabilizadas. Seus principais

objetivos são previsibilidade, estabilidade e alta garantia (BOEHM, 2004). Seu

principal representante é o Rational Unified Process (RUP).

Por outro lado, os processos ágeis de desenvolvimento de software remetem ao

ressurgimento da programação como uma arte e não como um processo industrial

(BOHEM, 2004), (COCKBURN, 2000). Diferentemente dos processos tradicionais, os

métodos ágeis enfatizam a importância do planejamento adaptativo, simplicidade e

Page 3: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

3

liberação contínua de software com valor operacional em pequenas iterações com

tempo fixado. São exemplos de métodos ágeis: XP (BECK, 2000), (BECK, 2004),

Scrum (SCHWABER, 1995), (SCHWABER, 2001), FDD (PALMER, 2002) e Lean

(POPPENDIECK, 2003).

Tanto as metodologias baseadas em processos tradicionais quanto as que se fundamentam

em métodos ágeis têm seus pontos fortes e fracos. Enquanto os métodos tradicionais têm

sido recomendados para projetos de larga escala e alto risco, o desenvolvimento ágil tem

se mostrado mais apropriado para projetos de baixo risco e curta duração (RAMSIN, 2008),

(COHEN, 2004), (AMBLER, 2007), (LEFFINGWELL, 2006).

Existem também, na literatura, propostas de abordagens híbridas que incorporam princípios

dos paradigmas ágil e tradicional. Boehm e Turner (BOEHM, 2004) se basearam em

estudos de caso e propuseram um modelo para auxiliar na escolha do paradigma a ser

utilizado em um dado projeto, com base em cinco fatores principais: tamanho do projeto,

número e perfil das pessoas da equipe, criticidade, dinamismo e cultura.

Projetos grandes e críticos podem ser prejudicados pela falta de rigor e previsibilidade do

paradigma ágil, enquanto que projetos pequenos e de baixo risco podem ter um custo e

prazo desnecessariamente elevados pela falta de simplicidade e flexibilidade inerente do

paradigma tradicional, que geralmente impõe procedimentos complexos e documentação

abrangente.

As próximas seções do artigo apresentam os conceitos fundamentais do RUP e do Scrum,

descrevem o processo híbrido proposto e documentam os resultados do estudo de caso e

validação de resultados. Por fim, a seção destinada às considerações finais contém as

conclusões do trabalho.

2. RUP (processo tradicional)

O RUP, abreviação de Rational Unified Process (ou Processo Unificado da Rational), é um

framework de desenvolvimento de software criado pela Rational Software, que atualmente é

uma divisão da IBM. Ele é resultado de técnicas e métodos de analise e projeto orientado a

objetos. A principal meta do processo é aumentar a qualidade (RATIONAL, 2001) no

desenvolvimento de software das empresas de TI que o utilizam. O RUP foi criado de

acordo com os princípios descritos nos próximos tópicos.

Page 4: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

4

2.1. Desenvolvimento iterativo e incremental

O processo criativo de desenvolvimento de software tem por objetivo automatizar alguma

necessidade de negócio. Essa necessidade independe de complexidade. Quanto mais

complexa é a necessidade do negócio, maior será o tempo necessário para o

desenvolvimento de sua automação. Como o prazo para a construção da solução pode

demorar meses ou anos, requisitos de negócio podem ser alterados nesse período.

O gap entre o tempo de desenvolvimento e as alterações dos requisitos de negócio diminui

o percentual de probabilidade de sucesso da automação e, consequentemente, diminui a

aderência da solução às necessidades do usuário. Esses gaps são encontrados em projetos

de longo prazo desenvolvidos utilizando o modelo cascata.

“Dado os atuais sistemas sofisticados de software, não é possível, sequencialmente, primeiro

definir todo o problema, projetar toda a solução, construir o software e, em seguida, testar o

produto no final. Em uma abordagem iterativa, é necessário maior compreensão do problema

através de refinamentos sucessivos, e gradativos, construindo uma solução eficaz em várias

iterações. O Rational Unified Process suporta uma abordagem iterativa para o

desenvolvimento que atende os itens de maior risco em todas as fases do ciclo de vida,

reduzindo significativamente o perfil de um projeto de risco. Essa abordagem iterativa ajuda

a atacar o risco através de demonstrações frequentes dos progressos, entrega de executáveis

que permitem a participação do usuário final e contínuo feedback. Como cada iteração termina

com uma versão executável, a equipe de desenvolvimento se mantém focada em produzir

resultados, e status reports frequentes ajudam a garantir que o projeto permaneça dentro do

cronograma. Uma abordagem iterativa também torna mais fácil para acomodar as mudanças

em requisitos, funcionalidades ou cronograma (PROCESS, 2001).”

2.2. Orientado a casos de uso

De acordo com Ivan Jacobson, caso de uso é um documento narrativo que descreve a

sequência de eventos de um ator que usa um sistema para completar um processo

(RATIONAL, 2001). O RUP é orientado a casos de uso, pois todas suas disciplinas do

processo de desenvolvimento: tais como analise e projeto; implementação; teste utilizam os

casos de uso como base.

2.3. Centrado na arquitetura

A arquitetura de um software pode ser comparada a arquitetura de uma construção civil.

Enquanto em uma residência temos os cômodos da casa com utilidades diferentes, em uma

Page 5: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

5

aplicação temos componentes responsáveis por realizar funcionalidades diferentes. Tanto

uma casa, quanto um software necessitam de uma arquitetura estável para que mudanças

possam se realizadas sem afetarem grandes problemas. O RUP foca na produção da

arquitetura básica nas primeiras iterações. A arquitetura do sistema deve ser estabilizada ao

final da fase de elaboração e servira de alicerce para o desenvolvimento restante.

2.4. Fases e Disciplinas

O ciclo de vida do RUP é dividido nas seguintes fases:

Quadro 1 - Fases e Marcos do Ciclo de Vida RUP

FASE MARCO

Iniciação Objetivos do ciclo de vida: Inicio do projeto

Elaboração Arquitetura do ciclo de vida: Estabilização

Construção Capacidade operacional inicial: Desenvolvimento da solução

Transição Lançamento do produto: Entrega da solução

Fonte: (RATIONAL, 2001)

As atividades do processo RUP são agrupadas em nove disciplinas: Modelagem de negócio,

Requisitos, Análise e Projeto, Implementação, Teste, Implantação, Gerenciamento de

Configuração e Mudança, Gestão de Projeto e Ambiente.

As empresas que utilizam este framework geralmente o customizam a fim de aumentar a

qualidade e produtividade no desenvolvimento de software, sem muita rigidez. Para se obter

o melhor resultado na utilização do processo customizado, são necessários estudos

referentes a necessidade da empresa e provas de conceito para aplicação e

acompanhamento dos resultados.

A figura a seguir ilustra a inter-relação das fases e disciplinas de acordo com o preconizado

pelo RUP:

O eixo horizontal representa as Fases, ou seja, o tempo. Ele mostra os aspectos do

ciclo de vida do processo.

O eixo vertical representa as disciplinas.

Figura 1 - Fases e Disciplinas do RUP

Page 6: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

6

Fonte: (POLLYSOFT, 2009)

Na próxima seção, será descrito o framework de desenvolvimento ágil Scrum.

3. SCRUM (processo ágil)

Scrum é um framework focado em práticas de gestão para desenvolvimento ágil de

software. O framework Scrum utiliza um conjunto de Scrum teams, profissionais, time-boxes

(eventos com tempo fixado), artefatos e regras. Ele organiza o desenvolvimento de software

em iterações de 2 a 4 semanas chamadas Sprints.

Schwaber e Sutherland definem que Scrum teams são concebidos para otimizar flexibilidade

e produtividade. Para esta finalidade, eles são auto-organizáveis, multifuncionais e

trabalham em iterações. Cada Scrum teams utiliza profissionais de três papéis distintos:

ScrumMaster: responsável por assegurar que o processo seja e seguido;

Product Owner, responsável por maximizar o valor do trabalho realizado; e

Equipe (Team) formada por desenvolvedores que possuem as habilidades

necessárias para transformar os requisitos do Product Owner em funcionalidades.

Uma visão pictórica do fluxo do ciclo de vida da construção de software baseado em Scrum

é mostrada na Figura a seguir.

Figura 2 - Scrum - fluxo de construção

Page 7: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

7

Fonte: (DADOSWEB, 2012)

Quatro principais artefatos são empregados pelo Scrum. O Product Backlog é uma lista

priorizada de tudo o que se necessita para o produto. O Sprint Backlog é uma lista de

tarefas para transformar o Product Backlog de uma Sprint em um incremento de produto

potencialmente liberável (release parcial) (SCHWABER, 2011).

O Release Burndown mede o Product Backlog realizado e não realizado no tempo, para um

planejamento de release. Um Sprint Burndown mede o Sprint Backlog realizado e não

realizado no tempo, para uma Sprint (SCHWABER, 2011)..

Regras vinculam time-boxes, papéis e artefatos. Um exemplo de regra é que apenas

membros da Equipe (Team) – as pessoas comprometidas em converter o Product Backlog

em um incremento – podem falar durante uma reunião Daily Scrum.

3.1. Time Scrum

O time Scrum é composto pelo Product Owner, Time de desenvolvimento e o Scrum Master.

O Product Owner é o dono do produto. Ele é responsável por maximizar o retorno do

produto e gerenciar o artefato Product Backlog.

O Time de desenvolvimento é responsável em transformar os requisitos do Product Backlog

em funcionalidades do produto ao final de uma Sprint. O time é responsável por gerenciar

suas próprias atividades. No framework Scrum não existe um Gestor de Projeto responsável

por gerenciar o prazo, custo e riscos do projeto. O Scrum Master é responsável por fazer

com o framework seja entendido e aplicado. Outra responsabilidade importante desse papel

é retirar os impedimentos da equipe de desenvolvimento.

Page 8: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

8

3.2. Eventos

O Scrum possui eventos de duração definida para controlar o fluxo de desenvolvimento de

software: Sprint; Daily Scrum; Sprint Review; Sprint Retrospective; Sprint Planning Meeting;

Release Planning Meeting. Sprint é um período de 2 a 4 semanas em que a equipe de

desenvolvimento produz um incremento utilizável do produto. Toda Sprint utiliza o mesmo

framework, de forma iterativa e incremental. Ao final de cada Sprint, caso ainda existam

itens do Product Backlog a serem consumidos, outra Sprint é iniciada.

3.3. Artefatos

O Scrum possui quatro principais artefatos: Product Backlog, Sprint Backlog, Release

Burndown e Sprint Burndown. O Product Backlog é uma lista de itens priorizada contendo os

requisitos necessários para o Produto. O Sprint Backlog é uma lista de tarefas para

transformar alguns itens priorizados do Product Backlog em um incremento do produto no

final da Sprint. O Release Burndow mede a quantidade de itens realizados e não realizados

do Product Backlog em relação ao tempo. Ele é necessário para o planejamento de uma

release. O Sprint Burndown mensura a quantidade de tarefas realizadas e não realizadas do

Sprint Backlog em relação ao tempo. Ele é necessário para o planejamento de uma Sprint.

4. Framework de desenvolvimento de software proposto

Esta seção apresenta o framework híbrido proposto por uma empresa de TI de médio porte

da região do Triangulo Mineiro. Ele consolida boas práticas tanto do RUP quanto do Scrum,

e foi desenvolvido após estudos e adaptações feitas a partir destes dois processos.

A empresa na qual foi o realizado o estudo de caso atua com projetos de TI de médio a

grande porte – cerca de 8.000 hs de projeto –, e como a maioria das empresas de TI, ela

apresenta problemas clássicos de gestão de projeto: falhas de orçamento, prazo e

qualidade. Após exaustiva análise pelo profissionais, estes três parâmetros foram escolhidos

para ser alvo de pesquisas e investimentos, de forma a minimizar os problema.

No início de 2009 a empresa adotou o processo de desenvolvimento ágil Scrum. Até aquele

momento, não existia um processo formal de desenvolvimento de software definido. Os

projetos internos de curto prazo, escopo reduzido e baixa complexidade apresentaram os

resultados esperados após a implantação do Scrum.

Page 9: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

9

Mesmo no período em que a empresa utilizava o processo Scrum, as atividades de

arquitetura eram desenvolvidas por um profissional que possuía experiência nas tecnologias

adotadas e regras de negócio. No entanto, neste período, o este papel não era formalizado.

A partir da adoção do framework híbrido, o papel de arquiteto foi formalizado e respectivas

atribuições foram bem definidas.

No entanto, observou-se que os projetos desenvolvidos para clientes externos, com prazo

de grande duração e alta complexidade, mantiveram os mesmos resultados negativos de

antes da implantação do Scrum. Com base neste cenário foi concebido um projeto de P&D

para estudo e elaboração e uma nova metodologia de desenvolvimento de software que se

alinhasse aos objetivos da empresa e reduzisse os problemas encontrados na gestão

desses projetos.

Tomando como referência o processo tradicional (RUP) e o processo ágil (Scrum), o

framework proposto possui as características citadas no quadro a seguir:

Quadro 2 – Principais características do framework híbrido

DESCRIÇÃO PROCESSO

O processo é executado em iterações e a cada iteração são

acrescentadas novas funcionalidades ao produto

SCRUM e RUP

As fases do ciclo de vida são: iniciação, construção e transição RUP

As atividades do processo são agregadas em cinco disciplinas RUP

Baseado em papéis bem definidos SCRUM e RUP

Fonte: (FINANCES, 2009)

4.1. Fases

O ciclo de vida proposto para o projeto é estruturado nas seguintes fases:

Quadro 3 - Fases e Marcos do Ciclo de Vida do framework híbrido

FASE MARCO

Iniciação Objetivos do ciclo de vida: Inicio do projeto

Construção Capacidade operacional inicial: Desenvolvimento da solução

Transição Lançamento do produto: Entrega da solução

Fonte: (FINANCES, 2009)

Page 10: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

10

Uma visão do fluxo de desenvolvimento de um software que utiliza o framework proposto é

mostrado na figura a seguir:

Figura 3 - Visão Geral do Processo

Fonte: (FINANCES, 2009)

A fase de Iniciação esta destacada com um retângulo de cor amarela. Ela é descrita como

Fase de Concepção do Produto. Nessa etapa, o Product Owner (PO) em conjunto com os

stakeholders do projeto, elaboram a Visão do Produto e seu Product Backlog. Com base

nesses artefatos, o PO elabora o plano de retorno de investimento do projeto. Ao final dessa

fase, é feita a definição do início ou interrupção do projeto.

A fase de construção está destacada com um retângulo de cor bege. Ela é totalmente

gerenciada em termos de sprints. Em cada Sprint é feito o planejamento e execução das

atividades de desenvolvimento do software. Durante cada Sprint da fase de construção são

realizadas as atividades das disciplinas de análise e projeto, implementação e testes. As

disciplinas estão destacadas por meio de um retângulo verde.

Page 11: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

11

A fase de transição está destacada com dois retângulos vermelhos. Essa fase é constituída

pelos macroprocessos Finalizar Sprint e Preparar Implantação. Nessa etapa do processo

são criadas as documentações do produto, tais como manual do usuário e modelo de

deployment. Além disso, os eventos de finalização da Sprint, Sprint review e Sprint

retrospective são realizadas.

4.2. Disciplinas

As atividades do processo são agrupadas em cinco disciplinas: Requisitos, Análise e

Projeto, Implementação, Teste e Implantação. As atividades de análise e projeto são

exibidas na figura 4. Neste processo, a equipe de desenvolvimento realiza as atividades de

criação e atualização dos diagramas de subsistemas, classes, comportamento e dados do

projeto. Essa atividade é realizada para cada item do Sprint Backlog priorizado pelo PO em

conjunto com os stakeholders. O arquiteto de software tem uma responsabilidade grande

nesta atividade, pois é ele quem valida se a análise e o projeto estão em conformidade com

a arquitetura da solução.

Figura 4 – Atividades da disciplina de análise e projeto

Fonte: (FINANCES, 2009)

Finalizada esta etapa, tem vez a implementação, cujo fluxo de atividades pode ser visto no

diagrama a seguir.

Page 12: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

12

Figura 5 - Atividades da disciplina de implementação

Fonte: (FINANCES, 2009)

A implementação consiste da criação do código fonte das funcionalidades do projeto. Essa

atividade é realizada para cada item do Sprint Backlog priorizado pelo PO em conjunto com

os stakeholders. Ao final da Sprint, a equipe terá transformado os requisites do Product

Backlog em funcionalidades, que então, poderão ser testadas. O framework proposto

estabelece que as atividades de testes sejam executadas em duas etapas: projeto e

execução. O fluxo macro de trabalho das atividades de teste é mostrado a seguir.

Figura 6 - Atividades da disciplina de Teste

Fonte: (FINANCES, 2009)

A equipe de desenvolvimento é responsável por projetar os casos de testes referentes aos

itens do Product Backlog priorizados pelo PO. Após a elaboração dos casos de teste, a

equipe executa os cenários descritos diferenciando-os em testes de sistema e integração.

Page 13: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

13

Após o produto ser aprovado nos testes, ele prossegue para a implantação, cujas atividades

são mostradas na figura abaixo:

Figura 7 - Atividades da disciplina de Implantação

Fonte: (FINANCES, 2009)

Os desenvolvedores auxiliados pelo analista de suporte prepara o modelo de implantação

da solução. Para a implantação das funcionalidades, é elaborado um manual de

deployment. Além disso, também é escrito o manual do usuário e o material de treinamento.

5. Análise de Dados

Para validar o aumento de assertividade do framework proposto, foram utilizados dados de

03 projetos, sendo 02 desses projetos desenvolvidos utilizando o Scrum e 01 projeto

desenvolvido utilizando o framework proposto nesse artigo. Os projetos se enquadram na

área de negócio Mercado Financeiro e foram selecionados com base nos seguintes critérios:

tecnologia, área de negócio, número de requisitos funcionais e esforço previsto para

conclusão do projeto. Os projetos considerados nessa analise possuem tamanho de médio

e grande porte, ou seja, mais de 10.000 horas. A tabela a seguir mostra os dados dos

projetos considerados.

Quadro 4 - Dados dos Projetos Considerados no Estudo de Caso

Projeto Tecnologia RF Framework EP Prazo Releases Recursos

P1 Java 81 Proposto 19192 13,63 7 8

Page 14: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

14

P2 C++ 57 Scrum 12369 10,03 5 7

P3 C++ 90 Scrum 18990 13,48 7 8

Fonte: (FINANCES, 2011)

O significado dos dados da tabela acima é descrito a seguir:

Projeto: Corresponde à identificação do projeto, sendo que foram atribuídos

identificadores de P1 a P3. O nome real do projeto e a identidade do cliente foram

mantidos em sigilo.

Tecnologia: Corresponde à tecnologia na qual o projeto foi desenvolvido. Foram

considerados projetos Java e C++. Projetos desenvolvidos em tecnologias menos

expressivas não foram considerados.

RF: Corresponde à quantidade de requisitos funcionais do projeto.

Framework: Indica framework foi utilizado para o desenvolvimento do projeto.

EP: Esforço planejado: Esforço estimado para realizar o projeto.

Prazo: Prazo previsto em meses para conclusão do projeto.

Releases: Número de releases previstos durante a realização do projeto.

Recursos: Número de profissionais alocados para o projeto, incluindo o gerente.

5.1. Apresentação de resultados

Com o intuito de analisar o impacto da utilização do framework no desenvolvimento de

software, foram analisados três indicadores coletados para os projetos:

Previsto x Realizado: comparativo entre o esforço, em horas, utilizado para

desenvolver o projeto e o esforço previsto para conclusão.

Qualidade da entrega: Número de bugs encontrados em cada release incremental.

Percentual de alteração de requisitos: % de alteração de requisitos em cada release,

devido decorrentes de falhas no processo de identificação e detalhamento de

requisitos.

Quadro 5 - Dados do indicador previsto X realizado

Projeto EP ER ER - EP Atraso

P1 19192 21973 2781 1,98

P2 12369 16311 3942 3,21

P3 18990 27330 8340 5,93

Fonte: (FINANCES, 2011)

O significado dos dados da tabela acima é descrito a seguir:

Page 15: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

15

ER: Esforço realizado: Quantidade de horas realizadas durante o projeto; e,

Atraso: Número de meses em que o projeto se atrasou.

Fonte: (AUTORIA PRÓPRIA)

Fonte: (AUTORIA PRÓPRIA)

De acordo com os gráficos acima, temos que o atraso do projeto P1, desenvolvido utilizando

o framework proposto, foi menor que o atraso dos projetos P2 e P3. O percentual de atraso

do projeto P1 ficou em 14,5%. O percentual de redução de atraso, comparando ao projeto

P2, foi de 55%. Comparando o percentual de atraso ao projeto P3, a redução foi de 67%.

Quadro 6 - Dados do indicador de numero de bugs x releases

Projeto R1 R2 R3 R4 R5 R6 R7 Total

P1 4 10 2 8 5 3 1 33

P2 9 17 12 32 37 - - 107

P3 21 31 102 92 54 43 21 364

Fonte: (FINANCES, 2011)

As colunas R1 a R7 referem-se aos bugs encontrados em cada release do projeto.

Fonte: (AUTORIA PRÓPRIA)

Fonte: (AUTORIA PRÓPRIA)

Figura 8 - Atraso real do projeto

(em meses)

Figura 9 - Percentual real de

redução

de atraso

Figura 10 – Número de bugs x

release

de atraso

Figura 11 – Total de bugs

de atraso

Page 16: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

16

O indicador de qualidade indica significativa redução da quantidade de bugs no projeto P1,

desenvolvido com a adoção do framework, ao compará-lo com os demais projetos. A

quantidade total de bugs do projeto P1 foi 33.

Para assegurar que os ganhos com a qualidade de software não sejam perdidos, a empresa

adotou as seguintes práticas:

Auditoria dos artefatos gerados durante o processo de desenvolvimento;

Status Reports semanais do projeto contendo o relatório de bugs gerados;

Armazenamento de base histórica dos problemas encontrados;

Obrigatoriedade de realização de testes unitários durante o desenvolvimento para

diminuir o número de bugs encontrados nos testes de release.

Quadro 7 - Percentual de alteração de requisitos

Projeto R1 R2 R3 R4 R5 R6 R7 Média

P1 11% 9% 12% 8% 14% 8% 7% 10%

P2 18% 17% 21% 15% 10% - - 16%

P3 28% 21% 33% 17% 19% 21% 16% 22%

Fonte: (FINANCES, 2011)

O significado dos dados da tabela acima é descrito a seguir:

R1 a RN: Percentual de alteração dos requisitos priorizados por release;

Média: Percentual médio de alteração de requisitos do projeto;

Figura 8 - Percentual médio de alteração de requisitos por projeto

Fonte: (AUTORIA PRÓPRIA)

Os dados representados no gráfico anterior mostram que o percentual médio de alteração

de requisitos do projeto P1 é menor ao dos projeto P2 e P3, o que indica que o framework

auxiliou na diminuição da volatilidade dos requisitos. Comparando-se o percentual médio de

alteração de requisitos do projeto P1 ao projeto P2, observamos um ganho de 37,5%. O

ganho é ainda mais expressivo, 54,5%, se a comparação for feita com o projeto P3.

Page 17: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

17

Requisitos bem detalhados, influenciam na qualidade do projeto. Analisando os indicadores

de qualidade da entrega e de percentual de alteração de requisitos, observa-se que existe

correlação entre eles. O projeto P1 apresentou melhores resultados em ambos indicadores

do que os projetos P2 e P3. Se analisarmos conjuntamente os dados dos projetos P1, P2 e

P3, apresentados na tabela a seguir, podemos elaborar algumas hipóteses.

Quadro 8 - Tecnologia x Recursos x Total de bugs

Projeto Tecnologia Recursos Total

P1 Java 8 33

P2 C++ 7 107

P3 C++ 8 364

Fonte: (FINANCES, 2011)

A tabela acima apresenta o cruzamento das informações de tecnologia adotada por projeto,

o número de profissionais por projeto e a quantidade total de bugs encontrados. Nesse

cruzamento é levantada a hipótese de que a tecnologia adotada no desenvolvimento do

software pode influenciar na qualidade do projeto.

Segundo informações do departamento de Recursos Humanos da empresa pesquisada, o

tempo necessário para contratação de um profissional especialista na tecnologia C++ é de

60 a 90 dias. Para a contratação de um profissional especialista Java, segundo o RH da

empresa, o prazo máximo para contratação é de 30 dias.Esse tempo elevado para

contratação de profissionais C ++ pode influenciar na qualidade do projeto. Devido ao

turnover de profissionais ser um risco passível ao gerenciamento de projetos, essa hipótese

fica ainda mais reforçada. Nesse contexto, para os projetos que necessitem de substituição

de profissionais C++, o número de bugs gerados pode aumentar. Esse aumento é devido ao

alto tempo de contratação e o tempo estimado para a capacitação nas regras de negócio

específicas do projeto.

Os projetos pesquisados no artigo foram alvos do cenário de substituição de profissionais:

tanto o projeto P1, desenvolvido em tecnologia Java, quanto o projeto P2, desenvolvido em

C++. O projeto P1 contou com 8 profissionais, enquanto o projeto P2 contou com 7

profissionais. Em ambos os projetos, durante seu tempo de desenvolvimento, foram feitas

substituições de 02 profissionais. As mudanças de profissionais especialista em Java no

projeto P1 favoreceram a geração dos 33 bugs do projeto, enquanto as duas mudanças de

profissionais C++ para o projeto P2 ocasionaram a geração dos 107 bugs do projeto.

Page 18: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

18

6. Considerações Finais

O framework proposto nesse artigo apresenta uma nova abordagem para o

desenvolvimento de software. De acordo com os resultados apresentados, o projeto em que

foi adotado o framework apresentou uma melhora significativa nos indicadores de atraso e

qualidade de software.

Destaca-se a importância do papel da alta direção da empresa em suportar a inciativa da

concepção do framework de desenvolvimento, em função dos resultados positivos

apresentados nesse artigo.

Com a adoção do framework, a empresa deu ênfase maior no uso de processos de

engenharia de software, devido à utilização dos princípios do RUP na concepção do

framework. Os projetos desenvolvidos utilizando o framework SCRUM não possuíam bases

sólidas de engenharia, o que evidentemente gerou diversos problemas.

Sendo assim, o resultado imediato da utilização do framework descrito neste trabalho foi o

aumento da qualidade dos produtos desenvolvidos. Já com relação ao indicador de atraso,

com a adoção do framework, o índice estabilizou em 14,5%. Mesmo a redução tendo sido

significativa, o resultado ficou abaixo da expectativa da empresa, que era de alcançar de 5%

a 10% de atraso.

Assim, após análise dos resultados obtidos, a empresa decidiu a estudar uma evolução do

framework apresentado, acrescentando maior controle durante as fases de desenvolvimento

do projeto. Para isso, os próximos passos da evolução do framework passam pela adoção

de conceitos do PMBOK.

7. Referências Citadas

AMBLER, S. Agile Software Development at Scale. IFIP European Conference on Software

Engineering Techniques, Poznan, Poland, 2007.

AZEVEDO, Sofia. Artigo: Por que os projetos falham? 2008. Disponível em

http://www.mundopm.com.br/noticia.jsp?id=280

BECK, K. Extreme Programming Explained: Embrace Change, 2a Ed. Addison-Wesley,

2004.

Page 19: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

19

BECK, K. Extreme Programming Explained: Embrace Change. Addison Wesley, 2000.

BOEHM, B. and TURNER, R., “Balancing Agility and Discipline: A Guide for the Perplexed”,

Addison Wesley, Boston, 2004.

COCKBURN, A. Manifesto for Agile Software Development – www.agilemanifesto.org, 2000.

COHEN, D., LINDVALL, M., COSTA, P. An introduction to agile methods, in: M.V. Zelkowitz

(Ed.), Advances in Computers, Advances in Software Engineering, vol. 62, Elsevier,

Amsterdam, 2004.

DADOSWEB, 2012. Disponível em http://www.dadosweb.com.br/scrum/.

DYBÅ, T. Improvisation in small software organizations, IEEE Software, 2000.

FINANCES, C. Framework Híbrido de Desenvolvimento de Software, 2009.

FINANCES, C. Pesquisa referente ao resultado da aplicação do Framework Híbrido de

Desenvolvimento de Software, 2011.

KARLSTRÖM, D., RUNESON, P. Integrating agile software development into stage-gate

managed Product development. Empirical Software Engineering, 2006.

LEFFINGWELL, D. Scaling Software Agility. Addison Wesley, 2006.

NERUR, S., MAHAPATRA, R., MANGALARAJ, G. Challenges of migrating to agile

methodologies, Communications of the ACM, 2005.

PÁDUA FILHO, W. P. Engenharia de Software. LTC, 2009.

PALMER, S.R., FELSING, J.M. A Practical Guide to Feature-driven Development, Prentice

Hall, Upper Saddle River, NJ, 2002.

POLLYSOFT, 2009. Disponível em http://www.pollysoft.com.br/?m=fabrica&p=rup.

POPPENDIECK, M., POPPENDIECK, T. Lean Software Development, Addison-Wesley,

Boston, 2003.

PROCESS, Rational Unified Process – Best Pratices for Software Development Teams –

TP026B, 2001.

RAMSIN R. and PAIGE, R. F., Process-Centered Review of Object Oriented Software

Development Methodologies, ACM Computing Surveys, Vol. 40, No. 1, Article 3, February

2008.

Page 20: PROPOSTA DE METODOLOGIA DE …files.cedrotech.com/marketing/cedrotech/EDUARDO... · ... o intuito do artigo é expor uma nova metodologia de ... permaneça dentro do cronograma. Uma

20

RATIONAL, Rational Unified Process – Visão Geral, 2001. Disponível em

http://www.wthreex.com/rup/portugues/index.htm

SCHWABER K. e SUTHERLAN J., Guia do Scrum, Scrum.org, 2011;

SCHWABER, K. and BEEDLE, M. Agile Software Development with Scrum. Prentice-Hall,

2001.

SCHWABER, K. SCRUM development process. Conference on Object Oriented Programing

Systems, Languages, and Applications, 1995.

TECHBLOG. Casos de Uso, 2001. Disponível em

http://techblog.desenvolvedores.net/2011/05/12/diagrama-de-caso-de-uso-uml/