1 Universidade de Pernambuco Faculdade de Ciência e Tecnologia de Caruaru Bacharelado em Sistemas de Informação UMA PROPOSTA DE BUG TRACKER ORIENTADA A PROCESSOS COM ÊNFASE EM REQUISITOS PARA APOIAR DESENVOLVIMENTO DE SOFTWARE ÁGIL Trabalho de Graduação Sistemas de Informação Tarcísio Ferreira De Souza Cavalcanti Orientador: Prof. Msc. Rômulo César Dias de Andrade 2 TARCÍSIO FERREIRA DE SOUZA CAVALCANTI UMA PROPOSTA DE BUG TRACKER ORIENTADA A PROCESSOS COM ÊNFASE EM REQUISITOS PARA APOIAR DESENVOLVIMENTO DE SOFTWARE ÁGIL Monografia apresentada como requisito parcial para obtenção do diploma de Bacharel em Sistemas de Informação pela Faculdade de Ciência e Tecnologia de Caruaru – Universidade de Pernambuco. Caruaru, dezembro, 2014 3 Dedico este trabalho ao meu pai Luiz e minha mãe Tereza, e minhas a irmãs Taiza, Tassia, Tacira e Tais por todo o carinho amor e dedicação. 4 Agradecimentos. A Deus causa primeira e razão de todas a coisas. Razão pela qual hoje estamos, aqui e pela qual tive a oportunidade poder concluir este trabalho. A Lei de Causa e Efeito, lei natural e universal, não existe efeito sem causa, nem causa sem efeito. A meu pai Luiz minha mãe Tereza a minhas irmãs Taiza, Tassia, Tacira e Tais por todo amor incentivo, e dedicação e ensinamentos. Aos meus Avós José (in memoriam) Antônia (in memoriam), Augusto (in memoriam), Neposiana (mãe branca) (in memoriam), pelos ensinamentos passados aos meus pais, e carinho que pude desfrutar enquanto estavam no plano terrestre. Aos meus tios Avos (in memoriam) pelas palavras de sabedoria, em especial aos meus tios Jacinto e “Pradin Sé”. A minha família, aos meus tios e tias paternos a minha Tia materna Dona Cicera, a minha madrinha Socorro ao meu padrinho Assis, aos meus primos Antônio(Quirino), Camyla (Amarela) demais primos. A Pitadoras, Isaac newton, Abert Einstein a este e outros cientistas que não estão citados, se não ia terminar a página e ainda ia ter nomes por citar, por tudo que fizeram pela matemática e pela física, suas descobertas teoremas, conhecimento. Aos filósofos, Platão, Friedrich Nietzsche aos iluministas e aos que estiveram na revolução francesa, por toda revolução intelectual que poderão trazer a humanidade. A Napoleão Bonaparte por ter ido ir invadir Portugal e assim fazer com que a corte portuguesa mudasse para o Brasil e o resultou na independência. A democracia tão linda ao qual vivemos A Pernambuco esse estado lindo de cultura sem igual, terra dos altos coqueiros do melhor carnaval do mundo, do Recife a Petrolina meu coração se enche de alegria e amor, o paraíso na terra é Pernambuco, ser pernambucano é uma honraria. Ao todos os poetas que tive oportunidade ler por todos que ainda ei ler, por cada verso que me encantou e inspirou e inspirara os meus dias. A Eduardo Campos (in memoriam) por ter assinado a gratuidade da Upe. A Dilma, Aécio Neves, Marina silva, Lucina Genro e Eduardo Jorge pastor Everaldo por terem feitos a pior campanha que já vi em toda minha vida. 5 Ao politicamente correto por ter criado tantos juízes em nossa sociedade, Se dizem defensores da liberdade. E no fim das contas pregam o discurso da via única, quando podem atiram a primeira pedra, mesmo cometendo as mesmas atitudes que condenam. A Reginaldo Rossi, Luiz Gonzaga , Raul Seixas, The Beatles, Elvis, Volver, Mamonas, Azeitonas, Pedro Abrunhosa , ao Sonata Ártica Nightwish ao Epica, Pablo do arrocha e pelas músicas que fizeram parte da trilha sonora deste trabalho. Aos meus professores por todo conhecimento que poderão me passar, ao professor Rômulo por toda paciência que teve em me orientar. Aos amigos meus de faculdade, aos meus companheiros de Rotaract Cassio, Caio, Daniel, Daniel Siqueira, Karina, João, Mari, Marcinha Marcella, Thiago, Stefanie, Rebeka, Joyce, Vânia pela oportunidade de presidi-lo em momento tão especial de minha vida, às pessoas que através dele tive a oportunidade conhecer e colaboram para o meu amadurecimento, James, Wyama, Bia, Sildemberg, a paraibana Hyalle, Dalila, Diego, Demais companheiros do distrito 4500, o Rotaract para mim foi a maior oportunidade de aprendizado que puder ter nesses últimos tempos, Amo vocês. Ao Esde, que por tantas quartas feiras foi meu refúgio onde tive oportunidade de Compreender melhor a vida, e poder despertar e mim a vontade ser melhor a cada dia. Aos meus amigos de internet e leitores do recanto das letras que leem meus simples textos e desabafos e pela paciência. Samatha por ter me ajudado com os slides. A Diego, Nerd, Raul Hallyson, Laercio, Elton, Cleyllton, Rik, Leticia, Polliana Francisco, minhas vizinhas e atuais moradores do AP 102 por todos momentos e resenhas, Ozair, Saulo e Nayara pelos resumos que fizeram e que tanto me ajudaram. A Deksa por todos os aperreios e apoio, e carinho. A todos que vocês de algum modo estiveram presentes nessa minha trajetória por caruaru meu muito obrigado. 6 Resumo A busca pela excelência e êxito no desenvolvimento de software, fez com que ao longo do tempo surgissem métodos para não somente produzi-los mas garantir também a qualidade do software. Com métodos ágeis a engenharia passou a valorizar as interações que ocorrem no processo de desenvolvimento, Entre as interações está presente a volatilidade dos requisitos exigidos pelo cliente, os requisitos evoluem e se modificam com próprio processo de desenvolvimento, para apoiar o esse processo em metodologias como Scrum existem uma série de ferramentas para apoiar os desenvolvedores, elas têm foco em fornecer base de histórica e detalhamento dos requisitos a serem implementados. Nesse cenário surge Business Process Management (BPM) paradigma da computação empresarial para incrementar agilidade nas organizações. Nesse contexto este trabalho tem como proposta o desenvolvimento de uma ferramenta de que use Bug tracker BPM como forma de gestão alinhada com as práticas ágeis e assim facilitando a adaptação dos processos internos das organizações ao processo de desenvolvimento de software e com isso gerar indicadores de produtividade, gargalos e melhorias, possibilitando tomada de decisão da alta gestão para apoiar o desenvolvimento de software ágil com ênfase nos requisitos, através da automação de processos de numa metodologia ágil. Palavras-chave: Engenharia de software; Requisitos; Métodos ágeis; Scrum; BPM; Bug tracker; 7 Abstract The search for excellence and success in software development, has made over time arose methods to not only produce them but also ensure the quality of software. With agile engineering came to value the interactions that occur in the development process, Among the interactions is present volatility of the requirements required by the customer, the requirements evolve and change with the development process itself, to support this process in methodologies such as Scrum there are a number of tools to support developers, they have focused on providing historical base and detailing requirements to be implemented. In this scenario arises Business Process Management (BPM) paradigm of enterprise computing to increase agility in organizations. In this context, this paper aims to develop a tool that uses Bug tracker BPM as a way to line management with agile practices and facilitating the adaptation of internal processes of organizations to the software development process and thus generate productivity indicators , bottlenecks and improvement, allowing for making senior management's decision to support the agile software development with emphasis on the requirements through the automation of processes in an agile methodology. Keywords: Software engineering; Requirements; Agile methods; Scrum; BPM; Bug tracker 8 LISTA DE FIGURAS Figura 1. Ciclo de vida modelo cascata. Figura 2. O ciclo de vida Scrum. Figura 3. Elementos de um processo. Figura 4. Modelo do processo do Bug tracker baseado na metodologia Scrum na notação BPMN. Figura 5. Cadastrar Backlog. Figura 6. Analisar Backlog. Figura 7. Sprint Backlog. Figura 8. Desenvolver Requisito. Figura 9. Realizar Testes. Figura 10. Revisão da Sprint. Figura 11. Realizar Implantação. Figura 12:Grafíco de analise carga. Figura 13: Gráficos dos trabalhos em andamento. Figura 14: Tempo de Ciclo. Figura 15: Histograma de duração. Figura 16: Atividade do processo. Figura 17. Classificação de Atividades. 9 Sumário 1 INTRODUÇÃO ......................................................................................................... 10 1.1 CARACTERIZAÇÃO DO PROBLEMA ......................................................... 10 1.2 OBJETIVOS E METAS ..................................................................................... 10 1.3 METODOLOGIA E ESTRATÉGIA DE AÇÃO ............................................. 11 1.4 RESULTADOS E IMPACTOS ESPERADOS ................................................ 12 2. REVISÃO DE LITERATURA ................................................................................ 13 2.1 ENGENHARIA DE SOFTWARE .................................................................... 13 2.1.1 ENGENHARIA DE REQUISITOS ............................................................ 16 2.1.2 DEFEITO DE SOFTWARE ....................................................................... 18 2.2 METODOS AGEÍS............................................................................................. 19 2.2.1 SCRUM ......................................................................................................... 21 2.3 BPM...................................................................................................................... 24 2.3.1 MODELAGEM DE PROCESSOS ............................................................. 26 2.3.3 BPMS ............................................................................................................. 27 3. PROPOSTA DE BUG TRACKER ORIENTADO PROCESSOS ....................... 30 4 CONCLUSÕES.......................................................................................................... 40 REFERÊNCIAS BIBLIOGRÁFICAS ....................................................................... 42 10 1 INTRODUÇÃO 1.1 CARACTERIZAÇÃO DO PROBLEMA Os processos de negócios têm que oferecer vantagens competitivas, logo, para serem efetivadas, as organizações devem ser capazes de definir, analisar, melhorar, medir e controlar os seus processos (ANDRADE et al, 2013). Uma das abordagens crescentes no mercado com este objetivo é o gerenciamento de processos de negócio. De acordo com Korhonen (2007), Business Process Management (BPM) é um paradigma chave da computação empresarial para incrementar agilidade nas organizações. Segundo Kaplan & Norton (1997), tradicionalmente as corporações têm tratado suas unidades de serviço de TI como centros de despesas distintos, o que pouco contribui para alinhá-las, de modo à melhor servir às unidades de negócio e à corporação. Nesse contexto surge à necessidade de desenvolver uma ferramenta orientada a processos que apoie as empresas de desenvolvimento software que utilizam metodologia ágil como forma de gestão, resultando assim em um melhor controle, aumentando a visibilidade e gerando indicadores de produtividade dentro dos processos ágeis. 1.2 OBJETIVOS E METAS Desenvolver uma ferramenta de Bug tracker que seja alinhada com as práticas ágeis e assim facilitando a adaptação dos processos internos das organizações ao processo de desenvolvimento de software e com isso gerar indicadores de produtividade, gargalos e melhorias, possibilitando tomada de decisão da alta gestão. São objetivos deste trabalho: Revisão da literatura dos assuntos abordados; Pesquisar ferramentas de Bug tracker. Desenvolver uma ferramenta que consolide a proposta do trabalho aqui pesquisado. 11 1.3 METODOLOGIA E ESTRATÉGIA DE AÇÃO Ao utilizar modelos de referências de processo juntamente com metodologias de gestão de projeto, a organização tende a enfrentar uma série de desafios, como a existência de possíveis sobreposições entre os modelos e metodologias, as quais devem ser tratadas. Neste sentido, uma forma de abordar as similaridades e diferenças entre eles é mapear os requisitos de um modelo em relação aos requisitos da gestão. Mesmo que os requisitos sejam compatíveis ou complementares, as diferenças de rigor podem significar que os resultados de um modelo podem não atender ao requisito da gestão (PAULK, 2004). Para que seja possível atender os objetivos deste trabalho, responder as questões de pesquisa e entender os assuntos que embasaram a ferramenta a ser desenvolvida, foi utilizada a metodologia de pesquisa revisão da literatura. Após a revisão da literatura será possível observar a importância de identificar as interseções do gerenciamento do processo de negócio com as metodologias ágeis, bem como a relevância de elaborar uma ferramenta de apoio para junção e a realização da implantação dos conceitos abordados na pesquisa. A visão geral da metodologia de pesquisa utilizada para realização deste trabalho, foi composta por duas etapas. A primeira etapa se refere à realização de uma Revisão da Literatura do assunto de pesquisa para identificar, analisar e selecionar os trabalhados disponíveis relacionados ao tema. Além da revisão informal, um estudo baseado em revisão sistemática será conduzido, com o objetivo de reduzir o viés de uma revisão informal e, também, permitir que a pesquisa bibliográfica possa ser atualizada com novas publicações (KITCHENHAM, 2004). A segunda etapa após a identificação dos assuntos abordados na revisão da literatura, foi desenvolvido uma ferramenta de Bug tracker para apoiar processos de fabricação do software com ênfase nos requisitos, para que cada etapa do processo possa ser monitorada e apresente ganhos reais de eficiência, e forneça a equipe dados estáticos sobre detalhados sobre o processo. As duas etapas da metodologia de pesquisa têm como objetivo: 1. Identificar os desafios na gestão ágil; 2. Identificar os procedimentos, etapas e processos contidos em uma documentação ágil; 12 3. Identificar os métodos ágeis e as interações das atividades e dos procedimentos internos adotados nas organizações; 4. Identificar relacionamento dos assuntos abordados com os a ferramenta proposta. 5. Desenvolver uma ferramenta Bug tracker para apoiar o desenvolvimento de Sofware ágil 1.4 RESULTADOS E IMPACTOS ESPERADOS O mapeamento dos processos de desenvolvimento software, utilizando metodologia ágeis visa garantir maior consistência na entrega do produto dando ao cliente a possibilidade de dispor da ferramenta em um tempo menor, garantindo com que os esforços para cumprir os requisitos o sejam otimizados. Quando as etapas do trabalho forem devidamente concluídas será possível mensurar, o quanto se pode ganhar na eficiência e do cumprimento dos requisitos, e fazer com que as metodologias ágeis melhorem culturalmente a maneira com que os processos orientados a requisitos são trabalhados pelas organizações. O resultado esperando da primeira etapa do trabalho dará as bases para que o Bugtrack orientado a processos com ênfase em requisitos possa ser construído, atendendo as intersecções com metodologias ágeis. A segunda etapa é ter uma ferramenta capaz trazer uma melhor tomada de decisão e agilizando o cumprimento dos requisitos, fazendo com que cada etapa do desenvolvimento apresente ganhos reais de eficiência e uma estruturação ampla dos processos de fabricação do software 13 2. REVISÃO DE LITERATURA 2.1 ENGENHARIA DE SOFTWARE De acordo com MAFRA (2004), durante os últimos 20 anos, sistemas de software tem exercido um papel fundamental e crítico em nossa sociedade, estão presentes em nosso dia a dia, desde aplicações simples de smartfone, editores de texto, até aplicações mais complexas ERPs softwares para gerenciamento de redes, sistemas de banco de dados entre outras ferramentas. Segundo PINTO (2011), na década seguinte, a de 1960, constatou-se que desenvolver softwares é diferente de desenvolver hardware. O desenvolvimento de hardware exige uma exaustiva revisão de projeto antes que este possa ser posto na linha de produção, já o software permite que a medida que ele seja produzido, permite que ele seja revisado e testado. Ao longo do tempo, a demanda por softwares aumentou consideravelmente, aumentou também a complexidade dos softwares. Esses fatores no decorrer do tempo fizeram com que problemas em relação a produção fossem aparecendo, problemas esses que foram se repetindo de forma recorrente nos diversos tipos de sistemas, a esses problemas recorrente damos o nome de crise software. A crise software abrange problemas relacionados a diversas áreas do software pautados, desde a maneira ao qual softwares eram projetados pelos gerentes de projetos, que concentravam suas preocupações nos custos e no tempo de produção, a maneira como ocorre a implantação das ferramentas de software, a maneira como era feita a manutenção da mesma. Fatores esse afetam a qualidade e estabilidade, condições que se precisam garantir para que o usuário possa desfrutar dos recursos presente no software. No processo de implantação, os usuários devem ter uma fácil adaptação a utilização. A manutenção precisa ser feita de maneira dinâmica de modo que as atualizações da ferramenta de software possam atender necessidades de utilização do usuário, necessidades essas como a adição de funções e revisões do design, e corrigir problemas de funcionamento. Como reação a essa crise houve, o estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente software que seja confiável e que funcione eficientemente em máquinas reais (FRITZ BAUER-1969). A engenharia de software disciplina tem o objetivo de prover métodos organizados e boas práticas que visam atender as necessidades de projetos cada vez mais complexos (BOEHM, 2006). 14 Segundo SOMMERVILLE, (2011) ela engloba todas as etapas de desenvolvimento do projeto para que seja garantida a solução com qualidade. É a base para o ciclo de vida da construção do software, desde as fases iniciais, especificações de requisitos do sistema, até sua implantação e manutenção. Com estabelecimento da engenharia de software foram surgindo diversos modelos de processo de software, modelos que visam explicar como o software pode ser construído. Um modelo de processo de software é uma representação abstrata de um processo de software. Cada modelo de processo representa um processo a partir de uma perspectiva particular, de uma maneira que proporciona apenas informações parciais sobre o processo (SOMMERVILLE, 2007). Cada modelo apresenta como se dá o ciclo de vida do processo de desenvolvimento, seguem abaixo alguns modelos que são usados para gerir este processo. 1. O modelo em cascata; 2. Desenvolvimento evolucionário; 3. Desenvolvimento iterative; 4. Modelo de desenvolvimento espiral; 5. Modelo de desenvolvimento incremental; 6. Desenvolvimento baseado em components. Pressman (2006) cita outros modelos: 1. Modelo Incremental; 2. Modelo RAD; 3. Modelo de Desenvolvimento Concorrente; 4. Modelo de Métodos Formais; 5. Processo Unificado. Já FALBO (1998), cita em seu trabalho que a escolha de um modelo de ciclo de vida (ou modelo de processo) é o ponto de partida para a definição de um processo de desenvolvimento de software. Um modelo de ciclo de vida organiza as macro-atividades básicas, estabelecendo precedência e dependência entre as mesmas (FALBO, 1998). O ciclo de vida inclui desde as etapas de construção software até as etapas de manutenção, segundo PRESSMAN (2006) o modelo clássico de ciclo de vida chamado 15 de modelo cascata, traz uma abordagem sistemática, sequencial ao desenvolvimento do software, que se inicia no nível do sistema e seus requisitos e avança ao longo da análise do sistema, projeto, codificação teste e manutenção. A figura 1 apresenta as fases da modelo cascata: Figura 1. Ciclo de vida modelo cascata (Fonte: Adaptado Royce 1970 ) De acordo com SOMMERVILLE, (2011) cada uma das seguintes atividades pode ser resumida da seguinte maneira: 1. Analise e definição dos requisitos: os serviços, restrições do sistema, serão definidos por consulta aos usuários. Em seguida, são definidos em detalhes e funcionam como uma especificação do sistema; 2. Projeto de sistema e software. O processo de projeto aloca os requisitos tanto para hardwares quanto para o sistema, definido assim arquitetura geral do sistema, definido assim sua descrição fundamental e os relacionamentos; 3. Implementação e teste unitário. Nesse estágio o projeto do software e desenvolvido como um conjunto de programas ou unidades de programas. Essa fase visa verificar também se cada unidade implementada atendera as suas especificações. 16 4. Integração e teste de sistema. As partes do programa são integradas e testadas e forma conjunta, visando assim assegurar que os requisitos do sistema tenham sidos atendidos, após isso ele poderá ser entregue ao cliente. 5. Operação e manutenção: nessa fase que é a mais longa do processo, é onde o software entra em operação, e a partir daí ele será, os bugs que forem dectados começaram a serem corrigidos, poderá haver ampliação do sistema havendo assim a adição de novas funcionalidade e descobertas de novos requisitos. Este modelo como já dito antes, fala das etapas básicas da construção de software etapas essas que são semelhantes em diversos modelos, para fins de estudo e construção da ferramenta nos os tópicos seguintes apresentaremos a técnicas e metodologias que serão as bases para sua elaboração. 2.1.1 ENGENHARIA DE REQUISITOS De acordo com BECK (2000) Organizações de desenvolvimento de software geralmente enfrentam grandes desafios na produção de seus sistemas. Grande parte disso está relacionado à volatilidade de seus requisitos. O acompanhamento de como os requisitos, se comportam ao longo do desenvolvimento é importante para se garantir o produto final atenda às necessidades dos clientes. Segundo DUARTE (2012) Um requisito pode ser entendido como uma condição ou funcionalidade à qual o sistema desenvolvido deve corresponder. A análise de requisitos é o processo de descobrir, refinar, modelar, e especificar os propósitos do cliente (PRESSMAN, 1997 apud DUARTE 2012). Durante o levantamento de requisitos cliente e a empresa vão trabalhar juntos para poder encontrar a melhor maneira para que os requisitos sejam estabelecidos. Entende-se que o próprio processo de definição de requisitos gera um feedback que acabar modificando os próprios requisitos (HAZAN, 2003). A deficiência no tratamento de requisitos tem sido apontada como a principal causa de fracassos de projetos de software (HOFMANN,2001) Esse processo é sistemático e abrange diversas atividades, tais como elicitação, análise e negociação, documentação, validação e gerência de requisitos (KOTONYA,1998). 17 De acordo com NADDEO (2002) cada umas as etapas citadas da engenharia de requisitos podem ser resumidas do seguinte modo: Elicitação: nessa fase os requisitos serão descobertos, serão feitas reuniões com stakeholders, nas quais serão discutidas expectativas objetivos ao qual aplicação se destina, a equipe de desenvolvimento vai começar a entender o domino da aplicação para assim encontrar maneiras de entender e resolver a complexidade do problema em questão. Se identifica as partes interessadas e papel de cada stakeholders no sistema e o seu nome, além disso se define também as técnicas que vai serão usadas para realização desse processo; Análise e negociação: As atividades conduzidas no contexto de Análise e Negociação de requisitos destinam-se a resolver problemas relacionados aos requisitos que envolvam diferentes percepções do mesmo problema ou necessidade por mais de um stakeholder, bem como os problemas gerados pela representação do conhecimento obtido de mais de um stakeholder; Documentação: Após o identificados os requisitos devém ser documentos para que possam, servir como base para as etapas restantes do processo de desenvolvimento; Validação: nesta etapa a de se verificar a consistência dos requisitos levantados; Gerencia de requisitos: etapa de administração dos requisitos ao longo do projeto, pois possuem volatilidade ou seja podem ser alterados conforme as necessidades que venha a surgir no decorrer do processo de desenvolvimento mas essas alterações não deve comprometer o tempo final de entrega do projeto. Os requisitos podem ser classificados no geral em funcionais, e não funcionais: Funcionais: representam aquilo que o sistema deve fazer. Ou seja tudo aquilo que acaba sendo transformado em funções do sistema, podem ser divididos em, essenciais, desejados e supérfluos 18 Não funcionais: representam os atributos do sistema, definem propriedades e as restrições do sistema, estão relacionados com segurança, usabilidade, confiabilidade e manutenibilidade e tecnologia envolvida. 2.1.2 DEFEITO DE SOFTWARE Ao gerenciar um projeto, a gerente ira dispor ferramentas para tornar simplificar o acompanhamento do ciclo de vida, para que assim ele possa minimizar e até evitar que ocorram falhas durante o projeto. Com software não poderia ser diferente, evitar e gerenciar possíveis falhas no produto é essência para que a empresa de software se manter competitiva no mercado, conceito de Bug tracker sugere uma ferramenta, que apoia a gestão defeitos para que assim manter a qualidade do software. Evitar defeitos no software é garantir que o cliente possa dispor dos padrões de qualidade aos quais ele requisitou é evitar possíveis custos, portanto, descobrir os defeitos do(s) software(s) da empresa não é suficiente, é essencial adotar o gerenciamento de defeitos no processo de teste para minimizar, controlar, evidenciar os riscos para que os seus impactos não sejam grandes (ELIZA; LAGARES, 2011). O grande objetivo do Teste é garantir qualidade ao sistema, o que não quer dizer que o mesmo vai ser entregue ao cliente sem nenhum problema. (ELIZA; LAGARES, 2011). No Scrum diferentemente de outras metodologias as equipes de desenvolvimento e teste de estão integradas no mesmo time, de modo que a equipe de teste passe a ser vista como parceira e não adversaria da equipe de desenvolvimento. De acordo com ELIZA; LAGARES, (2011) muitas pessoas confundem o significado de defeito, erro e falha, cada conceito pode ser resumido em: Erro (engano): ação humana que produz resultados incorretos, como por exemplo, a implementação errada de um algoritmo; Defeito (bug): falha em um sistema que pode ocasionar uma anomalia ao tentar desempenhar a função proposta. Por exemplo, omissão de informações e cálculos incorretos; Falha: ação inesperada no software. Por exemplo, o sistema apresenta resultados diferentes do planejado. 19 No mercado existem diversos tipos de ferramentas que visam apoiar as equipes de teste, no controle e detecção de erros/defeitos que podem vim a resultar em falhas do sistema. Entre elas podemos citar: o Mantis; BugZilla; Testlink; Salomé TMF. 2.2 METODOS AGEÍS Os métodos de desenvolvimento ágil, surgiram em respostas aos problemas percebidos pela indústria, especialmente quanto a taxa de sucesso dos projetos (ROSE MELO, 2010). A taxa de sucesso dos projetos vinha caindo, segundo JOHNSON, (1995) em um estudo da Standish Group (1995) com mais de 30 mil projetos de desenvolvimento de produtos de software desde 1994, revelou que, embora tenha havido melhorias com o passar do tempo, ainda há um grande problema no setor. Problemas aos quais foram apontados por esse estudo, estão relacionados a atraso na entrega de aumento dos custos, e taxa de implementação (projetos que se tornaram, produtos de software que realmente forma utilizados pelo usuário final). Por décadas o desenvolvimento de software seguiu o modelo clássico de cascata para desenvolvimento de produtos (ROSE MELO, 2010). Segundo Pinto, 2011, esse modelo prega a evolução sequencial dividindo o projeto de forma semelhante ao que se faz na linha de produção. Esse enrijecimento do modelo de gestão adotado garantiu que as taxas de sucesso das entregas dos softwares desenvolvidos fossem baixas (ROSE MELO, 2010). Os métodos ágeis surgem como respostas aos métodos tradicionais, que são baseados no seguimento de um plano bem definido, excesso de documentação e rigorosa padronização (NERUR et al., 2005). As metodologias ágeis, que ganham mais destaque no início do ano de 2001 com a definição do Manifesto Ágil (BECK et al., 2001). O manifesto apresenta um conjunto de valores e princípios que provem as bases para desenvolvimento ágil. Nele os autores falam: “Estamos descobrindo maneiras melhores de desenvolver software, fazendoo nós mesmos e ajudando outros a fazerem o mesmo.” Segundo Manifesto ágil(2001), os valores são: Indivíduos e interações mais que processos e ferramentas 20 Software em funcionamento mais que documentação abrangente Colaboração com o cliente mais que negociação de contratos Responder a mudanças mais que seguir um plano Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda. No manifesto é apresentado os seguintes princípios: 1. Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado. 2. Mudanças nos requisitos são bem-vindas, mesmo tardiamente no desenvolvimento. Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para o cliente. 3. Entregar frequentemente software funcionando, de poucas semanas a poucos meses, com preferência à menor escala de tempo. 4. Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto por todo o projeto. 5. Construa projetos em torno de indivíduos motivados. Dê a eles o ambiente e o suporte necessário e confie neles para fazer o trabalho. 6. O método mais eficiente e eficaz de transmitir informações para e entre uma equipe de desenvolvimento é através de conversa face a face. 7. Software funcionando é a medida primária de progresso. 8. Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente. 9. Contínua atenção à excelência técnica e bom design aumenta a agilidade. 10. Simplicidade--a arte de maximizar a quantidade de trabalho não realizado é essencial. 11. As melhores arquiteturas, requisitos e designs emergem de equipes auto organizáveis. 21 12. Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então refina e ajusta seu comportamento de acordo. De acordo com Cohen et al, (2004) a partir da divulgação do Manifesto Ágil, metodologias como Adaptive Software Development (ASD) (Highsmith e Cockburn, 2001), SCRUM (Schwaber e Beedle, 2002) e eXtreme Programming (XP) (Beck e Andres, 2004) ganharam um grande número de adeptos e se tornaram objeto de pesquisas acadêmicas . Enquanto as metodologias tradicionais de desenvolvimento mantêm o foco na geração de documentação sobre o projeto e no cumprimento rígido de processos, a proposta ágil é concentrar as atenções no desenvolvimento em si e nas relações entre os participantes (MUNDIN et al., 2002). Projetos que seguem métodos ágeis, permitem flexibilidade, visando enxugar a produção e evitar o desperdício, o cliente participa ativamente do processo de desenvolvimento, de modo que assim o produto final consegue se aproximar daquilo que o cliente espera. 2.2.1 SCRUM De acordo com PRESSMAN, (2006) o framework Scrum é uma metodologia ágil de desenvolvimento para gestão e planejamento de projetos de software. Foi elaborada por Jeff Sutherland e por sua equipe, no início da década de 90, e tinha como base o processo de produção de automóveis de indústrias japonesas. Segundo CARVALHO E MELO (2009) o nome Scrum surgiu da comparação entre desenvolvedores e jogadores de Rugby. Scrum é a denominação da rápida reunião que ocorre quando os jogadores de Rugby irão iniciar um lance. No Rugby, cada time age em conjunto, como uma unidade integrada, em que cada membro desempenha um papel específico e todos se ajudam em busca de um objetivo comum (CARVALHO E MELO 2009). Assim como no Rugby, no Scrum a cada nova Sprint os desenvolvedores se reúnem para assim debater e chegar num consenso sobre a fase do projeto que será iniciada, dessa maneira pode se garantir que haja flexibilidade para observar e discutir tanto o que foi planejado antes do início do projeto quanto para lidar com os desafios que surgiram ao longo da execução do projeto. 22 Esta metodologia fornece técnicas específicas para a fase de desenvolvimento, constitui práticas gerenciais que devem ser adotadas para o sucesso de um projeto. Segundo SCHWABER, (1995) Scrum baseia-se em seis características flexibilidade dos resultados; flexibilidade dos prazos; times pequenos; revisões frequentes; colaboração; orientação a objetos. PEREIRA et al, (2007) ressalta que as práticas do Scrum podem ser aplicadas em qualquer conjuntura onde pessoas precisem trabalhar juntas para atingir um objetivo comum. Logo podemos aplicar Scrum a projetos que não seja essencialmente de desenvolvimento de software. Segundo CARVALHO E MELO, (2009) temos como praticas gerenciais do Scrum as seguintes atividades: Product Backlog, Daily Scrum, Sprint, Sprint Planning Meeting, Sprint Backlog e Sprint Review Meeting. Product Backlog é a etapa inicial do processo onde é feito uma série de reuniões com objetivo, de definir os requisitos que serão implementados, reuniões essas que contam com todos os envolvidos, investidores e parceiros no projeto, são apontados os itens com todas as necessidades do negócio e os requisitos técnicos a serem desenvolvidos (CARVALHO E MELO 2009). A lista de funcionalidade fica em constante adaptação ao longo de todo o projeto com o objetivo de atender as mudanças que podem surgir no decorrer deste (SCHWABER, 2009). Sprint Planning Meeting é a reunião em que o time faz o planejamento do Sprint (CARVALHO E MELO 2009). Sprint Backlog ANDRADE (2012) fala que esta etapa consiste na análise do Product Backlog, com a elaboração de um conjunto dos requisitos aceitos, que serão implementados na Sprint. Daily Scrum consiste em reunião diária, rápida que possibilita o controle das atividades que serão feitas durante o dia. Três perguntas devem ser respondidas por cada membro sobre suas responsabilidades (RISING & JANOFF, 2000): O que foi feito ontem? O que será feito hoje? Há algum obstáculo à realização de suas atividades? Sprint Review Meeting Após cada Sprint a equipe se reúne avalia os resultados erros, acertos, a Sprint dura de duas a quatro semanas com a sua revisão é possível apontar quais caminhos o desenvolvimento do software seguira até ele esteja pronto para implantação. Caso nessa revisão surjam novos requisitos eles serão inseridos no Product Backlog, para serem adicionadas nas Sprints posteriores, dependendo assim do seu grau de importância pra o projeto. 23 A figura 2, mostra como estão interligadas cada etapa do clico de vida do Scrum, e também o tempo médio que cada uma delas leva para sua conclusão: Figura 2. O ciclo de vida Scrum - (THAMIEL, 2009) No Scrum os diversos stakeholders do projeto são divididos em dois grupos principais: os envolvidos e os comprometidos. Os envolvidos são os diversos espectadores do projeto que não têm autoridade direta sobre o processo (SCHWABER, 2004). Pinto 2001 cita que os comprometidos são aqueles que estão diretamente ligados ao projeto e tem papéis bem definidos, sendo eles: Scrum Master, Product Owner e Time (equipe Scrum). O Scrum Master deve trabalhar para que o processo Scrum aconteça e para que não existam impedimentos para que os membros da equipe realizem seu trabalho (CARVALHO E MELO 2009). O Scrum Master é comparado com gerente projetos contudo SCHWABER, 2004, ressalta que enquanto o gerente de projetos gerencia ditando o ritmo do trabalho, o ele gerencia o funcionamento do Scrum. Logo ele é o responsável por garantir seu funcionamento, fazer com que as práticas do Scrum sejam efetivamente realizadas. A reponsabilidade de definir requisitos cabe ao Product Owner, Segundo CARVALHO E MELO (2009) sendo ele membro do time tem ao qual tem o papel de representar o cliente interno ou externo. Para PEREIRA et al, (2007) que além disso decide a data do release e o que deve conter nele, é responsável pelo retorno financeiro (ROI) do produto, e deve priorizar os requisitos de acordo com o seu valor, ajustá-los conforme a prioridades para cada Sprint, aceita ou rejeita o resultado de cada Sprint. 24 O time é justamente a equipe de desenvolvimento, cada time é responsável pelo seu próprio gerenciamento e organização, PINTO, (2011) ressalta que dessa forma, o Scrum Master trabalha apenas como facilitador no dia-a-dia da equipe. São os membros classificados nesse papel que decidem como os requisitos vão ser transformados em funcionalidades (SCHWABER, 2004). PRESSMAN (2011), cita Beedle e seus Colegas [bee99] expondo que “O Scrum pressupõe a existência do caos dessa” desse modo o framework Scrum procura trabalhar num mundo onde a eliminação de incertezas é impossível. 2.3 BPM Gerenciamento de Processos de Negócio (do original em inglês: Business Process Management – BPM) é uma abordagem de gestão que vem recebendo interesse crescente da academia e da indústria na última década (SANTANA et al, 2010). Segundo mini dicionário AURELIO, processo é uma sucessão de estados ou de mudanças, de modo que se possa realizar ou executar uma coisa. Em linhas gerais processo é o conjunto de passos/atividades necessárias para que uma ação seja executada. BPM refere-se à gestão do ciclo completo de gerenciamento de processos de negócio, o qual inclui: desenho, análise, implementação, execução e melhoria contínua dos processos de uma organização (SANTANA et al, 2010). Assim como os requisitos de uma ferramenta de uma ferramenta de software os processos evoluem com passar do tempo e precisam ser e ter uma gerencia que permita o ganho de eficiência e ao mesmo tempo flexibilidade para lidar com mudanças que podem vim a ocorrer ao longo do tempo. Os princípios de BPM enfatizam a visibilidade, a reponsabilidade, e a capacidade de adaptação dos processos e constantemente aperfeiçoar resultados e melhor enfrentar os desafios de um ambiente de negócio globalmente diversificado(CBOK,2013). Dentro do contexto da adoção do BPM é de suma importância a análise minuciosa de como está todo o andamento organizacional com a implantação da metodologia, pois é preciso mapear o potencial de cada processo, visando o que cada um pode gerar ou não no ponto de vista da otimização constante (JOSE et al ,2014). 25 A questão é que em muitas organizações seus diversos departamentos trabalham de maneiras separadas o que dificulta a adoção de BPM, sua adoção sugere que a empresa passe a ser enxergada como um todo, sendo ela é composta por diversos sub processos que se integram. O BPM possibilita, por exemplo, que um analista de negócios integre os sistemas de tecnologia da informação (TI) com as metas estratégicas de uma organização da forma mais viável (JOSE et al ,2014). Os Processos de negócio definem como as organizações executam o trabalho para entregar valor a seus clientes e aplicar BPM é se concentrar nos processos interfuncionais que agregam valor para esses clientes(CBOK,2013). Segundo AMARAL et al (2008) o BPM possibilita as seguintes vantagens: Melhoria da velocidade do negócio: os tempos de ciclo dos processos podem ser reduzidos significativamente por meio da sua automação, realização de atividades paralelas, controle e monitoramento; Aumento da satisfação dos clientes: os clientes internos e externos podem obter informações mais rapidamente e facilmente devido à melhoria no tempo do ciclo e do monitoramento, já que as ocorrências não se perdem ao longo do caminho, assim, ações preventivas e corretivas são gerenciadas com maior agilidade; Integridade: o BPM, por ser também estratégico para suportar certificações de qualidade (ex.: ISO) e exigências regulatórias (ex.: Lei Sarbanes-Oxley), garante a integridade por seguir todos os passos especificados no processo; Flexibilidade: a intervenção da área de informática é minimizada, existindo uma grande flexibilidade para alteração de fluxos e regras de negócio; Maximização da melhoria e evolução dos processos: a disponibilidade de indicadores e métricas sobre custos, tempos de execução, carga de trabalho e outros aspectos, geram insumos fundamentais para um trabalho de melhoria. 26 O CBOK, (2013), reforça que Adoção de BPM é uma jornada, não um destino desse modo podemos entender que ao longo de sua adoção ele reforçara desde as estratégias da empresa até a operação, dando maior resiliência a organizacional e operacional, menos intrusiva fazendo com assim se tenha o aumento de produtividade. 2.3.1 MODELAGEM DE PROCESSOS Ao adotar BPM, precisamos ter noção de como os processos estão organizados, e como se dão as interações nele, quais são suas etapas? Nesse processo temos subprocessos? Quais são suas atividades e tarefas? Faz-se necessário que ele seja mapeado e modelado para que assim possa iniciar de fato a sua gerencia. De acordo com LOJA (2011), Com a modelagem dos processos é possível visualizar o funcionamento da organização através dos modelos obtidos. A modelagem servira para aumentar o nível de compreensão dos processos, nela deverão estar contidos não só as tarefas e subprocessos, como também os papeis dos atores envolvidos, além os recursos que estão sendo utilizados. Desse modo a organização passa a desenvolver sua capacidade de BPM, Segundo o CBOK, (2013) para “ter a capacidade de gerenciar” processos de negócio, a organização deve possuir métodos otimizados, pessoas preparadas e tecnologias apropriada para tal. A figura 3 ilustra os elementos básicos de presentes num processo: Figura 3. Elementos de um processo (Araujo e Borges, 2001) A modelagem de processos de negócio deve incluir, a informações atuais do processo (As Is), o modelo futuro do processo (To Be), Segundo FRANCO, (2014) ela é 27 formada por um conjunto de técnicas que buscam descrever as atividades dentro da empresa e como elas se relacionam e interagem com os recursos do negócio buscando alcançar o objetivo do processo. A partir do momento em que se tem o modelo do processo com todas as suas atividades e executores definidos, é possível simular a sua execução a partir de dados coletados no dia-a-dia e, dessa forma, verificar o fluxo de informações, testar as regras definidas e principalmente medir a eficiência do processo (PUNTAR et al, 2009). Modelagens no geral são representadas por diagramas de fluxo de trabalho, para entender a situação atual (As-Is) e a situação futura desejada (To -Be). Segundo OLIVEIRA S (2012), o autor fala que diagramas de fluxo servem como uma análise de eventuais lacunas entre como a organização trabalha e como deve trabalhar no futuro, sinalizando os pontos que precisam ser melhorados para que possa alcançar efetividade na melhoria de processos de negócio. 2.3.3 BPMS De acordo com PUNTAR et al, (2009) [TIC/IDTA/AT, 2008] um BPMS (Business Process Management System) é um ambiente integrado de componentes de software que automatizam o ciclo de vida de processos de negócios, desde a sua concepção e modelagem inicial, passando pela execução e monitoramento, até a incorporação de melhorias, inclusive com a possibilidade de simulação. Quando falamos em BPMS estamos falando em automação de processos, em geral as ferramentas presentes no mercado apresentam um conjunto de instrumentos que a partir do modelo já otimizado (To-Be), fazem a automação. Segundo PUNTAR et al, (2009) a automação ocorre através do acompanhamento de atividades por um motor de execução de processos, que funciona recebendo e enviando as atividades aos agentes responsáveis pela sua execução. A automação do processo ocorre com a criação de uma ferramenta a partir do modelo de processo de negócio na notação BPMN, ela irá gerenciar o fluxo de trabalho do processo. Um webservice, no qual os subprocessos, as etapas tarefas e atividades envolvidas, estão devidamente interligados por meio das regras de negócio para a execução do processo, estará também definido o papel dos atores envolvidos. 28 Um webservice é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis (SHODJAI, 2006 apud TESSARI, 2008). De acordo com SORDI e SPELTA (2006) o modelo conceitual do BPMS valoriza os investimentos já realizados em softwares pelas organizações envolvidas com o processo de negócio, diferentemente da estratégia da reengenharia de uma década atrás, que apregoava o descarte e a substituição dos sistemas de informação. Os autores ainda ressaltam que, no modelo, sistemas de informação legados, hospedados em diferentes ambientes computacionais, com adoção do BPM pela organização continuam a executar as operações necessárias aos processos de negócio ao quais estão envolvidas. De acordo com DUBOULOZ (2004) as ferramentas BPMS deveram ser compostas por cinco blocos são eles: definição de processos; mecanismo de execução e controle de processos; modelagem gráfica do processo; Controle de atividades; e interface do usuário. Para SANTOS et al (2009) os sistemas BPMS são compostos de um conjunto de soluções as quais ele cita as seguintes, workflow (automação de processos), EAI – Enterprise Application Interchange (troca de informações entre sistemas empresariais) e TICs (Tecnologias de Informação e Comunicação), ferramentas de modelagem dos processos de negócios (e.g.: UML e BPMN), componentes de integração dos processos (e.g.: ERP, SCM, GED, CRM, data centers e etc.) e ferramentas de simulação e análise (e.g.: Business Inteligence - BI). Funcionalidades essas que estão relacionadas tanto com o conjunto de ferramenta apresentado por DUBOULOZ conjunto esse que é explicitado por SANTOS et al, mostrando a maneira a maneira como as ferramentas se integram para dar vida ao BPMS. ARAUJO e BORGES, (2001) Explicam que um BPMS apresenta as seguintes funcionalidades: definição dos processos, controle de execução dos processos, controle de interações e gerenciamento e acompanhamento de execuções. 29 Em um estudo conceitual realizado por PUNTAR et al, (2009), o autor explica cada umas dessas funcionalidades mostrando a maneira como elas se relacionam para geração de melhorias nos processos: A definição de processos está relacionada com a modelagem, ela deve apresentar todas informações necessárias para que processo possa funcionar, é nessa fase em que o processo e suas etapas e ferramentas tornam-se evidentes, suas condições de início e fim. Nessa etapa ocorrem também as simulações, que vão permitir observar como o processo se comporta, e onde o processo pode ser alterado ou não. O controle de execução dos processos, através da interpretação do processo implementado no BPMS, ele irá acompanhar e coordenar a sua execução, ela corresponde à ativação de instâncias, várias instâncias de um mesmo processo ou de processos distintos podem estar em execução simultaneamente em um BPMS. No controle de interações está relacionado a maneira como o BPMS adiciona itens às listas de trabalho atores do processo, tais listas contêm atividades de diversas instâncias dos diversos processos em execução. Os atores, por sua vez, acessam as suas listas de trabalho e selecionam a tarefa que desejam executar. A execução da tarefa envolve a manipulação de documentos, tomadas de decisão ou preenchimento de dados Gerenciamento e acompanhamento de execuções, modelo do processo apresentara o status das atividades realizadas, em execução ou a serem executadas, BPMS pode ter recursos de medida de desempenho e estatística que auxiliam na projeção de melhorias. Das várias ferramentas BPMS disponíveis no mercado Bizagi [Bizagi 2010] e Bonita [Bonita 2010] podem ser citadas como exemplos do estado da prática nesse tipo de software(OLIVEIRA et al,2011). 30 3. PROPOSTA DE BUG TRACKER ORIENTADO PROCESSOS Os conceitos apresentados no capítulo anteriores serviram como base para que a ferramenta proposta pudesse ser elaborada. A proposta de Bug tracker tem como base e fim mapear e monitorar o processo de desenvolvimento de um requisito até sua implantação, com base na metodologia Scrum de gerenciamento de projetos de software. Para que isso fosse possível de ser realizado, foi feita a modelagem das etapas necessárias para implementação do requisito, modelagem essa que utiliza a notação BPMN. A modelagem e automação do processo fosse realizada foi utilizado o Software Bizagi Studio, posteriormente o modelo gerado serviu como base para automação do processo, etapa que resultou na criação da ferramenta. As figuras 4 a 11 apresentam a modelagem do processo e sua automação, explicando cada tarefa contida no processo e suas respectivas etapas, desde seu início até o seu fim: Figura 4. Modelo do processo do Bug tracker baseado na metodologia Scrum na notação BPMN. (Fonte o autor) 31 O processo inicia com o cadastro do Backlog. Nesta etapa que é cadastrado na ferramenta o requisito ao qual será desenvolvido no processo, cada requisito cadastrado é trabalhado em um fluxo de processos na ferramenta fica em um processo. Figura 5. Cadastrar Backlog. (Fonte o autor) A etapa de cadastro do Backlog, contém o formulário apresentado na figura 5, dele fazem parte os seguintes campos: Id do Requisito: código pelo qual o requisito é identificado; Nome Do Requisito; Story: descrição do requisito e sua funcionalidade; Data do Requisito: é data ao o requisito foi cadastrado na ferramenta; Categoria do requisito: Relatório, código fonte e banco de dados; Sistema: nesse campo é relatado software ao qual o requisito pertence; Plataforma: Campo utilizado para que seja informado a plataforma ao qual o requisito pertence; Passo para reproduzir: Caminho para que a funcionalidade seja executada; 32 Anexo: espaço utilizado pra que possa ser carregado e enviado o documento (ou imagem), para auxiliar o entendimento do requisito; Ao terminar o preenchimento dos campos, o formulário apresenta os seguintes botões, Guardar e Próximo: ao Guardar tudo que foi preenchido será salvo no banco de dados do Bizagi, ao Clicar em Próximo, além de guardar as informações do processo, ele caminhara para a etapa seguinte. A análise do Backlog, consiste na análise e votação da prioridade implementação do Requisito. Figura 6. Analisar Backlog. (Fonte o autor) A etapa de Analise Backlog contém as informações inseridas no formulário anterior ao qual sofre o acréscimo dos seguintes campos: Pontuação do Cliente: Campo ao qual é informado qual a prioridade que o cliente aufere para o requisito que foi cadastrado. Estado do Requisito: Apresenta a situação ao qual o requisito se encontra, ele pode receber os seguintes atributos: Aberto quando o requisito ainda não foi iniciado; Em desenvolvimento; Fechado quando o requisito foi finalizado; e Ignorado. 33 Pontuação da Equipe Técnica: Apresenta a pontuação da prioridade e do grau de dificuldade avaliado pela equipe técnica para que o requisito seja implementado. Ao marcar implementado o usuário tem opção de escolher se o processo continuará ou não, para que ele continue deve se marcar a opção sim e clicar no botão próximo, para que ele seja finalizado clique na opção não e em seguida no botão próximo, desse modo o requisito que ao qual foi decidido que será implementado é inserido no Sprint Backlog, passo ao contém os requisitos que serão desenvolvidos pelo time. A figura 7 mostra o Sprint Backlog, esta etapa possui um formulário com as informações sobre o requisito - sendo possível a edição do atributo estado -, o passo tem a duração de 15 dias, é nesse período ao qual ele deve ser iniciado. Uma vez feito, devese alterar o estado do requisito para Em desenvolvimento e clicar em próximo para que o processo vá à etapa de desenvolvimento. Figura 7. Sprint Backlog. (Fonte o autor) A figura 8 mostra a etapa de Desenvolvimento do requisito, onde o estado do requisito será alterado para Fechado para que assim possa ser encaminhado para a fase de teste. Os campos Relatar Comportamento e Aprovar requisito poderão ser editados na fase seguinte. 34 Figura 8. Desenvolver Requisito. (Fonte o autor) O formulário da figura 9 está relacionado com a etapa Realizar Testes, traz neles além das informações das fases anteriores os seguintes campos: Relatar comportamento: para que o teste faça breve relato de como o requisito se comportou durante a fase, e que possam ser relatados os critérios que levaram a sua aprovação ou reprovação. Aprovar Requisito: ao clicar em sim e no botão próximo o requisito será enviado para a etapa de Revisão da Sprint, se não ele será encaminhado novamente a etapa de Desenvolver requisito. Caso seja aprovado o estado será alterado para fechado, se não for permanece ele Em desenvolvimento. 35 Figura 9. Realizar Testes. (Fonte o autor) A figura 10 mostra a etapa de Revisão da Sprint, o requisito aprovado poderá ser revisto, e consequentemente, ser feito o no campo Relatar Comportamento um relato de como ele se comportou na revisão, ou seja se surgiram ou não novas informações sobre ele. Figura 10. Revisão da Sprint. (Fonte o autor) A figura 11, mostra Formulário da etapa Realizar Implantação onde são apresentados os campos: 36 Relato de implantação: destinado ao responsável pela implantação do requisito aprovado, possibilitando-o fazer um relatório do que ocorreu durante a implantação. Requisito implementado: campo para a checagem se o requisito foi implantado. Ao final do processo caso seja clicado no botão guardar as informações serão salvas no banco de dados e processo ainda continuará ativo, ao pressionar próximo ele será encerrado. Figura 11. Realizar Implantação. (Fonte o autor) Além do acompanhamento do fluxo do processo, com a ferramenta resultante da automação, é possível obter uma serie de relatórios de desempenhos relacionados ao processo. Gráficos e planilhas que tem como objetivo fornecer a informações detalhadas sobre o andamento dos processos. O Gráfico da figura 12, mostra para todos os processos ativos a quantidade de casos que estão em dia, em risco ou atrasados. Em risco significa que expiram hoje. 37 Figura 12:Grafíco de analise carga. (Fonte o autor) A figura 13, os gráficos do Trabalho em andamento: Estado de caso: Este gráfico mostra a porcentagem de casos que estão em dia ou em rico ou atrasados; Casos próximos do vencimento: mostra quando os casos em aberto atingirão suas datas de expiração. Figura 13: Gráficos dos trabalhos em andamento. (Fonte o autor) A Figura 14 , os graficos relacionados com o tempo de ciclo. 38 Duração do caso: duração média x duração esperada;Estado de caso: Este gráfico mostra a porcentagem de casos que estão em dia ou em rico ou atrasados; Tabela de Resumo do tempo de clico. Figura 14: Tempo de Ciclo. (Fonte o autor) A figura 15 apresenta Histograma de duração, o gráfico mostra quantos dias forma necessários para concluir os casos encerrados. A linha tracejada vertical separa os casos em dia dos atrasados. Figura 15: Histograma de duração. (Fonte o autor) A figura 16 apresenta os seguintes gráficos: Tendência; Atividade do processo e a tabela de resumo, os gráficos estão contidos na tela de nome Atividade do 39 processo, onde possível selecionar m intervalo de tempo para que os gráficos sejam gerados. Tendência: Tendência ou número de ativações do processo no intervalo de tempo selecionado; Atividade do processo: Casos iniciados, casos encerrados casos abortados no intervalo de tempo selecionado; Tabela de resumo das atividades do processo. Figura 16: Atividade do processo. (Fonte o autor) A Figura 17, mostra denominada Classificação de Atividades o número ativações do processo, num intervalo de tempo selecionado. Figura 17. Classificação de Atividades. (Fonte o autor) 40 4 CONCLUSÕES Produzir software antes do surgimento da engenharia de software era uma tarefa ao qual era vista com abordagem semelhante as das linhas de produção industriais, com passar do tempo essa forma de produzir software passou a gerar os problemas aos quais foram denominados de crise de software. Com estabelecimento da engenharia tornou-se possível além otimizar o processo de produção de software, estabelecer padrões de qualidade para atender as demandas dos clientes. Com o surgimento dos métodos ágeis produzir software tornou-se uma tarefa dinâmica de modo a valorizar “os indivíduos e as interações mais que processos e ferramentas” (Manifesto ágil, 2001). Possibilitando aos atores envolvidos no processo de software, trabalhar de maneira flexível e pratica, para responder de as requisições feitas pelos clientes. Requisições essas que mudam com passar do tempo. Ao iniciar o processo de desenvolvimento os requisitos da ferramenta pelo cliente evoluem, tanto pelo próprio processo de desenvolvimento quanto pela utilização do software pelo cliente, em metodologias de gestão como o Scrum o cliente tem um representante dentro da equipe de desenvolvimento Product Owner é o responsável por fazer com que os requisitos do software desejado pelo cliente possa corresponder ao esperado. As equipes de desenvolvimento para auxiliar a gerencia tanto dos requisitos quanto bugs podem que ocorrem no sistema, utilizam-se de ferramentas para facilitar o acompanhamento e a evolução que eles sofrem no recorrer do desenvolvimento. Ferramentas que em sua maioria servem apenas como repositório de informações e observações sem apresentar dados e estatísticas sobre como o requisito/Bug se comportou durante o processo de software. Ao alinhar a metodologia ágil Scrum com BPM, foi possível obter uma ferramenta capaz de acompanhar a tarefa de desenvolvimento, de modo que os atores envolvidos possam obter dados estatísticos sobre a duração das fases bem como o nível de sucesso de cada requisição, e também monitorar e auxiliar os envolvidos a cumprirem com os prazos para entrega e resolução dos requisitos. Construída com auxílio do BPMS Bizagi Studio, foi possível observar todo o poder que essa nova tecnologia tem e como ela é capaz de auxiliar a integração das etapas de um processo. Oferecendo recursos para que a ferramenta gerada possa ser integrada com ferramenta de Bug tracker. 41 Como proposta de trabalhos de trabalho futuros, seria possível um estudo de caso sobre o impacto do uso dessa ferramenta, em uma fábrica de software que use a metodologia Scrum de desenvolvimento. 42 REFERÊNCIAS BIBLIOGRÁFICAS AMARAL, F.P., et al. O papel das ferramentas para sistematização de processos de negócio (bpms). In: XXVIII Encontro Nacional de Engenharia de Produção, 2008. Rio de Janeiro. Anais do XXVIII do Encontro Nacional de Engenharia de Produção – ENEGEP, 2008. ANDRADE, Rômulo C. et al. Um Estudo De Caso Sobre Integração De Sistemas Usando BPM Em Um Escritório De Advocacia. Revista Eletrônica Eng Tech Science ANO I, Vol. 01, N. Jaboatão dos Guararapes - PE ARAUJO, R.; BORGES, M.R.S. Sistemas de Workflow. In: Jornadas de Atualização Em Informática (JAI), Congresso da SBC, 2001, Fortaleza, Ceará, pp. 1 - 17 BPM CBOK. Guia para Gerenciamento de Processos de Negócio Corpo Comum de Conhecimento 1ª Edição, ABMPM Brasil 2013. BECK, K. “Extreme programming explained: embrace change.” Addison-Wesley Longman, Boston, MA, 2000. BOEHM, B. A view of 20th and 21st Century Software Engineer. ICSE’06 Shanghai, China, 2006 CARVALHO, B. V. MELLO, C. H. P. Revisão, análise e classificação da literatura sobre o método de desenvolvimento de produtos ágil scrum. Anais do XII Simpósio de Administração da Produção, Logística e Operações Internacionais - SIMPOI, São Paulo/SP, 2009. COHEN, D., LINDVALL, M., & COSTA, P, “An introduction to agile methods.” In Advances in Computers (pp. 1-66). New York: Elsevier Science, 2004. DUBOULOZ, B. Business Process Management Systems (BPMS). Ensures Consulting, 2004. 43 DUARTE, FRANCISCO J. “Engenharia de Software orientada aos processos” Universidade do Minho Escola de engrenharia Departamento de informática. Braga 2002. ELIZA, Renata; LAGARES, Vivian. Gestão de Defeitos no Teste de Software Java Magazine, Grajaú, n.94, p.68 – p.74 ago. 2011 FALBO, R. A. Integração de Conhecimento em um Ambiente de Desenvolvimento de Software. Tese de Doutorado, COPPE/UFRJ, RJ, Dezembro, 1998. FALBO, R.A.; NATALI, A.C.C.; MIAN, P.G.; BERTOLLO, G.; RUY, F.B. ODE: Ontology-based software Development Environment, IX Congreso Argentino de Ciencias de la Computación, p. 1124-1135, La Plata, Argentina, outubro 2003. G. KOTONYA, I. SOMMERVILLE. “Requirements Engineering: Process and Techniques”. 1º Edição. Editora Wiley. 1998. JOHNSON, J. The Chaos Report. The Standish Group International, Inc. West Yarmouth, MA, 1995. JOSE, R ANDRADE, C. R. CARVALHO, F. KELLY, M. Uma Pesquisa Sobre A Importância Do Gerenciamento De Processos De Negócio Nas Organizações. Revista Eletrônica Eng Tech Science ANO I, Vol. 01, N. 1 | Jaboatão dos Guararapes - PE | 2014 HAZAN, C., LEITE, J.C.S.P., Indicadores para a Gerência de Requisitos, VI Workshop em Engenharia de Requisitos – WER03, São Paulo, Brasil, 2003. HOFMANN, H.F. LEHNER. “Requirements Engineering as a Success Factor in Software Projects, IEEE Software, July/August 2001. KAPLAN, R.S.; NORTON, D.P. (1997). “A Estratégia em Ação: Balanced Scorecard”. 22. Edição. Rio de Janeiro: Campus, 1997. 44 KITCHENHAM, B. Procedures for Performing Systematic Reviews. Joint Technical Report, Keele University TR/SE-0401 and NICTA 0400011T.1, July 2004. KORHONEN, J. On the Lookout for Organizational Effectiveness: Requisite Control Structure in BPM Governance. 1st International Workshop on BPM Governance – WoGo’2007. LOJA, L. F. B. (2011). Sinfonia: uma abordagem colaborativa e flexível para a modelagem e execução de processos de negócio. Master’s thesis, Instituto de Informática Universidade Federal de Goiás. MANIFESTO ÁGIL, 2001. Disponível em: <http://www.manifestoagil.com.br/>. Acesso em: Dez 2014 MAFRA, S.N. (2004) “Infra-Estrutura para automatização de processos de software ”, monografia de projeto final de curso. Rio de Janeiro, RJ , Brasil. MUNDIM, A.P.F.; ROZENFELD, H.; AMARAL, D.C.; SILVA, S.L.; GUERREIRO, V.; HORTA, L.C. 2002 Aplicando o cenário de desenvolvimento de produtos em um caso prático de capacitação profissional. Gestão & Produção. v. 9, nº. 1, p. 1-16, Abril, 2002. NADDEO, P.S, 2002 Uma Taxonomia na Área de Uma Taxonomia na Área de Engenharia de Engenharia de Requisitos. Dissertação de Mestrado, Instituto de M Requisitos atemática e Estatística da Universidade de São Paulo. São Paulo, SP, 2002. NERUR, S.; MAHAPATRA R.; MANGALARA J,G . Challenges of migrating to agile methodologies. Communications of the ACM, Maio, 2005. OLIVEIRA, M. M. Como fazer projetos, relatórios, monografias, dissertações e teses. 4ª edição. Rio de Janeiro: Elsevier, 2008. OMG (2009). Bpmn information home. Disponível em: http://www.bpmn.org. 45 PAULK, M.C., 2004. “Surviving the Quagmire of Process Models, Integrated Models, and Standards. Surviving the quagmire of process models, integrated models, and standards”. Proceedings of the Annual Quality Congress, May:24–27, 2004. PINTO, P. 2011. “Uma abordagem para a condução de retrospectivas Scrum baseada nos conceitos de melhoria contínua e Lean Software Development” CIN Centro de Informatica UFPE. RECIFE, 2011. PRESSMAN, Roger S. Engenharia de software. 6. ed. Rio de Janeiro: McGraw-Hill, 2006. PUNTAR, S.; IENDRIKE, H.; MAGDALENO, A.; BAIÃO. F.; SANTORO, F.; “Estudo Conceitual sobre BPMS” Relatórios Técnicos do Departamento de Informática Aplicada da UNIRIO n° 0007/2009. Rio de Janeiro, RJ. 2009 RISING, L.; JANOFF, N. S. The Scrum Software Development Process for Small Teams, IEEE Software, Vol. 17, No. 4, July-August 2000. ROYCE W. Managing the development of large software systems: Concepst and Techniques. International Conference on software engieering, california, 1970. ROSE, TANARA P.R.: MELLO, CARLOS H.P. Proposta de Sistemática para de gestão de projetos baseada na metodologia ágil Scrum. XXX Encontro Nacional de Engenharia de Produção - ENEGEP, São Paulo, out 2010 SANTANA, A. F.L; ALVES, C . F.; MOURA, H. P. ; Governança de BPM em Processos Inter-Organizacionais do Setor Público. Programa de pós-graduação em Ciência da Computação. Recife – PE, 2010. SOMMERVILLE, I., Engenharia de Software, 9ª Edição. São Paulo: Pearson –Addison Wesley, 2011. SCHWABER, K. SCRUM Development process. 1995. Disponível em: <http://navegapolis.net/files/Scrum_Development_Process.pdf>. Acesso: Dez. 2014. 46 SCHWABER, K. Agile Project Management With Scrum. Microsoft Press, 2004 THAMIEL, Thiago. Ciclo de Vida do Scrum. Disponível em: < http://thiagothamiel.files.wordpress.com/2009/07/scrum.jpg?w=595 >. Acesso em: 01 dez. 2014.