controle de processos com métodos Ágeis e itil

61
FACULDADE CENECISTA NOSSA SENHORA DOS ANJOS - FACENSA Mantida pela CNEC – Campanha Nacional de Escolas da Comunidade CURSO DE GRADUAÇÃO SISTEMAS DE INFORMAÇÃO RAFAEL LEMOS PASSARELA SISTEMA PARA CONTROLE DE PROCESSOS APLICANDO MÉTODOS ÁGEIS E ITIL Gravataí 2010

Upload: rafael-passarela

Post on 28-Mar-2016

222 views

Category:

Documents


3 download

DESCRIPTION

Este trabalho tem como objetivo efetuar o levantamento do material necessário para a realização de um sistema para controle de processos, utilizando as boas práticas do ITIL para a Gestão de Incidentes e a Gestão de Problemas, utilizando conceitos de métodos ágeis para facilitar a obtenção de métricas para o controle dos mesmos utilizando a Linguagem Pascal com CodeGear RAD Studio 2007 e banco de dados FireBird 2.1.

TRANSCRIPT

Page 1: Controle de Processos com Métodos Ágeis e ITIL

FACULDADE CENECISTA NOSSA SENHORA DOS ANJOS - FACEN SA

Mantida pela CNEC – Campanha Nacional de Escolas da Comunidade

CURSO DE GRADUAÇÃO

SISTEMAS DE INFORMAÇÃO

RAFAEL LEMOS PASSARELA

SISTEMA PARA CONTROLE DE PROCESSOS APLICANDO

MÉTODOS ÁGEIS E ITIL

Gravataí

2010

Page 2: Controle de Processos com Métodos Ágeis e ITIL

1

RAFAEL LEMOS PASSARELA

SISTEMA PARA CONTROLE DE PROCESSOS APLICANDO

MÉTODOS ÁGEIS E ITIL

Trabalho de Conclusão de Curso I apresentado como r equisito parcial para

obtenção do título de Bacharel em Sistemas de Infor mação da Faculdade

Cenecista Nossa Senhora dos Anjos - FACENSA

Orientador: Prof. Me. Guilherme Lacerda

Co-Orientador: Prof. Daniel Wildt

Gravataí

2010

Page 3: Controle de Processos com Métodos Ágeis e ITIL

2

RESUMO

Este trabalho tem como objetivo efetuar o levantamento do material necessário

para a realização de um sistema para controle de processos, utilizando as boas práticas

do ITIL para a Gestão de Incidentes e a Gestão de Problemas, utilizando conceitos de

métodos ágeis para facilitar a obtenção de métricas para o controle dos mesmos

utilizando a Linguagem Pascal com CodeGear RAD Studio 2007 e banco de dados

FireBird 2.1.

Palavras-chave: Controle de Processos, ITIL, Método s Ágeis, Gestão de

Incidentes, Gestão de Processos

Page 4: Controle de Processos com Métodos Ágeis e ITIL

3

ABSTRACT

This work aims to make the lifting of the material necessary for the realization of a

system for process control, using best practices for ITIL Incident Management and

Problem Management, using concepts of agile methods to improve the procurement of

metrics to control them using the language Pascal with CodeGear RAD Studio 2007 and

database FireBird 2.1.

Keywords: Process Control, ITIL, Agile Methods, Inc ident Management, Process

Management

Page 5: Controle de Processos com Métodos Ágeis e ITIL

4

LISTA DE FIGURAS

Figura 1 - Modelo para a entrada de informações .......................................................... 11

Figura 2 - Ciclo de Vida de Manutenção de Software .................................................... 18

Figura 3 - Métodos de Conversão para Redução de Impacto ........................................ 19

Figura 4 - Custo de Adição de Funcionalidade na Engenharia Tradicional .................... 21

Figura 5 - Custo de Adição de Funcionalidade na Nova Engenharia ............................. 21

Figura 6 - Diagrama de Atividades na Gerencia de Incidentes ...................................... 26

Figura 7 - Matriz de Impacto x Urgência ........................................................................ 27

Figura 8 - Atividades do Controle de Problemas ............................................................ 29

Figura 9 - Atividades do Controle de Erros .................................................................... 29

Figura 10 - Novo Projeto com o BaseCamp ................................................................... 31

Figura 11 - DashBoard do BaseCamp ........................................................................... 32

Figura 12 - To-do List do BaseCamp ............................................................................. 33

Figura 13 – Distribuição de Tarefas do BaseCamp ........................................................ 33

Figura 14 - Lista de Tempo de Atividades com o BaseCamp......................................... 34

Figura 15 - Definição de Estimativa de Tempo com BaseCamp .................................... 34

Figura 16 - Configuração Inicial do ToDoList ................................................................. 35

Figura 17 - Configuração de Colunas do ToDoList ........................................................ 36

Figura 18 - Seleção de Interface e Projeto de Exemplo do ToDoList ............................. 36

Figura 19 - Tela Principal do ToDoList ........................................................................... 37

Figura 20 - DashBoard do ClockingIT ............................................................................ 38

Figura 21 - Gráfico de Gantt utilizado no ClockingIT ...................................................... 39

Figura 22 - Cadastro de Task e To-do List no ClockingIT .............................................. 40

Figura 23 - Lista de tarefas no ClockingIT ...................................................................... 40

Figura 24 - Tela principal do Protótipo CaseSupport ...................................................... 44

Figura 25 - Controle de Arquivos Anexos do CaseSupport ............................................ 45

Figura 26 – Plano de Teste elaborado com Auxilio do CaseSupport ............................. 45

Figura 27 - Controle de Alterações por Versão no CaseSupport ................................... 46

Figura 28 - Diagrama de Caso de Uso ........................................................................... 47

Page 6: Controle de Processos com Métodos Ágeis e ITIL

5

Figura 29 - Diagrama de Classes do CaseSupport ........................................................ 48

Figura 30 - Diagrama ER do Sistema CaseSupport ....................................................... 49

Page 7: Controle de Processos com Métodos Ágeis e ITIL

6

LISTA DE QUADROS

Quadro 1 - Categorias de Manutenção de Software ...................................................... 15

Quadro 2 - Definições de Manutenção de Software ....................................................... 16

Quadro 3 - As oito leis de Lehman ................................................................................. 17

Quadro 4 - Definições de Métodos de Conversão .......................................................... 19

Quadro 5 - Classificação de Prioridades ........................................................................ 27

Quadro 6 - Comparativo de Ferramentas ....................................................................... 42

Quadro 7- Cronograma de desenvolvimento do TCC I .................................................. 53

Quadro 8 - Cronograma de desenvolvimento do TCC II ................................................ 54

Page 8: Controle de Processos com Métodos Ágeis e ITIL

7

LISTA DE ABREVIATURAS

Abreviaturas utilizadas ao longo deste trabalho:

ANS Acordo de Nível de Serviço

ER Entidade-Relacionamento

FDD Feature Driven Development

IDE Integrated Development Environment

IDPL Initial Developer's Public License

ITIL Information Technology Infrastructure Library

RDBMS Relational Database Management System

RUP Rational Unified Process

SGBDR Sistema Gerenciador de Banco de Dados Relacional

SQL Structured Query Language

TI Tecnologia da Informação

UP Unified Process

XP eXtreme Programming

WWW World Wide Web

Page 9: Controle de Processos com Métodos Ágeis e ITIL

8

SUMÁRIO

INTRODUÇÃO ............................................................................................................... 10

Motivação ....................................................................................................................... 11

Objetivo Geral ................................................................................................................ 12

Objetivo Específico: ........................................................................................................ 12

Estrutura do Trabalho ..................................................................................................... 12

1. REFERENCIAL TEÓRICO ......................................................................................... 14

1.1. Sistemas Legados ................................................................................................... 14

1.1.1. Manutenção de Software ...................................................................................... 15

1.2. Métodos Ágeis ......................................................................................................... 20

1.2.1. XP (eXtreme Programming) ................................................................................. 23

1.2.2. Scrum ................................................................................................................... 23

1.3. ITIL .......................................................................................................................... 24

1.3.1. Gestão de Incidentes............................................................................................ 25

1.3.2. Gestão de Problemas ........................................................................................... 28

2. ESTADO DA ARTE .................................................................................................... 31

2.1. BaseCamp ............................................................................................................... 31

2.2. ToDoList .................................................................................................................. 35

2.3. ClockingIT ............................................................................................................... 37

2.4. Comparativo de Ferramentas .................................................................................. 41

3. Solução Proposta ....................................................................................................... 43

3.1. Visão ....................................................................................................................... 43

3.2. Protótipo .................................................................................................................. 43

3.3. Funcionalidades Importantes .................................................................................. 46

