UNIVERSIDADE DO SUL DE SANTA CATARINA CAMPUS DA GRANDE FLORIANÓPOLIS CURSO DE ESPECIALIZAÇÃO EM ENGENHARIA DE PROJETOS E SOFTWARE GUILHERME MARTINS DA SILVA INCORPORAÇÃO DE PRÁTICAS ÁGEIS EM UM PROCESSO DE DESENVOLVIMENTO ALINHADO AO MPS.BR Florianópolis 2013 GUILHERME MARTINS DA SILVA INCORPORAÇÃO DE PRÁTICAS ÁGEIS EM UM PROCESSO DE DESENVOLVIMENTO ALINHADO AO MPS.BR Projeto de Pesquisa apresentado à disciplina de Metodologia da Pesquisa Científica, como requisito parcial para a obtenção do título de Especialista em Engenharia de Projetos e Software. Prof. Dr. Jean Carlo Rossa Hauck Florianópolis 2013 1 GUILHERME MARTINS DA SILVA INCORPORAÇÃO DE PRÁTICAS ÁGEIS EM UM PROCESSO DE DESENVOLVIMENTO ALINHADO AO MPS.BR Este trabalho de Conclusão de Curso foi julgado adequado à obtenção do título de Especialista em Engenharia de Projetos de Software e aprovado em sua forma final pelo Curso de Engenharia de Projetos de Software, da Universidade do Sul de Santa Catarina. Florianópolis, 11 de Junho de 2013. __________________________________ Prof. e orientador Jean Carlo Rossa Hauck, Dr. Universidade do Sul de Santa Catarina __________________________________ Prof. Aran Bey Tcholakian Morales, Dr. Universidade do Sul de Santa Catarina 2 SUMARIO 1. INTRODUÇÃO ................................................................................................................ 4 1.1 PROBLEMA ................................................................................................................... 5 1.2 JUSTIFICATIVA ............................................................................................................ 5 1.3 OBJETIVOS .................................................................................................................... 6 1.3.1 Objetivo Geral .......................................................................................... 6 1.3.2 Objetivos específicos ................................................................................. 6 2. MARCO TEÓRICO ......................................................................................................... 7 2.1 MPS.BR ........................................................................................................................... 7 2.1.1 Níveis de Maturidade ............................................................................... 8 2.2 SCRUM ......................................................................................................................... 12 2.2.1 O Time Scrum ......................................................................................... 13 2.2.2 O Product Owner ................................................................................... 13 2.2.3 Equipe de Desenvolvimento ................................................................... 13 2.2.4 O Scrum Master ..................................................................................... 14 2.2.5 Sprint ....................................................................................................... 14 2.2.6 Reunião Diária ........................................................................................ 15 2.2.7 Backlog do Produto ................................................................................ 15 2.2.8 Backlog da Sprint ................................................................................... 15 3. MÉTODOS ................................................................................................................... 16 3.1 CARACTERIZAÇÕES DA PESQUISA ...................................................................... 16 3.2 ETAPAS DA PESQUISA ............................................................................................. 16 3.3 DELIMITAÇÃO DO TRABALHO .............................................................................. 17 3.4 A EMPRESA ................................................................................................................. 17 3.5 SAC ............................................................................................................................... 18 3.6 PONTOS A SEREM ABORDADOS ........................................................................... 18 4 ESCOLHA E USO DAS FERRAMENTAS ................................................................. 20 4.1 REUNIÃO DE KICK-OFF ........................................................................................... 20 4.2 PLANNING POKER ..................................................................................................... 20 4.3 REUNIÃO DIÁRIA ...................................................................................................... 23 4.4 PRODUCT BACKLOG E SPRINT BACKLOG.......................................................... 23 4.5 USO DO SAC................................................................................................................ 23 4.6 KANBAN ...................................................................................................................... 27 4.6.1 Quadro Kanban ...................................................................................... 27 4.6.2 Avatar ...................................................................................................... 29 4.6.3 Post-It....................................................................................................... 29 4.6.4 Gráfico de Burndown ............................................................................. 31 5 CONCLUSÕES............................................................................................................... 33 6 SUGESTÕES PARA TRABALHOS FUTUROS ........................................................ 34 7 REFERÊNCIAS ............................................................................................................. 35 3 1. INTRODUÇÃO Atualmente no nosso ramo da tecnologia, vemos várias empresas se destacando e ganhando cada vez mais um lugar no só seu mercado, e para que este crescimento senha contínuo, essas devem investir cada vez mais em diferenciais que as sobressaiam. Um dos meios de se destacar perante a concorrência é a adoção de um modelo de processos tecnológicos de desenvolvimento, ou até mesmo metodologias de desenvolvimento ágil, os quais dentro de suas especialidades podem fazer com que a empresa cresça de forma padronizada e também aumente o seu coeficiente de produção. Como metodologia de processo, o MPS.BR (SOFTEX, 2013), foi escolhido pela sua extrema aceitação de mercado e também pela disponibilidade dos avaliadores para obtenção do selo de qualidade (por ser um modelo nacional). Já como metodologia de desenvolvimento ágil, o SCRUM (CRUZ, 2011) torna-se quase uma opção padrão devido a sua vasta quantidade de material disponível para pesquisa e também flexibilidade para adaptações. Neste compasso, o desenvolvimento de um modelo alinhando utilizando-se dessas duas fronteiras precisa ser criado, tendo em vista suas diferentes abordagens sobre o processo como um todo e visando um aproveitamento satisfatório de ambos. 4 1.1 PROBLEMA Pela necessidade de um diferencial perante o mercado e para atender exigências por parte de seus clientes, a empresa estudada adotou o modelo de referência para qualidade conhecido como MPS.BR1 Nível G (SOFTEX, 2012), no qual, estão escritas melhores práticas de desenvolvimento de software utilizadas atualmente. Entretanto, nem todas as unidades organizacionais seguem completamente as práticas do MR-MPS-SW (SOFTEX, 2012), pois algumas equipes também na fase de desenvolvimento utilizam práticas vindas de metodologias ágeis, principalmente o SCRUM (CRUZ, 2011), onde ao contrário do processo burocrático de desenvolvimento, visa um aumento da produtividade, desempenho e um maior foco na solução do problema, utilizando-se de ferramentas de fácil compreensão e eficazes métodos de monitoramento de atividades. Pela divergência das duas práticas utilizadas, não é utilizado hoje em algumas unidades organizacionais o paralelismo entre as elas, deixando assim grande parte da empresa fora dos projetos alinhados ao MPS.BR. Já as equipes responsáveis por seguir este padrão, não desenvolvem no mesmo ritmo das demais, e também não aproveitando algumas técnicas que já são conhecidas e que melhorariam seu rendimento. Nesse sentido, esse trabalho busca identificar alternativas de como inserir técnicas ágeis para o melhoramento de desempenho mesmo em projetos rígidos seguidores da metodologia MPS.BR. 1.2 JUSTIFICATIVA Visando uma harmonização das práticas ágeis e a inserção das mesmas em projetos alinhados ao modelo de referência do MPS.BR, é necessário um estudo que viabilize uma integração entre as metodologias visando sempre o ganho de desempenho sem a perda do foco no modelo de desenvolvimento adotado pela empresa. 1 MPS.BR - Melhoria de Processo do Software Brasileiro 5 1.3 OBJETIVOS 1.3.1 Objetivo Geral Incorporar práticas ágeis a um processo de desenvolvimento alinhado ao nível “G” do modelo de referência MR-MPS-SW do MPS.BR. 1.3.2 Objetivos específicos • Levantar as práticas ágeis utilizadas atualmente pelas equipes de desenvolvimento de software; • Efetuar mapeamento das praticas ágeis identificadas; • Estudar o modelo de processos de desenvolvimento de software descritos no modelo MPS.BR adotado pela empresa escolhida e identificar pontos a serem explorados para inserção de práticas ágeis a fim de melhorar o desempenho deste. • Padronizar o uso das práticas ágeis e viabilizar a implantação do processo nos novos projetos a serem desenvolvidos. 6 2. MARCO TEÓRICO Neste capítulo são apresentados conceitualmente o modelo de melhoria MPS.BR e a metodologia de desenvolvimento ágil Scrum e é dada também uma introdução a empresa alvo e um software a ser envolvido no processo. 2.1 MPS.BR O programa MPS.BR foi criado em 2003 coordenado pela Associação para Promoção da Excelência do Software Brasileiro (SOFTEX). Hoje, já consolidado do mercado é um modelo referência sendo que tem como base modelos e normas internacionais como o ISO/IEC2 15504 (Segundo a INFORMABR (2002): "ISO: Trata-se de uma organização internacional formada por um conselho e comitês com membros oriundos da maioria dos países" e "IEC: É uma organização voltada para o aprimoramento da indústria da informação") e CMMI-DEV®3, onde descritos no próprio guia como referencias originárias, trata-se de padrões de normas internacionais, trazendo processos e atividades referentes neste caso, a produção de software. (SOFTEX, 2012) Tendo como objetivo fomentar uma melhoria dos processos de desenvolvimento de software, o modelo apresenta duas metas a serem atingidas: Meta técnica: visa à criação e aprimoramento do modelo MPS e; Meta de mercado: visa à disseminação e adoção do modelo MPS em todas as regiões do país de forma acessível tanto a pequenas empresas de desenvolvimento de software quanto a grandes empresas do setor público e privado. Este modelo veio como resposta a necessidade crítica para uma melhora na qualidade de processos no desenvolvimento de software. O modelo encontra-se descrito sob quatro guias: • Guia Geral: descrição geral do modelo MPS.BR • Guia de Aquisição: Processos para aquisição de software 2 3 ISO - International Standartization Organization / IEC - International Engineering Consortium CMMI-DEV® 2 - Capability Maturity Model Integration for Development 7 • Guia de Avaliação: Métodos de avaliação, requisitos para avaliadores, etc.. • Guias de Implementação: Orientação para implementação do modelo. Modelo MPS (SOFTEX, 2012) 2.1.1 Níveis de Maturidade O modelo de referência do MPS.BR está dividido em Níveis de maturidade que podem ser definidos como grau de proficiência obtidos pela empresa que os obteve. Para alcançar cada um dos níveis é necessário avaliação de processos e sua devida documentação executada pelos avaliadores credenciados pela própria SOFTEX. Os níveis estão descritos na seguinte ordem decrescente de grau de maturidade: 8 Nível Definição Processos A Em Otimização Análises de Resolução B Gerenciado Quantitativamente Gerência de Projetos - GPR (evolução) Definido Gerência de Riscos - GRI Desenvolvimento para Reutilização - DRU Gerência de Decisões - GDE Largamente Definido Verificação - VER Validação - VAL Projeto e Construção do Produto - PCP Integração do Produto - ITP Desenvolvimento de Requisitos - DRE Parcialmente Definido Gerência de Projetos - GPR (evolução) Gerência de Reutilização - GRU Gerência de Recursos Humanos - GRH Definição do Processo Organizacional - DFP Avaliação e Melhoria do Processo Organizacional - AMP F Gerenciado Medição - MED Garantia da Qualidade - GQA Gerência de Portfólio de Projetos - GPP Gerência de Configuração - GCO Aquisição - AQU G Parcialmente Gerenciado Gerência de Requisitos - GRE Gerência de Projetos - GPR C D E Causas de Problemas e Tabela de Maturidade MPS.BR (RENAPI 2012) O atual Guia de implementação publicado em 2011 está dividido em 11 partes sendo individualmente direcionadas as fases ou tipos de organização que queiram melhorar a qualidade de seus processos. A divisão ocorre da seguinte maneira: • Parte 1: Fundamentação para Implementação do Nível G do MR-MPS; • Parte 2: Fundamentação para Implementação do Nível F do MR-MPS; • Parte 3: Fundamentação para Implementação do Nível E do MR-MPS; • Parte 4: Fundamentação para Implementação do Nível D do MR-MPS; 9 • Parte 5: Fundamentação para Implementação do Nível C do MR-MPS; • Parte 6: Fundamentação para Implementação do Nível B do MR-MPS; • Parte 7: Fundamentação para Implementação do Nível A do MR-MPS; • Parte 8: Implementação do MR-MPS (Níveis G a A) em organizações que adquirem software; • Parte 9: Implementação do MR-MPS (Níveis G a A) em organizações do tipo Fábrica de Software; • Parte 10: Implementação do MR-MPS (Níveis G a A) em organizações do tipo Fábrica de Teste;e • Parte 11: Implementação e Avaliação do MR-MPS (Níveis G a A) em conjunto com o CMMI-DEV. Divisão do Guia de Implementação (Guia de Implementação MPS.BR parte 1) Esta divisão de maturidade exige em cada nível seus artefatos e atributos específicos para que a empresa seja classificada. A tabela abaixo fornece um resumo geral dos níveis de maturidade definidos pelo modelo, seus processos e atributos de processos: 10 Tabela de atributos requeridos (Guia Geral MPS.BR 2011) 11 2.2 SCRUM O Scrum nasceu como um guia de processos de desenvolvimento que tem como sua principal meta a diminuição de retrabalho e o máximo aproveitamento de esforço desempenhado por toda equipe responsável por um projeto. Segundo o Guia do Scrum (2011, 11) Scrum é fundamentado nas teorias empíricas de controle de processo, ou empirismo. O empirismo. O empirismo afirma que o conhecimento vem da experiência e de tomada de decisões baseadas no que é conhecido. O Scrum emprega uma abordagem iterativa e incremental para aperfeiçoar a previsibilidade e o controle de riscos. Guia do Scrum (CRUZ, 2011) 12 2.2.1 O Time Scrum O Time Scrum é composto pelo Product Owner, uma Equipe de Desenvolvimento e um "Scrum Master", que seria como um "guia" da metodologia por ser conhecedor das técnicas Scrum. A ideia da equipe é ser interdependente e flexível. Cada um sabe bem o que faz, e o que o outro está fazendo a qualquer momento, sem depender de fatores externos. (CRUZ, 2011) 2.2.2 O Product Owner O Product Owner, ou dono do produto, é responsável direto pelo produto, geralmente é o conhecedor do negócio, podendo ser até um cliente, mas geralmente é o analista de negócio que fez o levantamento dos requisitos do produto. Dentre suas responsabilidades o guia lista: • Expressar claramente os itens do Backlog do Produto; • Ordenar os itens do Backlog do Produto para alcançar melhor as metas e missões; • Garantir o valor do trabalho realizado pelo Time de Desenvolvimento; • Garantir que o Backlog do Produto seja visível, transparente, claro para todos, e mostrar o que o Time Scrum vai trabalhar a seguir; e, • Garantir que a Equipe de Desenvolvimento entenda os itens do Backlog do Produto no nível necessário. (CRUZ, 2011) 2.2.3 Equipe de Desenvolvimento A Equipe de Desenvolvimento são as pessoas que realizam o trabalho em si, são responsáveis pelas liberações das versões e por produzir o produto final. 13 As Equipes de Desenvolvimento devem ser estruturadas e com autonomeia suficiente organizar e gerenciar seu próprio trabalho. A sinergia tende a se aperfeiçoar, aumentando a eficiência e a eficácia como um todo. O Scrum não reconhece títulos para os integrantes de uma Equipe de Desenvolvimento. Todos são vistos com igualdade, independente da habilidade para desempenhar tarefas ou função exercida. (CRUZ, 2011) 2.2.4 O Scrum Master O Scrum Master é responsável por garantir que o Scrum seja entendido e aplicado. O Scrum Master faz isso para garantir que o Time Scrum adere à teoria, práticas e regras do Scrum. O Scrum Master ajuda aqueles que estão fora do Time Scrum a entender todas as suas interações, cumprimentos de cronograma e como são realizados os releases (entregas). O Scrum Master ajuda todos e realoca seus recursos para viabilizar uma melhor produtividade. (CRUZ, 2011) 2.2.5 Sprint Segundo SHWABER (2011, p. 8) "O coração do Scrum é a Sprint, um time- box de um mês ou menos, durante o qual um “Pronto”, versão incremental potencialmente utilizável do produto, é criado. Sprints tem durações coerentes em todo o esforço de desenvolvimento. Uma nova Sprint inicia imediatamente após a conclusão da Sprint anterior." (CRUZ, 2011) 14 2.2.6 Reunião Diária A reunião diária é executada em local de trabalho antes do expediente. Ela dura no máximo quinze e tem como objetivos o mais simples possível, apenas para dar uma ideia a todos da posição do grupo e do resultado a ser atingido no dia. Geralmente, o que é citado por todos os membros da Equipe de Desenvolvimento é: • O que foi completado desde a última reunião? • O que será feito até a próxima reunião? • Quais os obstáculos que estão no caminho? (CRUZ, 2011) 2.2.7 Backlog do Produto O Backlog do Produto é uma lista ordenada de tudo o que deve ser feito no produto. É a origem de toda alteração e todo conteúdo a ser alterado. Ele é de responsabilidade do O Product Owner que deve manter seu conteúdo, disponibilidade, ordenação e caso necessário versionamento. (CRUZ, 2011) 2.2.8 Backlog da Sprint O Backlog da Sprint é um similar ao Backlog do Produto, porem apenas das alterações vigentes da Sprint atual. Ele contem as alterações que devem ser feitas com seus responsáveis e cronograma já estabelecido. Até a próxima Sprint, nenhuma tarefa ou cronograma da equipe podem ser alterados. Toda funcionalidade a ser desenvolvida após uma Sprint é documentada aqui. (CRUZ, 2011) 15 3. MÉTODOS Neste capítulo é apresentada a abordagem metodológica utilizada, incluindo as pesquisas utilizadas, técnicas escolhidas e os processos para aplicações. 3.1 CARACTERIZAÇÕES DA PESQUISA As pesquisas utilizadas para elaboração deste trabalho serão direcionadas a necessidade da empresa. As mesmas serão aplicadas e qualitativas (levando-se em consideração o estado atual dos processos) e posteriormente como pesquisa de satisfação, tentando medir o nível melhoramento nos mesmos e relatando problemas a serem levados em consideração em uma futura aplicação das técnicas. 3.2 ETAPAS DA PESQUISA Para desenvolvimento deste trabalho, são necessárias três etapas principais: Etapa 1: Etapa teórica fundamental onde será analisado artefatos que possam ser alinhados as características e técnicas oriundas de metodologias ágeis. Pontos condizentes de melhoria e que tenham abertura de utilização de métodos de execução que não venham a atrapalhar o processo esperado pelas normas do MPS.BR Etapa 2: Etapa direcionada a realidade atual da empresa, onde são coletadas as práticas ágeis utilizadas na empresa e incorporadas ao modelo de processo utilizado. Etapa 3: Avaliação do novo modelo de processo pela equipe. Será proposto um roteiro onde depois de identificados os atuais papéis dos colaboradores em um cenário real de desenvolvimento. Nesta fase, seriam inseridos cenários de processos novos decorrentes de metodologias ágeis e também atribuídos a algumas pessoas seus respectivos papéis visando controle dos processos ágeis. A primeira pesquisa será feita em materiais teóricos visando coletar informações e processos relevantes das metodologias bem como suas integrações com o modelo MPS.BR, 16 ela será basicamente direcionada a materiais on-line, pois os recursos literários ainda não atendem a necessidade exigida para tal. As demais pesquisas serão feitas por meio de entrevistas não estruturadas, onde a intenção é detalhar o máximo possível dos processos utilizados hoje, tanto na parte da documentação por parte da gerencia de projetos perante aos modelos de processos entregues, quando na parte de desenvolvimento, mapeando cada passo executado por técnicas ágeis. Tendo todo material coletado, será criado um padrão e viabilizado para as equipes. Um padrão de documentação também será estudado para que seja compatível com artefatos requeridos pelo modelo MPS.BR, estes artefatos, talvez não atendam totalmente aos requisitos do modelo, mas podem ser mais condizentes com o atual processo utilizado para o desenvolvimento utilizado pelas equipes, tendo em paralelo, a atual documentação apresentada hoje. 3.3 DELIMITAÇÃO DO TRABALHO O presente trabalho limita-se à incorporação de práticas ágeis ao processo modelado na organização. O resultado deste trabalho consiste em um novo modelo unificando as práticas ágeis ao processo atual. O modelo é avaliado pelos membros da equipe por meio de um questionário. Dadas as restrições de tempo para elaboração do trabalho, a utilização prática do novo processo proposto está fora do escopo deste trabalho. 3.4 A EMPRESA A empresa alvo deste trabalho é a Softplan, que como mesmo fala em seu site é uma das maiores empresas de desenvolvimento de software de gestão do pais. No mercado desde 1990, desenvolve soluções corporativas para segmentos específicos de negócios, com foco em cinco áreas de atuação: indústria da construção, administração pública, projetos cofinanciados por organismos internacionais, departamentos de infraestrutura, transportes e obras e judiciário, ministério público e procuradorias. (SOFTPLAN/POLIGRAPH, 2011) 17 Sendo a empresa deste tamanho, se faz necessário um controle interno de processos, solicitações por parte de clientes e atendimentos em geral, é nesta parte que temos o SAC. 3.5 SAC Em uma breve explicação, podemos dizer que o SAC é o sistema utilizado na empresa para quase todas as tarefas do dia-dia, podendo ser apontamento de horas, gerenciamento de chamados (SALTs), comunicação com cliente, geração de relatórios gerenciais, etc.. É um programa desenvolvido dentro da empresa para atender as necessidades da empresa. Falando um pouco do controle de atendimento, ele serve tanto para atendimento a clientes externos quando para atendimentos a clientes internos. A ordem de serviço (atendimento) intitulada internamente de SALT, possui níveis de controle e tipo. Por exemplo: uma SALT possui uma numeração de 5 dígitos, seguida do seu item (normalmente 1 ou 2 dígitos), seguida de uma atividade, que é atribuída a um colaborador. A SALT pode originar-se de uma demanda interna ou externa, ela pode ser um novo item a ser desenvolvido, ou uma item que necessite de manutenção, (seja corretivo, evolutivo, etc..). 3.6 PONTOS A SEREM ABORDADOS O método de desenvolvimento para projetos que estão alinhados ao MPS.BR é extremamente bem definido, contendo todos os principais processos bem mapeados e com modelos para todos os seus artefatos esperados. O fluxo que compreende o desenvolvimento do projeto, passa por duas execuções que são suscetíveis a intervenção de novas metodologias, seriam estas as atividades de: Realização de testes e Realização de Implementação. A partir daqui, serão estas duas fases que estaremos contemplando como alvos das técnicas ágeis, não interferindo em seus 18 resultados esperados nem nos artefatos gerados, apenas abordando métodos de acompanhamento de escopo e gerenciamento de atividades. Fluxo de execução de desenvolvimento (Arquivo interno da Softplan) 19 4 ESCOLHA E USO DAS FERRAMENTAS Nesta fase serão apresentadas as ferramentas e técnicas escolhidas para a implantação do alinhamento das metodologias na empresa escolhida. 4.1 REUNIÃO DE KICK-OFF A reunião de Kick-off é uma reunião já costumeira da empresa, dando inicio ao projeto junto a equipe de desenvolvimento. Dependendo do tamanho do sistema, complexidade ou nível de detalhes abordado na analise de requisitos a atender, a reunião pode se desdobrar por alguns dias. A reunião com esta equipe é feita assim que todas as clausulas do projeto já foram aprovadas e o projeto está pronto para ser construído efetivamente. Nesta reunião são expostos dados do cliente, ramo de negócio, necessidades a ser atendidas e também é feita uma divisão de responsabilidades. Desta reunião, podemos identificar alguns pontos necessários para o fluxo do processo em si, tais como, período da Sprint, definição do “pronto” (estado da solicitação onde não está sujeita a alterações, situação de pronto para entrega), e também, uma prévia do que seria o cronograma, seguindo fluxo necessário referente guia MPS.BR de, GPR. 4.2 PLANNING POKER Seguindo os processos definidos alinhados ao MPS.BR é necessário antes do inicio das implementações apresentar todo protótipo de telas e um cronograma para o cliente. E neste ponto devemos ser o mais assertivo possível nas estimativas. Para efetuar estas estimativas podemos utilizar o planning poker. Segundo próprio site da técnica em questão, a ideia de utilização do Planning Poker é simples, são apresentadas estórias individualmente para estimar, e depois de um 20 período de discussão, cada participante escolhe um de seu próprio deck4 a carta numérica que representa a sua estimativa. Todas as estimativas são privadas até que todos os participantes escolham suas cartas. Ao mesmo tempo, todos os participantes apresentam suas escolhas e a discussão poderá ser retomada. (PLANNINGPOKER, 2013). Existe um deck sugerido pela própria técnica que pode ser comprado em vários lugares, como o site especializado em consultoria ágil Crisp. (CRISP, 2013). Deck para Planning Poker Crisp. (CRISP, 2013) As cartas utilizam uma numeração que não representa exatamente uma variável temporal, o que dificultaria sua representação em um cronograma a ser apresentado. Neste Deck temos o número "0" (zero) e "1/2", que podem ser utilizados para atividades com tempo de execução irrelevantes, estórias já prontas ou pouco relevantes como alguns minutos e também as cartas de "?" (interrogação) e um xícara onde representam respectivamente estórias sem definição clara ou não possíveis de serem estimadas e um pedido de descanso. (CRISP, 2013) 4 deck - Baralho ou conjunto de cartas. 21 Para o nosso caso, o ideal seria utilizar números que representem horas reais de trabalho, para que sua transcrição para um cronograma não fosse dificultada. Sugere-se utilizar o mínimo de uma hora para as atividades de menor complexidade e até quarenta horas (uma semana de trabalho completa) para as mais dificultosas. Para implementações com complexidade superior a isto, recomenda-se uma divisão de atividades, para que se mantenha um controle mais assertivo e evitar também interrupções durante a execução. Com isto teremos um deck com as seguintes numerações "1, 2, 4, 8, 16, 24, 32, 40, ?" onde daremos um foco maior em dias trabalhados representados por cartas contendo numerações incrementais de oito horas. Também se aconselha manter o símbolo de interrogação para indicar atividades que necessitam de uma melhor explicação. Sobre o calculo dessas horas existem equipes que recomendam fazer uma media de todos os votos, outras, recomendam a retirada dos extremos. Aqui trabalharemos com um meio que leve menos em consideração os extremos, mas ainda assim, utilizando eles como referencia. O que se sugere, é que dos votos dados em extremos tenham uma validade diferente dos votos medianos, isto, apenas para estimativas feitas com uma equipe que contenham três ou mais participantes, para equipes com apenas dois ou até mesmo um participante, o voto é mais direto, sendo uma media dos votos. Esta ponderação será feita multiplicando o menor voto por dois e o dividindo o maior também por dois, mesmo que isto inverta os papeis dos votos, tornando o maior um dos menores, e o menor um dos maiores. Para um exemplo diremos que temos quatro votos para uma estória, sendo eles (2, 8, 24, 24). Neste caso temos os extremos (2 e 32). Calculando ponderadamente como sugerido, temos o seguinte calculo (2 * 2) + 8 + 24 + (32 / 2) / 4 = 12. Logo, a estimativa desta dada estória seria doze horas de para produção. Para cálculos que resultem em um número não inteiro, sugere-se considerar o seu próximo número inteiro. Exemplificando uma estória que tenha os seguintes votos (2, 4, 16), teríamos o calculo (2 * 2) + 8 + (16 / 2) = 6,66... . Neste caso, considera=se o número 7. Logo, a estimativa desta estória seria de sete horas de para produção. 22 4.3 REUNIÃO DIÁRIA A reunião diária terá características já mencionadas conforme guia do SCRUM, servindo como uma maneira de acompanhamento das atividades executadas para que sejam tomadas decisões o mais rápido possível caso algo ocorra durante a Sprint. A reunião será efetuada ao inicio do expediente não devendo demorar mais de quinze minutos. 4.4 PRODUCT BACKLOG E SPRINT BACKLOG Serão utilizadas duas ferramentas para acompanhamento e visualização de backlog: o Kanban e o SAC. O Kanban hoje é utilizado por algumas equipes de desenvolvimento e testes, porém, seus padrões fogem um pouco da sua função principal de simplicidade e facilidade de interpretação visual de informações. Já com o SAC, a utilização a ser sugerida foge do atual uso da ferramenta. 4.5 USO DO SAC Para geração de relatórios no SAC, existe uma tela de consulta de atendimentos (imagem 02) onde são aceitos vários filtros, dentre eles: situação, cliente, versão, e atendimentos (número) e datas de previsão. 23 Tela de consulta de atendimentos (SAC) 24 Apos consultar um atendimento, é aberta outra tela com todas as SALTs e seus respectivos itens em aberto obedecendo aos filtros informados. Tela detalhada com SALTs filtradas (SAC) Neste ponto, podemos esperar que sejam exibidas todas as solicitações pelos filtros mencionados, podendo ser eles por um período pequeno, (uma semana caracterizando uma Sprint) ou até mesmo no decorrer de um projeto inteiro (caracterizando um backlog do projeto). Sugere-se que se use a data prevista no cadastro da SALT, pelo menos no momento que ela estiver preparada para ser executada, assim, pode-se gerenciar em um pequeno espaço de tempo o rumo da solicitação, acompanhar atrasos e tomar medidas a tempo de reverter uma possível quebra no cronograma. 25 O relatório impresso pelo SAC obedece ao seguinte leiaute (simplificado): Sigla da Unidade - nome da unidade Emitido em: data Relatório de atendimentos Colaborador: nome do responsável Cliente: nome do cliente DADOS DO ATENDIMENTO Número : Identificação da SALT Sistema : Nome do sistema Origem : Interna/externa Contato : Colaborador que efetuou registro Observação : Dados da solicitação. Nro. atend.(cliente) Versão: DADOS DO ITEM DE ATENDIMENTO Item : Identificação do item da SALT Encerrado em: data Previsto para : data Prioridade: nível Situação : Interna/externa Tipo: : Desenv./ suporte/ documentação/ analise/etc.. Encerrado por : Colaborador que encerrou o item Descrição : Dados da tarefa do item Solução : Solução encontrada INFORMAÇÕES ADICIONAIS Horas gastas : quantidade de horas utilizadas 26 O relatório servirá como artefato gerado ao final da semana e também como informação a ser repassada para os gestores de projeto. O acompanhamento do mesmo será semanal. Constata-se que este relatório é uma ferramenta muito útil para que seja efetuado resumo da semana, podendo assim, comparar o que estava previsto e o que foi realmente executado no período esperado. 4.6 KANBAN 4.6.1 Quadro Kanban O quadro Kanban não está explicitamente sendo referenciado no guia, mas quando se fala em Scrum, uma das primeiras imagens que vem a mente é a de um quadro cheio de post-its5 coloridos. Isto se dá pela facilidade de visualização e acompanhamento do projeto proporcionado por esta ferramenta. É nela que ficam todas as "estórias" e/ou demandas gerenciadas no decorrer do projeto. O quadro Kanban caiu como uma luva para o Scrum porque garante a transparência e a inspeção, dois dos pilares que suportam o framework. A transparência é garantida no momento em que todos os comprometidos com o projeto podem acompanhar, a qualquer momento, como está o desenvolvimento de cada história, os problemas encontrados nelas. A inspeção é possível na interpretação do mesmo: muitos post-its representando impedimentos podem indicar problemas, assim como uma tarefa que está há muito tempo sendo feita. A interpretação do quadro pode levar a diagnosticar problemas complexos muito facilmente, de forma visual e intuitiva. (MADUREIRA, 2012) O Kanban possui raias que seriam caminhos que uma solicitação pode passar. Ela vai resumidamente de "a fazer" para "fazendo" e posteriormente "feito". No caso atual da empresa, quadro já é utilizado porem com uma raia para cada projeto, necessitando assim da criação de mais uma raia para atender a atividade de testes, conforme processo de execução presente no modelo atual da empresa (realização de 5 post-it - Adesivos de papel utilizados para anotações. 27 implementação e realização de testes). Como são equipes diferentes, cada um será responsável por manter atualizadas as situações de cada uma das suas tarefas. Exemplo de Kanban (Caelun, 2013) 28 4.6.2 Avatar Avatares são personagens, figuras ou qualquer tipo de imagem que seja associada a uma das pessoas que possam interagir com as atividades dispostas no quadro kanban. O avatar pode ser simplesmente substituído pelo nome da pessoa caso a mesma não queira ser associar a nenhuma imagem, e seu uso indica exatamente o que esta pessoa esta fazendo em um determinado momento. 4.6.3 Post-It Uma definição simplificada do post-it seria a representação física da atividade cadastrada no SAC para ser manipulada no Kanban. No caso do post-it, existe também um modelo de padrão proposto para sua utilização dentro da empresa, onde o mesmo foi pensado para que grande parte das informações sobre a atividade ficasse a mostra nele. Com isto, sua complexidade aumentou consideravelmente, perdendo um pouco do seu propósito em se tratando de uma ferramenta ágil. Segue exemplo disponibilizado nos arquivos da Softplan. 29 Modelo padrão de post-it (Arquivo interno Softplan) Sugere-se neste ponto que haja uma considerável simplificação deste objeto, deixando a parte gerencial para o SAC. O objetivo do Kamban neste momento é manter a situação do projeto sempre disponível e dinamizar as atualizações das mesmas no decorrer do tempo. 30 SALT - 12341 / 12 SALT - 42457 / 6 Corrigir cálculo de folha de pagamento. Criar tela de cadastro de cliente. Modelos propostos de utilização de Post-it É fato que no decorrer do projeto, uma atividade possa ser dividida em duas ou mais frações, fazendo com que um post-it não seria suficiente, neste caso, para que não se perca a rastreabilidade com a SALT original, pede-se que seja posto abaixo da descrição da atividade, seja inserido também um contador de fragmentos com o seu número sequencial pelo total divisório da SALT. Ex.: 2/4. Seria a segunda atividade de um total de quatro. SALT - 43579 / 2 SALT - 31245 / 9 Cadastro de autos de infração. Correção do calculo de valor de multa. 2/3 1/2 Modelos propostos de utilização de Post-it (derivados) Para utilização do post-it, o desenvolvedor ou testador da atividade ficará responsável pela sua migração de coluna para outra no Kanban. 4.6.4 Gráfico de Burndown Segundo Lima (2012) "O Burndown chart ou gráfico de Burndown é o gráfico utilizado pelas equipes Scrum para representar diariamente o progresso do trabalho em desenvolvimento.". Este gráfico tem como métricas a quantidade de horas totais para finalização das atividades da sprint, e o tempo total para finalização da mesma. 31 A quantidade total de horas é obtida através da soma das horas disponíveis de todos os membros da equipe durante uma semana. Para atualização do gráfico, diariamente durante a reunião diária, cada desenvolvedor deve dizer se finalizou sua(s) atividade(s) do dia anterior ou, se não, a porcentagem que falta para finalização da atividade. Com essas informações, serão indicadas no gráfico as horas já gastas, que poderá ser comparadas a uma linha guia "ideal" de tempo para execução da sprint. Esta linha delimita visivelmente a informação de atraso ou adiantamento da finalização da sprint. No exemplo abaixo, a cada vez que a linha azul fica acima da linha vermelha pontilhada a execução está em atraso, já quando a linha passa para parte inferior a linha vermelha, a equipe está adiantada em suas execuções. Burndown chart (LIMA, 2012) 32 5 CONCLUSÕES Conclui-se com este que mesmo que em se tratando de uma metodologia de processos rígidos e de uma comunicação expressamente formal com todos os participantes do processo como é o MPS.BR, é possível sim um alinhamento com praticas e técnicas ágeis como o SCRUM, que é altamente flexível e focado em desempenho, tendo como suas características a facilidade de comunicação, visualização de resultados e alto desempenho da equipe de desenvolvimento. Garante-se por meio deste, que nenhum dos artefatos exigidos pelos processos mapeados e alinhados ao MPS.BR seja alterado ou desconsiderado, sendo que todos os processos sugeridos direcionam-se totalmente a linha de execução do projeto tornando o processo mais visível gerencialmente, melhorando o desempenho com um constante acompanhamento das métricas de produção. 33 6 SUGESTÕES PARA TRABALHOS FUTUROS • Implantação de técnicas ágeis em equipes fora da metodologia MPS.BR; • Alinhamento de artefatos resultantes de processos ágeis como documentos conclusivos ao alinhamento de metodologias de qualidade como o MPS.BR; • Implantação do modelo sugerido em locais fora da empresa foco do trabalho; • Pesquisa de satisfação pós-implantação do modelo sugerido. 34 7 REFERÊNCIAS CRISP. Planning Poker®: Buy Planning Poker® decks. Disponível <http://www.crisp.se/bocker-och-produkter/planning-poker> Acesos em: 12 jan. 2013. em: CRUZ, Fábio Rodrigues. SABBAGH, Rafael. Um guia definitivo para o Scrum: As regras do jogo, 2011. Disponível em: <http://www.scrum.org>. Acesso em: 11 ago. 2012. INFORMABR. NBR ISO. Disponível em <http://www.informabr.com.br/nbr.htm>. Publicado em: set. 2002. Acesso em: 03 jan. 2013. LIMA, Ester. Burndown chart: Mede o progresso da sprint e dá indicativos do processo de trabalho da equipe. Publicado em: 9 jan. 2012. Acesso em 24 jan. 2013. MADUREIRA, Felipe. O quadro de tarefas no Scrum. Blog Scrum Half, Publicado em jan. 2012. Disponível em: <http://blog.myscrumhalf.com/2012/01/o-quadro-de-tarefas-noscrum/>. Acesso em: 02 jan. 2013. PLANNINGPOKER. Play. Estimate. Plan.: How does Planning Poker® work?. Disponível em <http://www.planningpoker.com/>. Acesso em 05 jan. 2013. RENAPI. Rede de Pesquisa e Inovação em Tecnologias Digitais. MPS.BR: Níveis de Maturidade do MPS.Br. Disponível em: <http://www.renapi.gov.br/qualidade/metodologia/copy_of_finalidade> SHWABER, Ken, FILHO, Heitor Roriz. et al. Guia do Scrum. Disponível em: <http://www.scrum.org>. Acesso em: 11 ago. 2012. SOFTEX. MPS.BR - Melhoria de Processo do Software Brasileiro: Guia de Implementação - Parte 1: Fundamentação para Implementação do Nível G do MR-MPS. Disponível em: <http://www.softex.br/mpsbr/>. Acesso em: 13 ago. 2012. SOFTEX. MPS.BR - Melhoria de Processo do Software Brasileiro: Guia Geral. Disponível em: < http://www.softex.br/mpsbr/>. Acesso em: 23 jul. 2012. SOFTPLAN/POLIGRAPH. Institucional. Disponível em: <http://www.softplan.com.br/empresa.jsf >. Publicado em 2011. Acesso em: 02 jan. 2013. 35