Trabalho de fim de curso da pós-graduação lato-sensu da UNA, BH, de Engenharia de Software Centrada em Métodos Ágeis.
Aluna: Aline Lopes Coelho
Professor Orientador: Marco Aurélio de Souza Mendes
Belo Horizonte 1º semestre/2011
(Conteúdo escrito integralmente pela autora)
Resumo
Atualmente, as empresas que trabalham com Tecnologia da Informação estão buscando, cada vez mais, a melhoria dos produtos e processos visando a satisfação dos clientes em decorrência dos serviços prestados além de visibilidade perante ao mercado. Em contrapartida, os clientes vem se tornando exigentes e participativos no processo de desenvolvimento de software acompanhando grande parte das fases de criação do sistema. Esse tipo de participação vem sendo adotado juntamente com as práticas de metodologias ágeis como o Scrum, o qual o cliente possui papel fundamental como Product Owner. Com esse trabalho pretende-se demonstrar que a inserção do cliente tende a contribuir, reduzir custos, riscos e incertezas durante todo o processo. O trabalho tem por objetivo geral expor a atividade do cliente dentro do processo de desenvolvimento de software com a utilização do Scrum como metodologia ágil. Além disso, o artigo visa abordar a importância da comunicação efetiva entre time e Product Owner dentro do processo colaborativo. Bem como os fatores relevantes para o sucesso de projetos e aumento do retorno sobre o investimento (ROI). O estudo apresentado caracteriza-se como revisão bibliográfica utilizando como base artigos, livros e sites com conteúdos pertinentes ao assunto. Na análise de dados foram encontrados como fatores de sucesso para a implementação do Scrum com foco no cliente a comunicação clara e eficaz, o trabalho colaborativo, a educação do cliente dentro do processo iterativo e incremental, a interação direta entre clientes e o time, dentre outros. Para obtenção de sucesso com a adoção de práticas ágeis associadas ao Scrum, é fundamental que exista comprometimento por parte do cliente através da seleção de um Product Owner com bom conhecimento das regras de negócio, uma vez que, será ele o responsável direto pelo produto desenvolvido.
Palavras-Chave: Scrum, Cliente, Product Owner
1. Introdução
Em Tecnologia da Informação o que atualmente vem sendo buscado é a melhoria dos produtos e processos visando satisfação dos clientes pelos serviços prestados além de visibilidade no mercado.
Outro fator que pode ser observado é que, cada vez mais, os clientes vem se tornando exigentes e participativos no desenvolvimento de software, acompanhando grande parte das fases da criação do sistema. Esse tipo de participação efetiva do cliente vem sendo muito utilizada a partir da adoção de práticas de metodologias ágeis como por exemplo, o Scrum, o qual, o cliente possui um papel fundamental como Product Owner (PO), que faz com que sua participação seja imprescindível para o sucesso da implementação desse framework.
Em decorrência do contexto atualmente utilizado; este trabalho terá relevância e contribuirá através da abordagem da inserção do cliente no decorrer do processo de desenvolvimento de software, uma vez que, o trabalho irá contemplar a experiência relatada em empresas que adotam esse tipo de prática; tornando o trabalho útil para empresas atraídas pela adoção do framework Scrum.
O trabalho apresentado poderá auxiliar ainda na construção de um novo paradigma de visão do cliente como colaborador do processo, mesmo para aqueles que não utilizam o Scrum.
Com esse trabalho pretende-se demonstrar que a inserção do cliente tende a contribuir, reduzir custos, riscos e incertezas durante todo o processo.
O trabalho tem por objetivo geral expor a atividade do cliente dentro do processo de desenvolvimento de software com a utilização do Scrum como metodologia ágil. Além disso, o artigo visa abordar a importância da comunicação efetiva entre time e Product Owner dentro do provesso colaborativo. Bem como os fatores relevantes para o sucesso de projetos e aumento do retorno sobre o investimento (ROI).
2. Referencial Teórico
Em fevereiro de 2001, de uma reunião de quinze pessoas que defendem práticas de XP, Scrum, DSDM, ASD, Crystal, Feature-Driven Development entre outras; surgiu o Manifesto Ágil de Desenvolvimento de Software, em que os autores realizaram as seguintes considerações:
Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós mesmos e ajudando outros a fazerem o mesmo. Através deste trabalho, passamos a valorizar:
Indivíduos e interações mais que processos e ferramentas
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 (BECK et al., 2001).
França, Silva e Mariz (2010) citam o estudo realizado por Chao e Cao realizado em 2007, o qual, os autores relatam seis fatores de sucesso em projetos ágeis, são eles: estratégias de entrega de produtos, técnicas ágeis de engenharia de software, capacidade do time, processo de gestão do projeto, ambiente do time e envolvimento do cliente.
Existem distinções relevantes quando comparamos metodologias ágeis e modelos em cascata (waterfall), uma vez que no primeiro a construção do produto é realizada de forma incremental, proporcionando modificações durante o período de elaboração do produto podendo ser adaptado em detrimento de mudanças no mercado, por exemplo; sendo ajustado sempre que necessário quando ocorrem as entregas de “partes” do software. Por outro lado, o modelo waterfall trabalha com escopo fechado, ou seja, todo o projeto é elaborado no início, podendo gerar ambigüidades inerentes à sistemas complexos, dificultando o levantamento de requisitos que realmente possam suprir a necessidade do cliente no momento da entrega total do sistema (SULAIMAN;BARTON;BLACKBURN, 2006).
Highsmith e Cockburn (2001) descrevem que a adoção do modelo em cascata talvez poderia solucionar problemas referentes à custos não planejados, uma vez que, o conjunto completo de requisitos é antecipado e há redução de custos uma vez que alterações não são realizadas fora do escopo estipulado no início do projeto. Em contrapartida, a resistência a mudanças pode significar ao cliente a insensibilidade de sua empresa diante da relevância das condições de seu negócio, podendo gerar insucesso empresarial.
A introdução de metodologias ágeis no desenvolvimento de software tem proporcionado mudanças e melhorias nas práticas de gestão. Atrelado a isso, houve mudanças relacionadas a gastos como redução de horas extras e elevação do nível de satisfação dos clientes envolvidos no processo. A associação desses fatores vem promovendo redução de riscos inerentes a defeitos durante o desenvolvimento bem como melhorias no quesito da qualidade dos softwares desenvolvidos (MAHNIC; ZABKAR, 2008).
O framework Scrum enquadra-se no processo ágil e tem por objetivo gerar o controle de processos empíricos dentro de uma abordagem iterativa e incremental visando otimização da previsibilidade da entrega de software funcionante além de controlar os riscos inerentes ao processo. O Scrum é fundamentado em três pilares: transparência, inspeção e adaptação (SCHWABER; SUTHERLAND, 2010; FRANÇA; SILVA; MARIZ, 2010).
A utilização do Scrum é baseada na formação do Scrum-Team, o qual é formado pelo:
- Scrum Master: responsável por garantir que os valores, práticas e regras do Scrum sejam aderidos por todos;
- Product Owner: pessoa que possui o conhecimento do negócio e realiza a priorização do Product Backlog (representa todos os itens necessários para desenvolver e lançar um produto de sucesso) além de garantir que o time de desenvolvedores realize um trabalho e que entreguem valor ao final de cada sprint (iteração com duração fixa entre duas e quatro semanas).
- Team: formado por desenvolvedores capazes de transformar os itens do Product Backlog em funcionalidades potencialmente entregáveis ao final de cada sprint (SCHWABER; SUTHERLAND, 2010).
Dentro desse contexto, pode-se perceber que a atuação do Team juntamente com o PO (Product Owner) é de fundamental importância, uma vez que, o diálogo entre ambos torna a comunicação muito mais efetiva, o que proporciona a resolução de dificuldades, ajuste de prioridades e análise de caminhos alternativos para a entrega de valor para o cliente (HIGHSMITH; COCKBURN, 2001).
Dentro do Scrum, o PO realiza outras tarefas de destaque, pois ele é o responsável pela emergência do product backlog, que possui itens com os requisitos necessários para geração de valor, ou seja, para geração de retorno sobre o investimento (ROI), além disso, ele acompanha toda a fase de desenvolvimento do software sendo membro ativo das reuniões de planejamento, revisão e retrospectiva da sprint (JUDY; BEENS, 2008).
3. Procedimentos Metodológicos
Esse estudo caracteriza-se como revisão bibliográfica e, para seleção dos artigos dessa revisão, foram realizadas pesquisas nas bases de dados ACM (Association for Computing Machinery) e no site IEEE. Os artigos foram selecionados através da utilização de filtros com a utilização do termos livres como “Scrum” e “Product Owner”.
Dos artigos encontrados, houve seleção a partir do título e do resumo e posteriormente, uma nova seleção a partir da leitura de todo o artigo. Ao final, foram selecionados seis artigos.
Além da seleção de artigos, foram utilizados sites os quais traziam informações relevantes sobre o assunto, tais como o Scrum Guide e o Agile Manifesto bem como um livro com conteúdo relevante sobre o assunto.
4. Análise de Dados
Para o sucesso da implementação do Scrum é fundamental que todos os envolvidos consigam se comunicar de maneira eficaz, proporcionando a redução de incertezas no decorrer do processo de desenvolvimento de software. Dentro desse contexto, três autores abordam a importância da comunicação dentro do processo colaborativo.
Schwaber (2004) relata a introdução do framework para o desenvolvimento de software para transferência de fundos da empresa Americana MegaBank. A empresa citada disponibilizou três pessoas para que pudessem acompanhar o processo de desenvolvimento do sistema, ambas sem conhecimento técnico de desenvovimento e Scrum, porém com grande conhecimento do negócio. Diante desse cenário, antes da introdução da metodologia, o Scrum Master apresentou o framework bem como a linguagem utilizada e as responsabilidades do Product Owner em manter o Product Backlog priorizado para obtenção do sucesso na implementação do produto. Schwaber cita em seu livro que a empresa vem utilizando Scrum a mais de seis meses oferecendo novos lançamentos e colaboração entre as equipes.
Em seu livro Schwaber (2004), cita também que em determinado serviço os sócios estavam presentes em toda construção do produto em decorrência do pequeno porte da empresa e trabalhavam juntamente com os desenvolvedores para entrega do produto com as características que suprissem suas necessidades. Entretanto com o crescimento da empresa, eles precisaram delegar essa função à outras pessoas. Em decorrência disso, houve uma queda nas liberações do produto além da diminuição da qualidade do produto. Como tentativa de suprir isso, houve aumento de horas extras por parte dos desenvolvedores e elevação do número de bugs. Diante desse cenário os sócios optaram pela adoção do Scrum e substituíram os antigos relatórios pela comunicação face-a-face e após a primeira reunião de revisão um dos fundadores observou a importância da comunicação com o cliente para a obtenção do sucesso do produto.
Para a implementação de sucesso do Scrum, além da comunicação efetiva, o trabalho colaborativo entre time e PO torna-se imprescindível.
Em detrimento disso, Judy e Beens (2008) relatam em seu artigo o resultado de uma revisão de literatura sobre os fatores que influenciam a colaboração de sucesso. Os fatores foram subdivididos em fatores ambientais, sociais, de processo e estrutura, de comunicação, de finalidade e de recursos. Dentre essa subdivisão destacam-se alguns que são fundamentais para o trabalho colaborativo do Product Owner e do Time; são eles: o respeito mútuo, compreensão e confiança, participação dos membros no processo e resultado, Desenvolvimento de funções claras, definição de direitos e responsabilidades, adaptabilidade, ritmo adequado de desenvolvimento, comunicação aberta e frequente, estabelecimento de relações informais e links de comunicação e visão compartilhada.
Nos artigos analisados, em dois houve abordagem de fatores de sucesso que impactam no desenvolvimento de projetos.
A empresa Code71 está desenvolvendo e mantendo um sistema de apoio a gestão de liderança complexo baseado na solução Web para seus clientes de pequenas empresas com sede nos EUA utilizando o framework Scrum adotado de maneira incremental através de estágios de maturidade. Essa experiência foi abordada por Rayhan e Haque (2008), a qual eles listaram as principais lições aprendidas no decorrer da implementação do processo. Dentre elas, citam-se como principais: o reforço da auto-organização do time em todas as reuniões, a ruptura da relação hierárquica, incentivo à livre comunicação, a educação dos clientes dentro do processo iterativo incremental e interação direta entre clientes e time.
No estudo realizado por França, Silva e Mariz (2010), evidenciou-se oito como fatores cruciais para o sucesso de projetos; são eles: entrega regular de software, disponibilização primeiramente de recursos mais importantes, implementação correta do teste de integração, competência e especialização dos membros da equipe, processo de gestão de requisitos ágeis em sequencia, processo de gerência de configuração ágil, trabalho em equipe auto-organizado e bom relacionamento com o cliente. Alguns fatores se correlacionam com aspectos inerentes às boas práticas do Scrum como entrega de valor para o cliente em um curto período de tempo (sprints), times auto-organizados e relacionamento ativo com o cliente.
A abordagem do retorno sobre o investimento com a utilização do framework Scrum foi realiada por Schwaber (2004). Em seu livro o autor citou a experiência de um executivo da empresa de telecomunicação TechCore não possuía habilidades para gerar prioridades até que começasse a utilizar práticas de Scrum. Com a implementação do Product Backlog ele percebeu a possibilidade de elevação de ganhos através da concentração de sua atenção do desenvolvimento de produtos. Em quatro meses, Michel já havia alcançado seus objetivos através do foco dado no desenvolvimento de seus produtos e da melhora da resolutividade de problemas críticos; além de ter melhorado as perspectivas de sua empresa que foi percebida pela oferta de compra por uma quantia significativamente maior que a oferta anterior. O ROI gerado pela participação de Michel no desenvolvimento de produtos foi de quase US$ 1 bilhão de dólares em seis meses (SCHWABER, 2004).
5. Considerações Finais
Para o sucesso da implementação do framework Scrum é fundamental que o Product Owner conheça o processo bem como suas funções dentro desse e a importância de sua participação durante as cerimônias de planejamento, revisão e retrospectiva das sprints.
Além disso, é fundamental que o Scrum Master preencha as lacunas no processo de comunicação, entendimento e qualidade do diálogo no que diz respeito ao desenvolvimento de software entregável, suprindo as expectativas do cliente e gerando aumento do ROI esperado por esse.
O bom trabalho do PO com participação ativa e com qualidade na priorização do Product Backlog bem como a participação efetiva desse nas reuniões proporciona a redução de riscos e incertezas no que diz respeito ao produto final, uma vez que a comunicação face-a-face reduz consideravelmente ambiguidades e distorção da visão do produto, além disso o acompanhamento contínuo é crucial para que a inspeção e adaptação sejam feitas da melhor maneira possível aumentando o ROI do cliente e satisfazendo as suas reais necessidades dentro de um determinado contexto.
Para uma melhor participação do PO dentro do processo de desenvolvimento utilizando framework Scrum e melhor aproveitamento do seu potencial; existem capacitações oferecidas por organizações, as quais ensinam as pessoas a como lidar para que o ROI seja maximizado e auxiliando para que elas se tornem capazes de otimizar o custo total sobre propriedade de produtos e sistemas; propiciando aos proprietários profissionais do produto a terem uma compreensão concreta de tudo o que impulsiona o valor de seus produtos.
Dessa maneira, pode-se citar como fatores relevantes para o sucesso da adoção de práticas ágeis atreladas ao Scrum: a educação dos clientes dentro do processo iterativo incremental, a comunicação efetiva entre PO e time e o trabalho colaborativo com acompanhamento regular do Product Owner durante o processo de desenvolvimento de software realizado pelo time,
Entretanto a participação ineficaz do Product Owner dentro do processo Scrum pode resultar em falha do produto, elevação dos custos por parte do cliente e ineficiência do processo como um todo, já que esse é peça fundamental para a implementação do framework.
Para obtenção de sucesso com a adoção de práticas ágeis associadas ao Scrum, é fundamental que exista comprometimento por parte do cliente através da seleção de um Product Owner com bom conhecimento das regras de negócio, uma vez que, será ele o responsável direto pelo produto desenvolvido. O comprometimento também deve partir também do Time e do Scrum Master; afinal, o sucesso não depende apenas de integrantes isolados, mas de todo o Scrum Team.
6. Referências Bibliográficas
BECK, Kent et al .Agile Manifesto. Disponível em ‹http://agilemanifesto.org/›. Acesso em 22 Abr. 2011.
FRANÇA, A. César C.; SILVA, Fábio QB; MARIZ, Leila MRS. AnEmpirical Study on the Relationship between the Use of Agile Practices and the Success of Software Projects that Use Scrum. Salvador: Brazilian Symposium on Software Engineering. ACM p.110-117, Set. 2010.
HIGHSMITH, Jim; COCKBURN, Alistair. Agile Software Development: The Business of Innovation. Los Angeles, CA: IEEE Computer v. 34, n.9, p. 120-122, Set. 2001.
JUDY, K.; KRUMINS-BEENS, I. Great Scrums Need Great Product Owners – Unbounded Collaboration and Collective Product Ownership. Hawaii: Hawaii International Conference on System Sciences, p. 462-462, 2008.
MAHNIC, Viljan; ZABKAR, Natasa. Using COBIT Indicators for Measuring Scrum-based Software Development. Wseas Transaction on Computer v 7, n. 10, p. 1605-1617, Out 2008.
RAYHAN, S. HAQUE, N. Incremental Adoption of Scrum for Successful Delivery of an IT Project in a Remote Setup. Agile Conference, p. 351 – 355. 2008.
SCHWABER, Ken; SUTHERLAND, Jeff. Scrum. Disponível em ‹http://www.scrum.org/storage/scrumguides/Scrum%20Guide%20-%20PTBR.pdf#view=fit›. Acesso em: 22 Abr. 2011.
SCHWABER, Ken; Agile Project Management with Scrum. EUA: Microsoft Press, 2004.
SULAIMAN, T.; BARTON, B; BLACKBURN, T. AgileEVM – Earned Value Management in Scrum Projects.Minneapolis: Agile Conference, IEEE Computer, Jul. 2006.