3.4. Modelagem .............................................................................................................. 47

3.4.1. Caso de Uso ......................................................................................................... 47

3.4.2. Diagrama de Classes ........................................................................................... 48

3.4.3. Diagrama ER ........................................................................................................ 48

3.5. Tecnologias Utilizadas............................................................................................. 49

3.5.1. CodeGear RAD Studio ......................................................................................... 50

Page 10: Controle de Processos com Métodos Ágeis e ITIL

9

3.5.2. FireBird ................................................................................................................. 50

3.5.2.1. Banco de Dados Relacional .............................................................................. 51

4. Cronograma de Desenvolvimento .............................................................................. 53

4.1. TCC I ....................................................................................................................... 53

4.2. TCC II ...................................................................................................................... 54

CONSIDERAÇÕES FINAIS ........................................................................................... 55

REFERÊNCIAS .............................................................................................................. 56

Page 11: Controle de Processos com Métodos Ágeis e ITIL

10

INTRODUÇÃO

Atualmente as empresas encontram-se em um mercado cada vez mais

globalizado, onde a busca e a captação de clientes são feitas de diversas maneiras,

como por exemplo, oferecendo produtos ou serviços inovadores, algo que os destaque

dos demais concorrentes.

Existem segmentos de mercado onde a personalização e a constante evolução

do produto são considerados pontos cruciais para garantir que a empresa será a

escolhida pelo cliente.

Organizações de TI, principalmente as que se dedicam a construção de software,

têm estes dois fatores como essenciais para a satisfação do cliente. Alem de evitar que

o sistema apresente bugs e corrigir os que eventualmente apareçam, é de suma

importância efetuar as personalizações para os clientes, desde um simples ajuste em

um relatório a até mesmo o desenvolvimento de uma nova funcionalidade. Para isto, é

necessário conhecer a real capacidade da equipe de desenvolvimento sabendo

quantas funcionalidades podem ser entregues por interação.

Segundo (DESCHAMPS, 2008), existem quatro necessidades fundamentais que

levam a realização de uma mudança em um software: novas necessidades de mercado,

novas necessidades do cliente, crescimento/diminuição dos negócios, restrições de

orçamento ou cronograma.

Diante de tal fato, muitas software houses realizam estas modificações no

software sem conhecer os reais motivos que levam a tal alteração, outras, sequer não

conhecem a capacidade da equipe em suportar tais demandas. Alem disto, não

possuem rastreabilidade sobre as implementações, onde não sabem quem solicitou,

quem alterou e nem para qual motivo o software foi modificado.

Apesar de existirem sistemas capazes de gerenciar tais informações e elevar os

ganhos em ordem de grandeza proporcionada pelas métricas geradas, poucas

organizações se beneficiam destas ferramentas. Esta baixa adoção pode ser explicada

pela complexidade envolvida na utilização das mesmas, ressaltando que, em sistemas

mais simples, existem informações que são ignoradas e nos sistemas mais complexos

sua interface os torna degradantes.

Page 12: Controle de Processos com Métodos Ágeis e ITIL

11

Motivação

O projeto surgiu da necessidade da criação de uma ferramenta que torne

possível gerenciar de forma simples e eficaz todas as tarefas necessárias para a

distribuição de requisições durante as interações em um projeto de software.

A motivação que leva ao desenvolvimento deste trabalho bem como a definição

da ferramenta para controle de requisitos, teve como base a quantidade de solicitações

(bugs, novas implementações e personalizações), existentes em qualquer empresa de

desenvolvimento de software que não possuem o devido controle sobre os mesmos.

Outro fator motivacional para este trabalho é a possibilidade de gerir uma base

de conhecimento sobre os softwares desenvolvidos conforme as solicitações populam a

base de dados do sistema de controle.

Abaixo segue o modelo sugerido para a entrada de informações no sistema de

controle de requisitos:

Figura 1 - Modelo para a entrada de informações

Após a entrada dos dados será possível separar as informações entre incidentes

e problemas, bem como consultar registros semelhantes através da base de

conhecimento gerada.

Page 13: Controle de Processos com Métodos Ágeis e ITIL

12

Objetivo Geral

Mostrar como é possível gerenciar de forma simples e eficaz a distribuição de

tarefas durante as interações presentes no ciclo de desenvolvimento de software bem

como obter métricas capazes de identificar a potencial carga de trabalho suportada pela

equipe de desenvolvimento.

Propõe-se então a criação de um sistema para controle de processos com a

capacidade de gerenciar de forma prática os requisitos necessários para a distribuição

de tarefas durante o ciclo de interações.

Espera-se diminuir o tempo necessário para gerencia de processos presentes

durante o ciclo das interações de software, de modo que este tempo seja melhor

aproveitado para projetá-lo, aplicando bons princípios de engenharia de software para a

construção de arquivos fontes e com um padrão adotado e conhecido pela maioria dos

desenvolvedores.

Com a entrada dos requisitos em um único sistema, será possível obter uma

base de conhecimento sobre os sistemas desenvolvidos, proporcionando aos demais

setores usufruírem desta ferramenta, como por exemplo, o suporte a clientes.

Objetivo Específico:

- Estudar sistemas de gerenciamento de projeto;

- Estudar gerencia de incidentes;

- Estudar gerencia de problemas;

- Estudar a linguagem de programação Pascal;

- Estudar o banco de dados FireBird;

- Estudar o CodeGear RAD Studio 2007;

- Definir as funcionalidades do programa;

- Modelar o programa exemplo;

- Implementar e validar o programa proposto.

Estrutura do Trabalho

Além da introdução e considerações finais, o trabalho esta dividido em três

grandes seções:

Page 14: Controle de Processos com Métodos Ágeis e ITIL

13

- Na primeira seção tem-se o referencial teórico que trará em seu conteúdo

informações para as questões que norteiam a definição de um aplicativo para controle

de processos como princípios básicos para: manutenção de software, ITIL (gerencia de

projetos e gerencia de incidentes), métodos ágeis e a arquitetura necessária para

construção da ferramenta proposta.

- Na segunda seção o trabalho mostra algumas ferramentas existentes no

mercado e faz um comparativo com a aplicação a ser criada.

- A terceira seção tratará da concepção da solução proposta e das tecnologias

envolvidas para atingir o objetivo que é a criação de um sistema para controle de

processos.

Page 15: Controle de Processos com Métodos Ágeis e ITIL

14

1. REFERENCIAL TEÓRICO

Nesta seção serão apresentadas informações referentes a sistemas legados,

manutenção de software e uma breve abordagem sobre métodos ágeis e ITIL.

1.1. Sistemas Legados

Softwares tornam-se legados quando eles começam a resistir a modificação e a

evolução. No entanto, o conhecimento incorporado nestes sistemas constitui um trunfo

importante nas organizações. Estes sistemas podem ainda proporcionar um importante

valor comercial, tornando-se assim objetos de modernização ou substituição

(SEACORD, 2003)

Sistemas legados em geral, utilizam uma estrutura imperativa e com as

seguintes características:

- Sistemas com difícil manutenção;

- Sistemas sem documentação utilizada;

- Sistemas sem padronizações;

- Foram escritos em linguagens que não existem mais no mercado;

- Foram escritos por programadores que já se aposentaram;

- Sistemas que possuem um alto custo para modernização.

Por falta de documentação e com a mudança do pessoal técnico que participou

originalmente no desenvolvimento dos sistemas legados, os mesmos podem apresentar

problemas tais como:

- Estilos de programação distintos;

- Dificuldade de compreensão das regras de negócio;

- Desconhecimento das razões que levaram a determinadas decisões;

- Impossibilidade de reaproveitamento de equipamentos;

- E mesmo estando em perfeito estado de funcionamento as ferramentas de

desenvolvimento deixaram de ser úteis, devido ao surgimento de produtos

tecnologicamente mais avançados.

Com a evolução dos equipamentos, algumas empresas se deparam com a

necessidade de evoluir seus sistemas, sendo este talvez o principal motivo para

reestruturação e migração de um sistema legado, pois é sabido que muitas

Page 16: Controle de Processos com Métodos Ágeis e ITIL

15

organizações continuam usando sistemas desenvolvidos a mais de uma década. Dessa

forma, a reestruturação de um sistema legado proporciona uma oportunidade para a

consideração de um maior número de variáveis, sejam na atualização de hardware,

mas também de software.

Em contrapartida para certas empresas, o valor mais significante para a

atualização de seus programas de computador é a oportunidade de reorganizar as

operações departamentais, tendo como base um maior ganho de produtividade e a

utilização de softwares modernos.

1.1.1. Manutenção de Software

As razões que levam a manutenção de software se dividem nas seguintes

categorias conforme mostra o quadro abaixo (SWEBOK, 2004):

Correção Aprimoramento

Pró-ativa Preventiva Perfectiva

Reativa Corretiva Adaptativa

Quadro 1 - Categorias de Manutenção de Software

Perfectiva : São feitas para melhorar o produto, como adicionar necessidades

dos usuários, ou para melhor o desempenho, facilitar a utilização, ou agregar outros

atributos. Estes tipos de mudanças são também chamados de acessórios.

Existem quatro necessidades fundamentais que levam a realização de uma

mudança em um software: novas necessidades de mercado, novas necessidades do

cliente, crescimento/diminuição dos negócios, restrições de orçamento ou cronograma

(DESCHAMPS, 2008).

Adaptativa : São feitas para acompanhar o ritmo das mudanças ambientais, tais

como: novos sistemas operacionais, novas linguagens, banco de dados de sistemas de

gestão comercial e outros componentes.

Corretiva : As mudanças são feitas para reparar defeitos no sistema.

Preventiva : As mudanças são feitas para melhorar o futuro da manutenção e

confiabilidade de um sistema. Ao contrário das últimas três razões para a mudança

Page 17: Controle de Processos com Métodos Ágeis e ITIL

16

reativa, a preventiva age proativamente para mudanças, que visam simplificar a

evolução futura.

Os esforços de desenvolvimento de software resultam na entrega de um produto

de software que satisfaça os requisitos dos usuários, assim o software tem que mudar

ou evoluir.

Uma vez em funcionamento, defeitos são descobertos, o ambiente de operação

muda e novas necessidades dos usuários são criadas.

A fase de manutenção no ciclo de vida do software inicia após o período de

garantia ou suporte, após a entrega do software, mas as atividades de manutenção

ocorrem muito mais cedo.

A manutenção de software segue definições criadas nas seguintes normas,

conforme o quadro 2 abaixo:

Norma Definição

IEEE 1219 Define a alteração do software após a entrega, com atividades

para: corrigir falhas, implementar melhorias, criar interface com

outros sistemas, adaptar programas para diferentes hardwares e

softwares, migração de sistemas legados e aposentar o software.

IEEE 12207 Descreve o processo para o ciclo de vida do software e identifica as

principais atividades da manutenção do mesmo.

IEEE 14764 Define a nível internacional, a manutenção de software nas

mesmas condições da norma IEEE 12207.

Quadro 2 - Definições de Manutenção de Software

Segundo (SWEBOK, 2004), a percepção comum da manutenção de software é

que ela sirva apenas para corrigir falhas, no entanto estudos e pesquisas ao longo dos

anos têm indicado que mais de 80% da manutenção do software é usada para ações

não corretivas.

Lehman e Belady (1985) realizaram a maioria dos trabalhos referentes a

dinâmica de evolução do programa focando nas mudanças do sistema. Com base

nestes estudos propuseram um conjunto de leis referentes as mudanças nos sistemas

(Leis de Lehman).

Page 18: Controle de Processos com Métodos Ágeis e ITIL

17

Lehman e Belady examinaram o crescimento e a evolução de uma série de

grandes sistemas de software. As leis propostas foram derivadas dessas medições

(SOMMERVILLE, 2003).

Durante um período de vinte anos, as pesquisas de Lehman levaram a

formulação de oito leis conforme mostra a quadro 3, todas relacionadas a manutenção

e ciclo de vida de software (SWEBOK, 2004).

Lei Descrição

Mudança Contínua Um programa usado e ambiente de produção deve mudar

necessariamente ou se torna progressivamente menos útil.

Complexidade

crescente

A medida que um programa muda, sua estrutura tende a se

tornar mais complexa. Recursos devem ser dedicados para

preservar e simplificar a estrutura.

Evolução de Programa

de Grande Porte

A evolução do programa é um processo auto-regulável.

Atributos de sistemas como tamanho, tempo entre releases

e número de erros reportados são quase invariáveis em

cada versão do sistema.

Estabilidade

Organizacional

Durante o ciclo de vida, sua taxa de desenvolvimento é

quase constante e independente de recursos dedicados ao

desenvolvimento.

Conservação de

Familiaridade

Durante o ciclo de vida de um sistema, mudanças

incrementais em cada versão são quase constantes.

Crescimento Contínuo As funcionalidades oferecidas pelo sistema devem aumentar

continuamente para manter a satisfação do usuário.

Qualidade em Declínio A qualidade do sistema entrará em declínio a menos que

eles sejam adaptados a mudanças em seus ambientes

operacionais.

Sistema de Feedback Os processos de evolução incorporam um sistema de

feedback com vários agentes e loops e você devem tratá-los

para conseguir aprimoramentos significativos de produto.

Quadro 3 - As oito leis de Lehman

Page 19: Controle de Processos com Métodos Ágeis e ITIL

18

As organizações modificam software, para corrigir erros, ou para melhorar o

desempenho, durabilidade, qualidade ou outros atributos. Isto tudo é de acordo com a

primeira lei da Lehman: “Um grande programa que é usado sofre mudança contínua ou

se torna progressivamente menos útil”. (SEACORD, 2003)

As observações de Lehman são pertinentes e devem ser levadas em conta no

planejamento do processo de manutenção, entretanto, dependendo do plano de

negócio adotado pela software house, tais observações devem ser ignoradas. O

marketing, por exemplo, pode adotar um esquema em que será necessário fazer

diversas mudanças em sistemas maiores em um único release e como conseqüência,

provavelmente, serão necessários um ou mais releases dedicados ao reparo de erros

(SOMMERVILLE, 2003).

O ciclo de vida do software representa as etapas pelas quais o projeto passa por

desenvolvimento e utilização em uma organização. Conforme a figura 2 (SEACORD,

2003) verifica-se a existência de uma atividade continua de desenvolvimento, até que

um novo sistema entre em operação.

Figura 2 - Ciclo de Vida de Manutenção de Software

Page 20: Controle de Processos com Métodos Ágeis e ITIL

19

Um novo sistema computadorizado normalmente torna-se uma tarefa difícil.

Visando amenizar esta tarefa, existem métodos de conversão que reduzem o impacto

gerado pela introdução de novas tecnologias (O’ BRIEN, 2006), conforme pode ser

observado na figura 3 abaixo.

Figura 3 - Métodos de Conversão para Redução de Imp acto

As definições destas quatro formas de conversão podem ser observadas no

quadro quatro.

Conversão Definição

Paralela O sistema legado e o sistema novo funcionam em paralelo até que o

a equipe de desenvolvimento e a administração concordem em

utilizar somente o novo. Resultados e desempenhos são avaliados

nesta etapa.

Piloto Um departamento ou estabelecimento serve como local de teste até

que os desenvolvedores decidam implantar em toda a empresa.

Por Etapas Parte da nova aplicação ou alguns departamentos são convertidos,

um de cada vez permitindo a implantação de forma gradual.

Direta Os erros podem ser identificados e corrigidos e o novo sistema

passa a ser o único em uso a partir de determinado momento.

Quadro 4 - Definições de Métodos de Conversão

Page 21: Controle de Processos com Métodos Ágeis e ITIL

20

Segundo SOMMERVILLE (2003), assim que o software é colocado em uso,

novos requisitos emergem, e os requisitos existentes são modificados à medida que a

empresa que executa esse software passa por modificações, tornando impossível

produzir sistemas de qualquer tamanho que não precisem ser modificados.

Mesmo após serem entregues, softwares necessitam ser modificados, seja para

correção de bugs, adição de novas funcionalidades ou aperfeiçoamento das já

existentes, em suma, eles sempre evoluem, em resposta às exigências de mudanças.

1.2. Métodos Ágeis

Segundo TALES (2005), as indústrias de software buscam a décadas técnicas

de desenvolvimento que possam reduzir os riscos em projetos e tornar esta atividade

mais produtiva.

Em 1968, com o surgimento da engenharia de software surgiram inúmeras

propostas para melhorar o desempenho dos projetos, iniciados pelo processo de

desenvolvimento linear e seqüencial (em cascata) até aos atuais processos ágeis de

desenvolvimento.

Também conhecido como Desenvolvimento Ágil de Software, ou simplesmente

como Método Ágil, é uma estrutura conceitual que rege projetos de engenharia de

software como parte de uma metodologia de desenvolvimento. Este novo conceito

surge da necessidade de enxergar as de forma diferente o processo de engenharia de

software.

Engenharias tradicionais colocam grande ênfase em projetar antes de construir,

gerando softwares que tendem a evitar mudanças (HILMER, 2004).

A relação entre o custo e o momento em que a alteração é adicionada na

engenharia tradicional pode ser observada na figura 4, deixando evidente que quanto

mais tempo uma alteração ou funcionalidade é postergada, maior será o custo aplicado

sobre tal.

Page 22: Controle de Processos com Métodos Ágeis e ITIL

21

Figura 4 - Custo de Adição de Funcionalidade na Eng enharia Tradicional

HILMER (2004) define a nova engenharia de software utilizando métodos ágeis,

como a forma que permite constantemente alterar o código sem que a qualidade seja

comprometida. A relação custo e momento em que a alteração é adicionada para este

caso pode ser observado na figura 5 abaixo.

Figura 5 - Custo de Adição de Funcionalidade na Nov a Engenharia

Page 23: Controle de Processos com Métodos Ágeis e ITIL

22

A introdução dos métodos ágeis na engenharia de software visa reduzir o ciclo

de vida do mesmo, e com isto acelerar seu desenvolvimento disponibilizando versões

do sistema com funcionalidades mínimas, executando exatamente o que foi solicitado.

As demais funcionalidades, bem como aperfeiçoamentos e correções de bugs, são

adicionadas nas versões subseqüentes com base em um processo continuo e

interativo.

Métodos ágeis aplicam uma coleção de práticas guiadas por princípios e valores

que podem ser aplicados por desenvolvedores de software diariamente.

Em novembro de 2001, um grupo de dezessete profissionais, com referencias

mundiais em desenvolvimento, reuniu-se para debater as melhores formas de

desenvolvimento de software. Desta reunião surgiu o Manifesto Ágil para

Desenvolvimento de Software.

Os seguintes princípios foram definidos para o Manifesto Ágil

(AGILEMANIFESTO, 2010):

- Indivíduos e Interações são mais importantes que processos e ferramentas;

- Software funcionando é mais importante do que documentação completa e

detalhada;

- Colaboração com o cliente é mais importante do que negociação de contratos;

- Adaptação a mudanças é mais importante do que seguir o plano inicial;

Segundo HILMER (2004), para melhor compreensão dos Métodos Ágeis, deve-

se primeiramente entender as características principais que os norteiam, são elas:

- É uma atitude e não um processo prescritivo;

- É um suplemente aos métodos existentes e não uma metodologia completa;

- É uma forma efetiva de trabalho em conjunto para atingir as necessidades das

partes envolvidas;

- É uma atividade que funciona na prática e não uma teoria acadêmica;

- É a criação de documentos que possuam valor, e não documentos

burocráticos;

- Utiliza o modelo de processo interativo e incremental;

- O cliente faz parte da equipe de desenvolvimento.

Page 24: Controle de Processos com Métodos Ágeis e ITIL

23

Conforme TALES (2005), graças aos métodos ágeis, o cliente é inteiramente o

piloto do seu projeto e obtém muito rapidamente uma primeira produção do seu

software.

Dentre as principais metodologias ágeis destacam-se as seguintes: RAD, DSDM,

XP, FDD e Scrum.

1.2.1. XP (eXtreme Programming)

Metodologia americana do final da década de 90 voltada para o desenvolvimento

de software, notória em diversos países por ajudar a criar sistemas de forma mais

econômica e em menor tempo que as formas habituais.

O XP é composto por um conjunto reduzido de práticas de desenvolvimento que

se organizam em torno de quatro valores básicos. Essas práticas possuem fortes inter-

relacionamentos formando um conjunto de elevada sinergia (MANHÃES, 2005).

(XP, 2010) afirma que o Extreme Programming é bem sucedido porque realça a

satisfação do cliente, pois em vez de entregar tudo o que ele poderia querer em alguma

data distante no futuro, este processo entrega o software que ele precisa quando ele

precisa.

Com o XP o cliente é inserido no meio do processo de desenvolvimento em uma

relação mais estrita com a equipe de desenvolvimento.

O XP baseia-se nos seguintes conceitos:

- Equipes de desenvolvimento trabalham diretamente com o cliente em ciclos

curtos;

- As entregas de versões do software ocorrem com freqüência;

- A equipa de desenvolvimento trabalha em colaboração total;

- O código é testado e limpo ao longo de todo o processo de desenvolvimento;

- Indicadores permitem medir o projeto auxiliando em mudanças ao longo do

desenvolvimento.

Conforme HILBER (2004), O XP é uma abordagem deliberada e disciplinada

onde seu sucesso advém da satisfação do cliente, possui princípios que devem ser

planejados e seguidos: simplicidade, comunicação, feedback, coragem e respeito.

1.2.2. Scrum

Page 25: Controle de Processos com Métodos Ágeis e ITIL

24

O Scrum é baseado em controle de processos empíricos que visam uma

abordagem interativa e incremental, otimizando assim a previsibilidade e o controle de

riscos.

Pode ser encarado como um framework, e não um processo ou uma técnica de

desenvolvimento, onde se pode empregar processos e técnicas.

Seu papel é fazer transparecer a eficácia relativa das suas práticas de

desenvolvimento para que você possa melhorá-las (SCHWABER, 2008).

O Scrum é um processo para construir software incremental em ambientes

complexos, onde os requisitos não são claros ou mudam com muita freqüência

(HILMER, 2004).

Com princípios semelhantes ao XP, possui equipes pequenas, requisitos poucos

estáveis ou desconhecidos e interações curtas para promover a visibilidade do

desenvolvimento.

As equipes trabalham as funcionalidades definidas no inicio de cada sprint,

diariamente é realizada uma reunião de aproximadamente 15 minutos onde a equipe

expõe o que está sendo feito e o que será feito. O tema destas reuniões é focado sobre

três perguntas:

- O que você realizou desde a última reunião?

- Quais problemas você encontrou?

- Em que você trabalhará até a próxima reunião?

1.3. ITIL

Apesar de ser confundida muitas vezes com uma metodologia, ITIL é na verdade

um conjunto de boas práticas. Foi criada pela secretária de comércio do governo inglês

(Office of Government Commerce, OGC) para definir as melhores práticas para a

gestão da área de TI de empresas públicas e privadas, tornou-se recentemente uma

norma (BS-1500), um anexo da ISO 9000/2000.

Conforme (ITIL, 2010), o foco deste modelo é descrever os processos

necessários para gerenciar a infra-estrutura de TI eficientemente e eficazmente de

modo a garantir os níveis de serviço acordados com os clientes internos e externos.

Page 26: Controle de Processos com Métodos Ágeis e ITIL

25

O ITIL fortalece a idéia de que as organizações estão cada vez mais

dependentes da área de TI, como uma forma de satisfazer e alcançar as necessidades

impostas pelas regras de negócio de pequenas, médias e grandes corporações. (ITIL,

2010) ainda comenta que isto leva a uma maior exigência para a alta qualidade de

serviços de TI.

Para minimizar o desperdício de tempo gasto em implementação, responsável

pela equipe de desenvolvimento deve alocar o desenvolvedor que mais se encaixe com

a atividade que será desenvolvida, para isto, ele deve conhecer bem sua equipe e como

cada indivíduo trabalha, individualmente e coletivamente dentro da equipe, qual sua real

produtividade, seu nível de qualidade na aplicação de uma implementação.

Para conseguir estas métricas, podem ser utilizados alguns conceitos de

indicadores obtidos no ITIL, onde os principais são: Gestão de Incidentes (Incidents),

Gestão de Problemas (Problem).

1.3.1. Gestão de Incidentes

Segundo ITIL (2010), um incidente é todo evento que não faz parte da rotina do

modelo de gestão de um serviço, podendo gerar uma interrupção ou redução na

qualidade do serviço prestado.

Gerenciar incidentes é garantir que estes eventos atípicos sejam solucionados o

mais breve possível, minimizando o impacto e garantindo que estes atendam aos níveis

de serviços pré-estabelecidos entre TI e cliente (AQUINO, 2008).

Em suma, o gerenciamento de incidentes possui quatro objetivos principais:

- Resolver os incidentes o mais rápido possível, restabelecendo a normalidade

do serviço no prazo acordado no ANS;

- Manter a comunicação dos status dos incidentes aos usuários;

- Definir as prioridades dos incidentes e classificá-los para os grupos de

atendimento para que seja cumprido o prazo de resolução;

- Avaliar os incidentes e as possíveis causas, informando ao Gerenciamento de

Problemas.

As atividades do gerenciamento de incidentes incluem:

- Detecção de incidentes e registro;

Page 27: Controle de Processos com Métodos Ágeis e ITIL

26

- Classificação e suporte inicial

- Investigação e diagnóstico

- Resolução e restauração

- Fechamento do incidente

- Responsabilidade pelo incidente, monitoração, acompanhamento e

comunicação.

O diagrama exibido na figura abaixo mostra as atividades pertencentes ao

gerenciamento de incidentes.

Figura 6 - Diagrama de Atividades na Gerencia de In cidentes

Quanto à classificação, a Gerencia de Incidentes utiliza-se de três fatores:

prioridade, urgência e impacto.

- Prioridade: é definido em relação ao impacto que o incidente tem sobre o

negócio da organização, pode ser definido na ANS;

- Urgência: prioridade com que o incidente deve ser resolvido;

- Impacto: grau em que a provisão do serviço é interrompido;

Page 28: Controle de Processos com Métodos Ágeis e ITIL

27

No quadro 5, pode-se observar a classificação das prioridades.

Código da

Prioridade

Descrição Prazo para Solução

1 Crítico 1 hora

2 Alto 8 horas

3 Médio 24 horas

4 Baixo 48 horas

5 Planejado Planejado

Quadro 5 - Classificação de Prioridades

Com base na urgência e no impacto, pode ser gerada uma matriz que define sua

relação com os serviços de suporte, como pode ser observado na figura 7 abaixo.

Figura 7 - Matriz de Impacto x Urgência

Outros aspectos pertencentes às atividades de gerencia de incidentes podem ser

definidos como:

- Detecção de Incidentes e Registros: Registrar informações básicas do

incidente;

- Classificação e Suporte Inicial: Classificar, comparar, priorizar, fornecer suporte

inicial para uma resolução rápida;

- Investigação e Diagnóstico: Avaliação do incidente e solução de contorno;

- Resolução e Recuperação: Resolver o incidente ou elaborar uma requisição de

Mudança e tomar ações corretivas;

- Fechamento do Incidente: Verificar junto ao cliente se o chamado foi atendido e

resolvido e comunicar o fechamento;

Page 29: Controle de Processos com Métodos Ágeis e ITIL

28

1.3.2. Gestão de Problemas

Segundo HALLAIS (2009), a gestão de problemas lida com os incidentes que

não puderam ser resolvidos pela Gestão de Incidentes e foram direcionados para

identificar a causa raiz do incidente.

Este processo foca em encontrar a relação entre os incidentes, problemas e

erros conhecidos, onde estes três itens formam a chave para o conhecimento da causa

raiz do incidente.

O principio básico está em começar com muitas possibilidades e estreitar até

encontrar a causa raiz final (BON, 2005).

O gerenciamento de problemas, de acordo com ITIL (2010), possui quatro

atividades primárias, divididas em sub-atividades:

- Controle de Problemas

- Identificar e Registrar

- Classificar

- Pesquisar e Diagnosticar

- Controle de Erros

- Identificar e Registrar

- Avaliar

- Registrar a Solução e o Fechamento

- Monitorar o Problema

- Gerenciamento Proativo de Problemas

- Analisar tendências

- Medida de suporte com objetivos definidos

- Proporcionar informações a empresa

- Finalização de revisão dos problemas graves

O controle de problemas é responsável por encontrar a solução definitiva para a

causa raiz do incidente. Este possui atividades específicas, conforme pode ser

observado na figura 8 abaixo.

Page 30: Controle de Processos com Métodos Ágeis e ITIL

29

Figura 8 - Atividades do Controle de Problemas

O controle de erros é o processo onde os erros já conhecidos são pesquisados e

corrigidos. As atividades específicas do controle de erros são apresentadas na figura 9.

Figura 9 - Atividades do Controle de Erros

HALLAIS (2009) define o erro como sendo uma condição identificada por meio

de um diagnostico bem sucedido da causa raiz de um problema, onde a falha é

confirmada e a solução provisória é identificada.

O processo de identificação de erros pode ser feito de maneira reativa ou pró-

ativa. Esta ultima é tida como sendo o modo ideal, pois o cliente não percebe qualquer

alteração em seu sistema.

Page 31: Controle de Processos com Métodos Ágeis e ITIL

30

O modo reativo visa eliminar as origens causadoras de incidentes e minimizar as

conseqüências, soluções de contorno e apresentação de propostas. Neste modo, o

cliente já está ciente do incidente e normalmente já foi afetado.

O modo pró-ativo visa prevenir incidentes e problemas, melhorando a

produtividade, realizando analise de tendências, identificando os pontos vulneráveis e

as fraquezas. Como mencionado anteriormente, neste modo, o cliente não foi afetado e

desconhece a existência do erro.

Page 32: Controle de Processos com Métodos Ágeis e ITIL

31

2. ESTADO DA ARTE

Nesta seção serão apresentados estudos feitos em sistema que apresentam

funcionalidades semelhantes as do sistema proposto, são eles: BaseCamp, ToDo List e

ClockingIT.

2.1. BaseCamp

O BaseCamp é uma ferramenta de colaboração e gerenciamento de projetos

baseada em web, onde é possível distribuir tarefas, verificar prazos e centralizar o

feedback.

Conforme 37SIGNALS (2010), o BaseCamp foi criado em 2004 e desde então

mantido pela 37Signals, ele aborda a gerencia de projetos de um ângulo totalmente

inovador até então, com enfoque na colaboração e na comunicação.

O BaseCamp é um software pago, mas possui uma versão free, capaz de

gerenciar apenas um projeto. Para iniciar o gerenciamento, basta efetuar o cadastro em

< http://basecamphq.com/ >, que será redirecionado para a sua página de Dashboard.

Nos passos que seguem, serão abordadas as principais telas do BaseCamp e

suas funcionalidades.

New Project: Permite adicionar um novo projeto ao sistema BaseCamp, como

pode ser observado na figura 10, é permitido escolher a visibilidade que o novo projeto

terá.

Figura 10 - Novo Projeto com o BaseCamp

Page 33: Controle de Processos com Métodos Ágeis e ITIL

32

DashBoard: Centraliza as informações de clientes e projetos em uma única tela,

como por exemplo, itens atrasados (1), itens pendentes para os próximos 14 dias (2),

lista de projetos disponíveis (3) e últimas atualizações do projeto (4). Estes itens podem

ser observados na figura 11.

Figura 11 - DashBoard do BaseCamp

To-do List: Permite a criação de listas de controle, com a possibilidade de

definição de pessoal responsável. Itens concluídos vão diretamente para o final da fila,

conforme mostra a figura 12.

Page 34: Controle de Processos com Métodos Ágeis e ITIL

33

Figura 12 - To-do List do BaseCamp

Milestones: Permite definir as tarefas bem como seus responsáveis, permitindo

saber para quem e para quando a mesma é devida, conforme mostra a figura 13, os

itens atrasados aparecem no topo (1), itens pendentes com entregas futuras aparecem

no calendário (2) e na lista de tarefas pendentes (3).

Figura 13 – Distribuição de Tarefas do BaseCamp

Page 35: Controle de Processos com Métodos Ágeis e ITIL

34

Time: Permite definir a estimativa de tempo a ser gasta em cada atividade, como

mostra a figura 14 e 15, permitindo também a definição do responsável.

Figura 14 - Lista de Tempo de Atividades com o BaseCamp

Figura 15 - Definição de Estimativa de Tempo com BaseCamp

O BaseCamp mostra-se uma ferramenta extremamente útil no gerenciamento de

projetos, permitindo a criação de tarefas com pessoal responsável definido, to-do lists,

controle de estimativa de tempo e compartilhamento de arquivos.

Todas suas funcionalidades são acessadas com poucos cliques, porem, a

definição de carga de trabalho torna-se demorada e não permite a visualização das

tarefas em linha de tempo.

Page 36: Controle de Processos com Métodos Ágeis e ITIL

35

2.2. ToDoList

O ToDoList é uma ferramenta open source para gestão de tarefas, mantido pela

AbstractSpoon desde 2004 e funciona apenas em desktop. Apresenta uma interface

altamente intuitiva.

Esta ferramenta permite subdividir uma atividade em partes menores de forma

muito fácil mantendo dentro de um agrupamento criado sobre a tarefa original. Cada

projeto possui seu arquivo de TaskList, o que permite gerenciar inúmeros projetos mas

não todos sobre a mesma visão.

Para executar o programa, basta efetuar o download diretamente do site

(www.abstractspoon.com), não é necessário realizar a instalação, o que permite que o

sistema rode diretamente de um Pen Drive.

Após efetuar o download, na primeira execução do sistema, uma janela de

configuração muito simples é mostrada, conforme a figura 16, onde é possível escolher

onde as configuração serão salvas e se as tasklists serão compartilhadas na rede.

Figura 16 - Configuração Inicial do ToDoList

Nas próximas janelas de configuração, é possível escolher quais colunas serão

visíveis na janela principal do sistema (figura 17) e definir qual interface será utilizada

na execução do sistema, permitindo optar pelo modo completo ou simples (figura 18).

Page 37: Controle de Processos com Métodos Ágeis e ITIL

36

Figura 17 - Configuração de Colunas do ToDoList

Figura 18 - Seleção de Interface e Projeto de Exemp lo do ToDoList

Uma das melhores características do ToDoList é sua simplicidade, tudo que é

preciso está na tela principal, possui informações importantes para gerenciamento e

previsão de entrega, como pode ser visto na figura 19.

Page 38: Controle de Processos com Métodos Ágeis e ITIL

37

Figura 19 - Tela Principal do ToDoList

O ToDoList surgiu como uma ferramenta para gerenciamento de tarefas, mas

encaixa-se perfeitamente no gerenciamento de projetos, permitindo a criação de tarefas

definindo o responsável, sua estrutura de to-do list permite uma visualização ampla das

atividades em desenvolvimento e em espera, a fácil divisão de uma atividade em sub-

atividades menores é um dos pontos em destaque deste sistema.

Todas suas funcionalidades são acessadas facilmente e estão centralizadas em

uma única janela. O fator negativo para este sistema fica em não ser possível visualizar

as tarefas para projetos distintos em um local centralizado.

2.3. ClockingIT

O ClockingIT é uma ferramenta web, totalmente free, de gerenciamento de

projetos, colaboração e TimeTracking, que permite total controle sobre as tarefas e

Page 39: Controle de Processos com Métodos Ágeis e ITIL

38

sobre o tempo gasto nas mesmas, com foco em desenvolvimento de software e

manipulação de grandes quantidades de tarefas.

O ClockingIT surgiu em 2003 como uma ferramenta para auxiliar a consultoria

prestada por Erlend e Ellen Simonsen, um casal residente em Oslo, Noruega. Erlend é

responsável por toda a programação, enquanto Ellen é responsável pelo design de

interface, gráficos e cores.

Conforme seus próprios criadores, o ClockingIT busca gerenciar seus planos de

tarefas e a agenda, permitindo verificar se a entrega de determinado requisito está

atrasada ou adiantada.

Possui excelentes relatórios que permitem obter quais tarefas foram feitas e

quanto tempo foi despendido na realização das mesmas.

Alguns elementos importantes do ClockingIT:

DashBoard: é totalmente configurável através de widgets, possui informações

referentes as tarefas mais importantes (1), tarefas novas (2) e estatísticas referentes a

projetos e tarefas em andamento (3) como Burn up e Burn down, conforme mostra a

figura 20.

Figura 20 - DashBoard do ClockingIT

Page 40: Controle de Processos com Métodos Ágeis e ITIL

39

GANTT: Criado em 1917 pelo engenheiro social Henry Gantt, este formato de

gráfico é altamente utilizado para ilustrar o avanço de diferentes etapas de um projeto.

Nele pode ser vistas as tarefas de cada membro da equipe, bem como o tempo gasto

para a execução de cada uma delas.

Construído totalmente utilizando controles Ajax, possui a grande vantagem de

configuração através de drag-and-drop e além deste recurso, basta adicionar a

estimativa de tempo e a data de vencimento da tarefa que o gráfico atualiza

automaticamente. O Gantt inserido no ClockingIT pode ser observado na figura 21.

Figura 21 - Gráfico de Gantt utilizado no ClockingIT

TaskList e To-do List: Cada tarefa criada possui dados suficientes para

classificá-la de acordo com a prioridade, impacto e urgência. Permite definir em qual

milestone está inserida e para qual projeto.

Também é possível definir o responsável e data de entrega desta tarefa, bem

como suas dependências. Cada tarefa possui seu próprio To-do.

Na figura 22, um exemplo de cadastro de Task (1) com seu To-do (2).

Page 41: Controle de Processos com Métodos Ágeis e ITIL

40

Figura 22 - Cadastro de Task e To-do List no ClockingIT

Na figura 23 é possível ver a lista de tarefas, em vermelho as tarefas atrasados e

em verde as tarefas em espera para a próxima interação.

Figura 23 - Lista de tarefas no ClockingIT

Page 42: Controle de Processos com Métodos Ágeis e ITIL

41

O ClockingIT mostra-se uma excelente ferramenta para gerenciamento de

projetos, permitindo a criação de tarefas com pessoal responsável definido, to-do lists

separados por tarefas, controle de estimativa de tempo, indicadores de BurnUp e

BurnDown e compartilhamento de arquivos.

Todas suas funcionalidades são acessadas com poucos cliques. Possui um

grande diferencial em relação às outras ferramentas analisados, o Gráfico de Gantt,

que permite visualizar de forma bastante clara o andamento dos projetos bem como o

desempenho dos elementos da equipe.

2.4. Comparativo de Ferramentas

Todas as ferramentas propõem a gerencia de projetos com o controle de

processos envolvidos utilizando de algum artefato para controle de tarefas e

prioridades.

Este comparativo terá seu foco nas principais atribuições ou características que

um sistema de gerenciamento de projetos pode ter como:

- Plataforma

- Valor (Licença)

- Controle de Tarefas

- Controle de Estimativa de Tempo

- To-Do List’s

- Tarefas em linhas de tempo

- Controle de Arquivos Anexos

- Estimativa de Qualidade de Desenvolvimento

- Base de Conhecimento

- Acompanhamento por Feed-RSS

Page 43: Controle de Processos com Métodos Ágeis e ITIL

42

Característica BaseCamp ToDoList ClockingIT CaseSupport

Plataforma Web Windows

Desktop

Web Windows

Desktop

Valor da Licença Paga. Versão

free possui

limitações.

Open Source Free

Controle de

Tarefas

Controle de

Estimativa de

Tempo

To-do List’s

Tarefas em Linha

de Tempo

Controle de

Arquivos Anexos

Estimativa de

Qualidade de

Desenvolvimento

Base de

Conhecimento

Formato Wiki

– alimentado

manualmente

por

mensagens ou

writeboards

Formato Wiki

– Alimentado

manualmente

Gerado

automaticamente

conforme o

registro de

Incidentes e

Problemas

Acompanhamento

por Feed-RSS

Quadro 6 - Comparativo de Ferramentas

Page 44: Controle de Processos com Métodos Ágeis e ITIL

43

3. Solução Proposta

Nesta seção serão apresentadas informações referentes ao sistema proposto,

como uma breve visão do sistema, tecnologias utilizadas e funcionalidades importantes.

O sistema se chamará CaseSupport.

3.1. Visão

O sistema proposto será capaz de centralizar as informações de incidentes e

problemas, gerar uma base de conhecimento, controlar a distribuição de tarefas,

estimativas de tempo, tempo gasto por atividade e medir a qualidade de

desenvolvimento sobre determinada implementação ou de indivíduo específico.

Como uma das metas deste projeto, busca-se uma ferramenta capaz de agilizar

a distribuição de tarefas de forma funcional e efetiva. Para que tal meta seja atingida,

será necessário que o responsável por tal distribuição conheça o potencial de produção

de sua equipe.

Dentre as métricas que o sistema de controle de processos propõe-se a gerar,

destacam-se os seguintes índices: qualidade e produtividade.

Produtividade: será a quantidade de tarefas que a equipe será capaz de

produzir em determinado período de tempo, que pode ser estabelecido como sendo o

período entre as interações.

Qualidade: será basicamente o índice de sucesso do desenvolvedor em concluir

determinada tarefa, de acordo com seu grau de dificuldade. Muitas vezes ocorre de

uma tarefa ser liberada para homologação e retornar, pois não atingiu a funcionalidade

total esperada ou surgiram outros erros decorrentes da alteração efetuada no código

fonte. O número destas “reincidências” irá afetar a qualidade do trabalho realizado.

A melhor fórmula de calcular está métrica ainda está sendo estudada.

3.2. Protótipo

O protótipo desenvolvido até então, permite coletar as informações de incidentes

e problemas, gera uma base de conhecimento para futuras pesquisas e possibilita o

controle de tarefas por usuários do sistema.

Page 45: Controle de Processos com Métodos Ágeis e ITIL

44

Quando o mesmo foi idealizado, em 2008, ainda não existia a visão proposta de

unir as metodologias ágeis com as boas práticas do ITIL em um único sistema para

controle de processos, como pode ser observado na figura 24, as nomenclaturas

utilizadas não condizem com os padrões propostos pelo ITIL. Outros itens que podem

ser observados na figura abaixo são: histórico do atendimento (1), lista de tarefas (2),

dados do atendimento (3) e histórico de alterações (4).

Figura 24 - Tela principal do Protótipo CaseSupport

Outras funcionalidades que podem ser observadas já no protótipo são:

- Controle de arquivos anexos (figura 25);

- Auxilio para elaboração de planos de teste (figura 26);

- Controle de alterações por versão (figura 27).

Page 46: Controle de Processos com Métodos Ágeis e ITIL

45

Figura 25 - Controle de Arquivos Anexos do CaseSupp ort

Figura 26 – Plano de Teste elaborado com Auxilio do CaseSupport

Page 47: Controle de Processos com Métodos Ágeis e ITIL

46

Figura 27 - Controle de Alterações por Versão no Ca seSupport

Estas são algumas funcionalidades já implementadas. Espero que, no decorrer

da elaboração do segundo trabalho de conclusão de curso, consiga atingir meus

objetivos e apresentar o sistema conforme o proposto.

3.3. Funcionalidades Importantes

Dentre as funcionalidades propostas para o sistema de gerenciamento,

destacam-se:

- Controle de Tarefas;

- Histórico de Alterações e Atendimentos;

- Registro de Incidentes e Problemas;

- To-do List por tarefa;

- Programar a entrega de tarefas;

- Visualizar em linha de tempo o cronograma de desenvolvimento;

- Controle de Arquivos Anexos;

- Controle de Estimativa de Tempo;

- Base de Conhecimento;

- Auxilio na elaboração de planos de teste.

Page 48: Controle de Processos com Métodos Ágeis e ITIL

47

3.4. Modelagem

Como até então trata-se apenas de um protótipo, os seguintes diagramas serão

incorporados apenas como caráter preliminar, pois estes provavelmente sofrerão

alterações no decorrer do projeto.

3.4.1. Caso de Uso

A figura 28 mostra o diagrama de caso de uso para a abertura de um chamado,

através do suporte telefônico, por e-mail ou diretamente pela web.

Figura 28 - Diagrama de Caso de Uso

Neste diagrama, o usuário do sistema detecta um erro, comunica o suporte por

e-mail ou telefonema e este dará a entrada das informações no banco de dados do

sistema de controle. O usuário pode inserir diretamente os dados do incidente

detectado diretamente no sistema web, que se encarrega de incluir no banco de dados

do sistema de controle.

Page 49: Controle de Processos com Métodos Ágeis e ITIL

48

3.4.2. Diagrama de Classes

A figura 29 mostra o diagrama abaixo mostra a reação das principais classes

encontradas no sistema.

Figura 29 - Diagrama de Classes do CaseSupport

No diagrama acima, observa-se a centralização dos processos sobre a classe

TCases, que é responsável pelo registro de tarefas, bem como incidentes e problemas.

3.4.3. Diagrama ER

A figura 30 mostra o diagrama de entidade-relacionamento (ER) das principais

tabelas que compões o sistema até o presente momento.

Page 50: Controle de Processos com Métodos Ágeis e ITIL

49

Figura 30 - Diagrama ER do Sistema CaseSupport

Como pode ser observado no ER, basicamente todo sistema gira em torno das

tarefas, representado pela tabela “CASES”.

3.5. Tecnologias Utilizadas

Nesta seção, será abordado alguns tópicos referentes as tecnologias utilizadas

para a criação do software proposto.

Page 51: Controle de Processos com Métodos Ágeis e ITIL

50

3.5.1. CodeGear RAD Studio

O CodeGear RAD Studio é uma excelente ferramenta de desenvolvimento, com

suporte a desenvolvimento nas linguagens .NET, C++ e Pascal.

Seu antecessor, o Delphi, dava suporte apenas a linguagem Pascal, com esta

nova versão estendendo-se para outras linguagens, teve seu nome alterado para RAD

Studio, mesmo assim, muitos desenvolvedores que utilizam esta ferramenta ainda o

chamam de Delphi.

O Delphi, atualmente possui a versão RAD Studio 2010, comercializado pela

empresa Embarcadero Technologies Inc, da suporte a diversas ferramentas integradas

diretamente em sua IDE que proporcionam suporte a uma vasta gama de recursos,

dentre eles:

- Suporte a banco de dados relacional cliente/servidor;

- Elementos de programação Windows e COM;

- Suporte a desenvolvimento Web e Intranet;

- Suporte a diagramas de classe e objetos;

- Garantias de qualidade (QA) com auditorias e métricas.

Segundo EMBARCADERO (2010), o RAD Studio é a mais poderosa suite para

desenvolvimento RAD e visual da indústria para criação de softwares que requerem

interfaces ricas e acesso a dados pelo usuário final, possibilitando a entrega de

aplicações 5 vezes mais rápidas em diferentes plataformas Windows e banco de dados.

3.5.2. FireBird

O FireBird é um banco de dados relacional que surgiu em 1981, funciona em

Unix, Linux, Windows, e uma variedade de outras plataformas cliente/servidor. Possui

suporte a: transações (concorrentes), linguagens de alto desempenho, procedures e

triggers.

Conforme FIREBIRD (2010), O FireBird é um projeto comercialmente

independente de programadores C e C++, conselheiros técnicos e suportes de

Page 52: Controle de Processos com Métodos Ágeis e ITIL

51

desenvolvimento em plataforma multi-sistema de RDBMS, baseado no código fonte

liberado pela Inprise Corp (agora conhecido como Borland Software Corp).

Segundo BORRIE (2006), O FireBird é um SGBDR de capacidade industrial com

alto nível de compatibilidade com a linguagem SQL, implementando ao mesmo tempo

recursos poderosos na esfera de programação procedural.

Possuindo código fonte open source, qualquer pessoa pode efetuar alterações e

criar uma versão personalizada, desde que mantenha a licença IDPL.

3.5.2.1. Banco de Dados Relacional

Em 1970, Edgar Frank Codd criou uma nova forma de juntar dados, que foi

chamada de banco de dados relacional. A sua ideia era quebrar os dados em arquivos

separados que pudessem ser relacionados usando-se um campo-chave em comum.

Para um arquivo de empregados, provavelmente as empresas usariam um número de

empregado como campo-chave. Cada empregado receberia um número de

identificação exclusivo e haveria um único arquivo informações gerais sobre cada

empregado, como: nome, endereço e outros dados básicos do empregado.

Haveria outro arquivo com o número do empregado e sua respectiva

remuneração, outro arquivo com o número do empregado e os benefícios a que teria

direito e assim por diante. As informações básicas, como nome e endereço,

apareceriam somente uma vez. Cada departamento teria um programa que usaria o

número do empregado para relacionar os dados básicos de que ele necessitava.

Com este formato de dados, a maioria dos controles de relacionamento de dados

estava no programa de gerenciamento de banco de dados. Este novo paradigma tirou a

responsabilidade de programadores terem de criar ponteiros que relacionassem um

arquivo ao outro.

Utilizando a teoria dos conjuntos, Codd analisou o banco de dados relacional e

descobriu maneiras de minimizar as repetições em buscas e ligações de entidades,

quebrando os dados em unidades separadas menores.

Como os bancos de dados relacionais são simples de visualizar e usar,

rapidamente transformaram-se no método preferido para lidar com dados complexos

(SIEGEL, 1994).

Page 53: Controle de Processos com Métodos Ágeis e ITIL

52

Uma das maiores razões para o sucesso dos bancos de dados relacionais é a

presença da SQL, a linguagem mais padronizada para comunicação com bancos de

dados. Embora a SQL seja cheia de acréscimos aborrecidos e complicados específicos,

o núcleo da sua sintaxe é comum e bem compreendido (FOWLER, 2006).

Page 54: Controle de Processos com Métodos Ágeis e ITIL

53

4. Cronograma de Desenvolvimento

O cronograma de desenvolvimento do Trabalho de Conclusão de Curso (TCC)

seguirá as atividades apresentadas nos quadros a seguir.

4.1. TCC I

Descrição da tarefa Mar Abr Mai Jun Jul

Reunião inicial do Trabalho de Conclusão

Entrega da definição do tema e do orientador

Reuniões com o orientador

Entrega da Proposta de Trabalho de Conclusão

Acompanhamento dos projetos da organização onde será

realizado o referido trabalho.

Levantamento de material bibliográfico

Referencial teórico

Elaboração da Monografia do Trabalho de Conclusão de

Curso I

Entrega da Monografia do Trabalho de Conclusão de Curso I

Preparação da Apresentação para o Seminário de

Andamento

Seminário de Andamento

Quadro 7- Cronograma de desenvolvimento do TCC I

Page 55: Controle de Processos com Métodos Ágeis e ITIL

54

4.2. TCC II

Descrição da tarefa Ago Set Out Nov Dez

Adequações propostas pela banca no TCCI

Reuniões com o orientador

Implantação da metodologia e desenvolvimento do software

proposto.

Elaboração da Monografia do Trabalho de Conclusão de

Curso II

Entrega da Monografia para a Banca

Preparação da Apresentação para a Defesa do Trabalho de

Conclusão

Defesa

Quadro 8 - Cronograma de desenvolvimento do TCC II

Page 56: Controle de Processos com Métodos Ágeis e ITIL

55

CONSIDERAÇÕES FINAIS

Todas as atividades relacionadas ao desenvolvimento de produtos de software

sofrem alterações, motivadas por inúmeros aspectos, como novas necessidades de

mercado, novas necessidades do cliente, crescimento/diminuição dos negócios,

restrições de orçamento ou cronograma.

Para acompanhar estas mudanças e manter o nível de satisfação do usuário final

sem elevar os custos de produção do software, é necessário possuir mecanismos para

controle destas alterações que proporcionem métodos de gerenciar a equipe de

desenvolvimento como: definição de tarefas, controle de estimativa de tempo, controle

do tempo gasto com implementações, capacidade e qualidade de produção.

Com a utilização de metodologias ágeis é possível elevar os ganhos em ordem

de grandeza proporcionada pelo baixo custo gerado para alterar o software a qualquer

momento, em comparação com as metodologias de desenvolvimento tradicionais.

Fica evidente que ao utilizar um sistema que proporcione as métricas citadas

anteriormente e que este utilize alguns dos conceitos presentes nos métodos ágeis,

estes ganhos podem ser ainda mais elevados.

Este tipo de sistema tem se mostrado como sendo fundamental para empresas

que lidam com o desenvolvimento de software, pois todo o sistema muda, ele necessita

ser modificado, seja para correção de bugs, adição de novas funcionalidades ou

aperfeiçoamento das já existentes, em suma, eles sempre evoluem, em resposta às

exigências de mudanças.

O sistema de controle de requisitos não irá sanar todas as necessidades de

negócio envolvidas na produção de software, mas irá proporcionar grande auxilio na

distribuição de tarefas e fechamento de cronogramas, permitindo produzir mais em

menos tempo.

Page 57: Controle de Processos com Métodos Ágeis e ITIL

56

REFERÊNCIAS

37SIGNALS. Simple small business software, collaboration, CRM: 37signals.

Disponível em: <http://37signals.com/>. Consultado em Junho de 2010.

AGILEMANIFESTO, Manifesto for Agile Software Development . Disponível em:

<http://www.agilemanifesto.org>. Consultado em Março de 2010.

AMARAL, Fernando. Dicas de Mapeamento Objeto/Relacional . Disponível em:

<http://www.fernandoamaral.com.br/Default.aspx?Artigo=55>. Consultado em Abril de

2010.

AQUINO, Larissa R. Lira. Gerenciamento de Incidentes, segundo ITIL. MBA

Governança de Tecnologia da Informação. Faculdade Católica de Cuiabá, 2008.

BASECAMP. Project management, collaboration, and task softwar e. Disponível em:

<http://basecamphq.com/>. Consultado em Maio de 2010.

BON, Jan Von. Foundations of IT Service Management, based on ITIL . Lunteren - Holanda: Van Haren Publishing, 2005.

BORRIE, Helen; Tradução: FERNANDES, Acauan. Dominando o FireBird: Uma

Referência Para Desenvolvedores de Banco de Dados. Rio de Janeiro: Editora

Ciência Moderna, 2006.

CCTA, Central Computer and Telecommunications Agency. Service Support. Londres,

2000.

CLOCKINGIT. ClockingIT, Timetracking 2.0. Disponível em:

<http://www.clockingit.com/>. Consultado em Maio de 2010.

Page 58: Controle de Processos com Métodos Ágeis e ITIL

57

DESCHAMPS, Alexandro. SWAROWAKY, Hugo H. Gerencia de Configuração –

Ápice da Engenharia de Software . 2008.

ELMASRI, Ramez. Sistemas de Banco de Dados . São Paulo: Pearson Addison

Wesley, 2005.

EMBARCADERO. Embarcadero Technologies Inc . Disponível em:

<http://www.embarcadero.com>. Consultado em Junho de 2010.

FDD, Feature Driven Development - The portal for all thi ngs of FDD . Disponível em:

<http://www.featuredrivendevelopment.com/>. Consultado em Maio de 2010.

FIREBIRD. Firebird - The RDBMS that's going where you're goin g. Disponível em:

<http://www.firebirdsql.org>. Consultado em Junho de 2010.

FOWLER, Martin. Padrões de Arquitetura de Aplicações Corporativas . Porto Alegre:

Bookman, 2006.

FOWLER, Martin. Enterprise Patterns . Disponível em:

<http://www.martinfowler.com/articles/enterprisePatterns.html>. Consultado em Abril de

2010.

GAMMA, Erich. HELM, Richard. JOHNSON, Ralph, VLISSIDES, John. Padrões de

Projeto – Soluções reutilizáveis de Software Orient ado a Objetos . Bookman, 2000.

HALLAIS, Vitor; ALVES, Ramon. Gerencia de Serviços: Gerenciamento de

Problemas baseado no Modelo ITIL. Monografia de Engenharia de Software, PUC-

Minas, 2009.

HAUENSTEIN, Deise. Monografias, dissertações e teses : manual completo para

normalização segundo a ABNT. Porto Alegre: Nova Prova, 2008.

Page 59: Controle de Processos com Métodos Ágeis e ITIL

58

HEUVEL, Willem-Jan van den. Aligning modern business processes and legacy

systems: A component-based perspective. Massachusetts Institute of Technology,

2007.

HILMER, Gustavo. Métodos Ágeis – O que são métodos ágeis. Graduação em

Ciências da Computação, Universidade Federal de Brasília (UNB), 2004.

ITIL, ITIL® Home . Disponível em: <http://www.itil-officialsite.com/home/home.asp>.

Consultado em Março de 2010.

LARMAN, Craig, Utilizando UML e Padrões: uma introdução à análise e ao projeto

orientado a objetos . 3ª edição, Porto Alegre: Bookman, 2007.

MANHÃES, Vinícius. UM ESTUDO DE CASO DA ADOÇÃO DAS PRÁTICAS E

VALORES DO EXTREME PROGRAMMING . Universidade Federal do Rio de Janeiro -

UFRJ, IM / DCC, 2005.

MARTIN, James. Princípios de Análise e projeto baseados em objetos . James

Martin; tradução de Cristina Bazán. Rio de Janeiro: Campus, 1997.

MAURER, Martel. Extreme Programming: Rapid Development for Web-Base d

Applications . IEEE Internet Computing, 2002.

O’ BRIEN, James A. Sistemas de informação e as decisões gerenciais na era da

Internet . James A. O’Brien; tradução Célio Knipel Moreira e Cid Knipel Moreira. 2ª ed.

São Paulo: Saraiva, 2006.

SCHWABER, Ken. SUTHERLAND, Jeff. Scrum Guide . Scrum.Org, 2008.

SIEGEL, Charles. A B C’s of Paradox . Longman Higher Education, Londres. 1990.

Page 60: Controle de Processos com Métodos Ágeis e ITIL

59

SEACORD, Robert C.; PLAKOSH, Daniel; LEWIS, Grace A. Modernizing Legacy

Systems: Software Technologies, Engineering Process es, and Business

Practices. Addison Wesley, 2003.

SEBESTA, Robert W. Conceitos de Linguagens de Programação. Robert W.

Sebesta; tradução de José Carlos Barbosa dos Santos – 4ª ed. Porto Alegre: Bookman,

2000.

SOFTWAREMINING. Breathing life into legacy applications. Disponível em:

<http://www.softwaremining.com/index.jsp>. Consultado em Maio de 2010.

SOMMERVILLE, Ian. Engenharia de Software ; tradução André Maurício de Andrade

Ribeiro; revisão técnica Kechi Hirama. São Paulo: Addison Wesley, 2003.

SOLLER, David. Progress Report on the National Geologic Map Databa se, Phase 3:

An Online Database of Map Information. U.S. Geological Survey Open Report, 2001.

SWEBOK. Guide to the Software Engineering Body of Knowledge . IEEE: Computer

Society, 2004. Disponível em:

<http://www2.computer.org/portal/web/swebok/htmlformat>. Consultado em Maio de

2010.

TELES, Vinícius Manhães, Um Estudo de Caso da Adoção das Práticas e Valores

do Extreme Programming . Orientador: Carlo Emmanoel Tolla de Oliveira. Rio de

Janeiro : UFRJ/IM, 2005. Dissertação (Mestrado em Informática).

TODOLIST. ToDoList Resources AbstractSpoon Software. Disponível em:

<http://www.abstractspoon.com/>. Consultado em Maio de 2010.

Page 61: Controle de Processos com Métodos Ágeis e ITIL

60

XP, Extreme Programming (XP): A Gentle Introduction. Disponível em:

<http://www.extremeprogramming.org/>. Consultado em Março de 2010.