91
Conhecendo as Conhecendo as Metodologias Ágeis Metodologias Ágeis

Oficina Métodos Ágeis UDESC

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Oficina Métodos Ágeis UDESC

Conhecendo as Conhecendo as Metodologias ÁgeisMetodologias Ágeis

Page 2: Oficina Métodos Ágeis UDESC

Quem sou eu?

Guilherme [email protected]

� Mestre em Ciência da Computação, área de Engenharia de Software (UFRGS)

� Professor de Graduação (FACENSA e UniRitter) e Pós-Graduação (UniRitter)

� Consultor de TI, com mais de 15 anos na área de desenvolvimento de Software e 10 anosde experiência em modelagem e desenvolvimento OO

� Instrutor/Consultor de Metodologias Ágeis da TargetTrust Treinamento e Tecnologia

� Pioneiro em Metodologias Ágeis no Brasil (Lean, SCRUM e XP)

� Fundador do XP-RS (Grupo de Usuários de Metodologias Ágeis do RS) e Vice-Coordenadordo GUMA (Grupo de Usuários de Metodologias Ágeis) vinculado a SUCESU-RS

� Membro do IASA (International Association of Software Architects)

Page 3: Oficina Métodos Ágeis UDESC

Quem faz programa?

Por que 80% a 90% dos projetos de SW fracassam?

Fonte: Standish Group

Page 4: Oficina Métodos Ágeis UDESC

Principais Problemas

� Sistemas entregues com atrasos e/ou orçamento estourado

� Não atendem os requisitos de negócio

� Clientes descontentes (sem confiança nos desenvolvedores)

� Clientes não têm compreensão clara do que é desenvolvido

� Clientes não dão suporte correto para o desenvolvimento

� Clientes não estão interessados em participar de processos complexos

Page 5: Oficina Métodos Ágeis UDESC

Principais Problemas

� Desenvolvedores trabalham muitas horas!

� Desenvolvedores relaxam na disciplina

� Desenvolvedores perdem o foco

� Processos prescritivos são atrativos para a gerência mas não paraos desenvolvedores� Baseados no paradigma do comando e controle

� Tenta minimizar o papel do cliente

� Foco em tecnologia e não no negócio

Page 6: Oficina Métodos Ágeis UDESC

Comunicação

Page 7: Oficina Métodos Ágeis UDESC

Comunicação

Page 8: Oficina Métodos Ágeis UDESC

Comunicação

Page 9: Oficina Métodos Ágeis UDESC

Comunicação

Page 10: Oficina Métodos Ágeis UDESC

Como resolvê-los?

Page 11: Oficina Métodos Ágeis UDESC

Como resolvê-los?

Page 12: Oficina Métodos Ágeis UDESC

O que é ser Ágil?

� Características importantes:� Foco nas necessidades do cliente (resultado!)

� Ágil é ser rápido, ligeiro (dicionário)� Eficaz: produz o resultado esperado� Eficiente: produz o resultado esperado, mas com qualidade

� Foco nas necessidades do cliente (resultado!)� Liderança� Envolvimento das pessoas� Melhoria Contínua� Tomada de decisões baseada em análise de dados e informações(controle!)

Page 13: Oficina Métodos Ágeis UDESC

Direitos do Cliente (Ron Jeffries)

� Planejamento Geral, definindo o que pode ser realizado, quando e aque custo

� Ver e acompanhar o andamento do projeto e, principalmente, oprogresso do SW, passando por testes definidos em conjunto com aequipe

� Mudar de idéia, substituir funcionalidades, sem pagar custosexorbitantes

� Ser informado de mudanças no cronograma, em tempo de escolher ereduzir o escopo

� Poder cancelar o projeto a qualquer momento e ainda assim ter umsistema funcionando, refletindo o investimento realizado até omomento

Page 14: Oficina Métodos Ágeis UDESC

Direitos do Desenvolvedor (Ron Jeffries)

� Saber o que é necessário, com declarações claras deprioridade

� Produzir trabalho de qualidade o tempo todo

� Pedir e receber ajuda da equipe, superiores e clientes

� Fazer e atualizar suas próprias estimativas

� Aceitar as suas responsabilidades, ao invés de tê-las impostas

Page 15: Oficina Métodos Ágeis UDESC

Processos de Software

� Processos Tradicionais� Analisar, projetar e só depois iniciar codificação

� Prever o futuro� Ter certeza do que se sabe hoje será exatamente o que se quer amanhã

� Temores� Mudança de requisitos depois de concluída a fase de análise e projeto

Page 16: Oficina Métodos Ágeis UDESC

Manifesto Ágil“Estamos evidenciando maneiras melhores de desenvolversoftware fazendo-o nós mesmos e ajudando outros a fazê-lo.Através desse trabalho, passamos a valorizar:

� Interação entre pessoas MAIS QUE processos e ferramentas;

� Software em funcionamento MAIS QUE documentação abrangente;

� Responder a mudanças MAIS QUE seguir um plano.

� Colaboração com o cliente MAIS QUE negociação de contratos;

� Responder a mudanças MAIS QUE seguir um plano.

Ou seja, mesmo tendo valor os itens à direita, valorizamosmais os itens à esquerda.”

Kent Beck, Robert C. Martin, Scott Ambler, Alistair Cockburn, WardCunningham, Ron Jeffries, Steve Mellor, Mike Beedle, Arie van Bennekum,Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Brian Marick,Ken Schwaber, Jeff Shuterland, Dave Thomas

Utah – Fevereiro de 2001

Page 17: Oficina Métodos Ágeis UDESC

Waterfall X Ágil

Page 18: Oficina Métodos Ágeis UDESC

Waterfall X Ágil

Page 19: Oficina Métodos Ágeis UDESC

Cone da Incerteza

Page 20: Oficina Métodos Ágeis UDESC

Riscos

� Riscos de Planejamento� Será que conseguiremosterminar até outubro?

� Riscos de Custo� Riscos de Custo� Será que conseguiremos comprar o servidor pelo preço definidoanteriormente?

� Riscos de Requisitos� Será que temos todas as informações para começar o trabalho?

Page 21: Oficina Métodos Ágeis UDESC

Risco X Valor

Alto RiscoAlto Valor

Baixo RiscoAlto Valor

Alto RiscoBaixo Valor

Baixo RiscoBaixo Valor

Risco

Valor

Fazer Primeiro

Fazer depois

Evitar

Fazer por último

Risco

Valor

Page 22: Oficina Métodos Ágeis UDESC

Waterfall, Iterativo

Page 23: Oficina Métodos Ágeis UDESC

Metodologias Ágeis

Page 24: Oficina Métodos Ágeis UDESC

� Cultura (princípios e valores)� Foco no ROI� Eliminação de desperdícios

Lean� Foco no planejamento e priorização� AutogestãoScrum

Preparando o terreno

� Autogestão� Colaboração e ComprometimentoScrum� Comunicação e feedback� Práticas de engenharia� Entregas frequentes� Ênfase em qualidade

XP

Page 25: Oficina Métodos Ágeis UDESC

LeanLean Software Software DevelopmentDevelopment

Page 26: Oficina Métodos Ágeis UDESC

Principais Nomes

� Kiichiro Toyoda� JIT na linha de produção

� Taiichi Ohno� Fluxo JIT e Autonomação (Jidoka)

� Shingeo Shingo� Produção sem estoques e Zero Inspeções

Page 27: Oficina Métodos Ágeis UDESC

Problemas de Produção

� Muda� Desperdícios� Desperdícios

� Mura� Falta de regularidade

� Muri� Sobrecarga

Page 28: Oficina Métodos Ágeis UDESC

STP

Page 29: Oficina Métodos Ágeis UDESC

Conceitos� Just in Time

� Jidoka

� Heijunka

� Kanban

� Andon

� Poka-Yoke

� Jishuken

� Genchi Genbutsu

� Trabalho Padronizado e 5S

� Hansei e Kaizen

Page 30: Oficina Métodos Ágeis UDESC

Kanban

Page 31: Oficina Métodos Ágeis UDESC

Trabalho Padronizado/5S

Page 32: Oficina Métodos Ágeis UDESC

Prevenção X Inspeção

� STP� Foco em prevenção e eliminação dedesperdícios� JIT e Autonomação

100100

Antes

0

50

Depois

Prevenção

Avaliação

Falhas Internas

Falhas Externas Economia

Prevenção

Avaliação

Falhas Internas

Falhas Externas

Page 33: Oficina Métodos Ágeis UDESC

Lean Software Development

� Principais nomes são Mary e Tom Poppendieck� Principais nomes são Mary e Tom Poppendieck

Page 34: Oficina Métodos Ágeis UDESC

SCRUMSCRUM

Page 35: Oficina Métodos Ágeis UDESC

O que é SCRUM?

Page 36: Oficina Métodos Ágeis UDESC

O que é SCRUM?

� Framework ágil para gerência de projetos� Pode ser utilizada para qualquer tipo de projeto� Pode ser utilizada para qualquer tipo de projeto

� Processo empírico para gerência e desenvolvimento de produtoscomplexos

� Empirismo é dependente de inspeção frequente e adaptações dos objetivos� Inspeção é dependente de transparência� Equipes auto-gerenciadas

� SCRUM = jogada no Rugby

Page 37: Oficina Métodos Ágeis UDESC

O que é SCRUM?

� Principais nomes são Ken Schwaber, Jeff Sutherland e MikeBeedle

Page 38: Oficina Métodos Ágeis UDESC

SCRUM Alliance

� Instituição sem fins lucrativos

� Centraliza cursos, artigos, materiais e eventos sobre SCRUM

�Responsável pelas certificações� http://www.scrumalliance.org/scrum_certification

Foudation Level

Mid Level

Professional Level

Guide Level

Page 39: Oficina Métodos Ágeis UDESC

Valores

� Comunicação

� Trabalho em Equipe� Trabalho em Equipe

� Flexibilidade

� Foco no produto e em atividades que agregam valor

� Respeito e coragem

Page 40: Oficina Métodos Ágeis UDESC

Fluxo de Valor do SCRUM

VisãoAprovação do Projeto

Time Desenvolvimento ImplantaçãoSuporte

e Feedback

Durante

Feedback do Cliente

Agregar Valor

Aprendizado

Durante

Antes Depois

Page 41: Oficina Métodos Ágeis UDESC

Framework SCRUM

Page 42: Oficina Métodos Ágeis UDESC

Framework SCRUM

Page 43: Oficina Métodos Ágeis UDESC

Desenvolvimento Sequencial X SCRUM

Requerimentos Projeto Código Teste

Fonte: “The New New Product Development Game” by Takeuchi and Nonaka. Harvard Business Review, January 1986.

Page 44: Oficina Métodos Ágeis UDESC

eXtremeeXtreme ProgrammingProgramming

Page 45: Oficina Métodos Ágeis UDESC

XP

� Criado por Kent Beck, Ron Jeffries e Ward Cunningham� Criado por Kent Beck, Ron Jeffries e Ward Cunningham

� Principal tarefa é a codificação

� Disciplina de desenvolvimento de SW, voltada para equipespequenas e médias, com requisitos vagos ou que mudamfreqüentemente

Page 46: Oficina Métodos Ágeis UDESC

XP

Page 47: Oficina Métodos Ágeis UDESC

Valores do XP

� Comunicação� Comunicação� Práticas valorizam a comunicação, não limitada a procedimentos formais

� Simplicidade� Incentiva ao extremo práticas que reduzam a complexidade

� Feedback� Práticas garantem um rápido feedback sobre várias partes do projeto

� Coragem� Práticas aumentam a confiança dos desenvolvedores e do próprio cliente

Page 48: Oficina Métodos Ágeis UDESC

Variáveis de um Projeto

Processos Tradicionais � Tempo� Escopo� Custo

Manipula-se aQualidade

eXtreme Programming

� Tempo� Qualidade� Custo

Manipula-se aEscopo

Page 49: Oficina Métodos Ágeis UDESC

XP – eXtreme Programming

Práticas organizacionais

Práticas de equipe

Práticas de pares

Page 50: Oficina Métodos Ágeis UDESC

Equipe (Whole Team)

Equipe XP = Cliente + Time de Desenvolvimento

� As funções do cliente englobam:

� Definição dos requisitos do projeto� Definição de prioridades� Controle do rumo do projeto� Controle do rumo do projeto� Definir os testes de aceitação do SW

� Os papéis do time de desenvolvimento englobam:

� desenvolvedores� testadores (ajudam o cliente com os testes de aceitação)� analistas/projetistas (ajudam o cliente a definir requisitos)� gerente (garante os recursos necessários)� coach (orienta a equipe, controlando a aplicação do XP)� tracker (coleta as métricas do projeto)

Page 51: Oficina Métodos Ágeis UDESC

Equipe (Whole Team)

Page 52: Oficina Métodos Ágeis UDESC

Jogo de Planejamento (Planning Game)

� Principais definições

� Definição das User Stories (atividade + tarefas)� Estimativas de User Stories� Prioridades (tarefas + importantes)

� Próximos passos

� Planejamento de release (cliente propõe as funcionalidades e� Planejamento de release (cliente propõe as funcionalidades edesenvolvedores avaliam)� Planejamento da iteração (define as funcionalidades da iteração e osdesenvolvedores estimam)

� Ótimo feedback para o cliente, que dirige o projeto

� Idéia clara do avanço do projeto� Clareza: Redução de Riscos, aumentando a chance de sucesso

Page 53: Oficina Métodos Ágeis UDESC

Produto, Release, Planejamento

Release 1 Release 2 Release 3

Planejamento

Iteração 1 Iteração 2 Iteração 3-5

Tarefa A

Tarefa B

Tarefa C

Page 54: Oficina Métodos Ágeis UDESC

Releases, Iterações, Velocidade

� Um release é formado de múltiplas iterações

� Cada iteração pode ser planejada com o mesma caixa de tempo

� Stories são colocadas dentro de cada caixa, até estar completa

�� O tamanho da caixa é a velocidade planejada

3 4

5

2 6

3 4

5

2 6

2 7

4

4 5

Page 55: Oficina Métodos Ágeis UDESC

Testes de Aceitação (Acceptance Tests)

� São elaborados pelo cliente em conjunto com analistas e testadores

� São automatizados� Quando rodarem com sucesso, funcionalidade foi implementada� Devem ser rodados a cada iteração� Roteiro com um conjunto de respostas esperadas

� Ótimo feedback para o cliente

� Pode se saber, a qualquer momento, o % de implementação do SW equanto falta

Page 56: Oficina Métodos Ágeis UDESC

Pequenos Lançamentos (Small Releases)

� Disponibiliza a cada iteração SW 100% funcional� Versão disponibilizada imediatamente� Redução de riscos (se o projeto terminar, parte existe e funciona)� Detecção prévia de problemas� Comunicação entre cliente e desenvolvedor

� Cada lançamento possui funcionalidades prioritárias para a iteração� Cada lançamento possui funcionalidades prioritárias para a iteração

� Lançamento pode ser destinado a� usuário/cliente (testa, avalia e oferece feedback)� usuário/final (sempre que possível)

� Design simples e integração contínua são práticas essenciais

Page 57: Oficina Métodos Ágeis UDESC

Projeto Simples (Simple Design)

� Projeto está presente em todas as etapas XP� Projeto começa simples e se mantém assim através de testes erefinamento de código (refactoring)

� Não é permitido implementar qualquer funcionalidade adicional quenão será usada na iteração atual

� Em XP, é levado ao extremo

� Implementação ideal é aquela que

não será usada na iteração atual

� Prever o futuro é impossível e é “anti-XP”

� Passa por todos os testes� Expressa todas as idéias definidas no planejamento� Não contém código duplicado ou que “cheire”

Page 58: Oficina Métodos Ágeis UDESC

Programação em Pares (Pair Programming)

� SW é desenvolvido em pares� “2 cabeças juntas são melhores que duas cabeças separadas”� 1 piloto e 1 co-piloto� Papéis são alternados freqüentemente

� Melhor qualidade de código (refactoring, testes)� Revisão constante do código

� Benefícios

� “Um” pelo preço de “Dois”??

� Revisão constante do código� Nivelamento da equipe� Maior comunicação

� Pesquisas demonstram que duplas produzem código de melhorqualidade em aproximadamente o mesmo tempo que programadoresque trabalham sozinhos

Page 59: Oficina Métodos Ágeis UDESC

Desenvolvimento Dirigido por Testes (Test-Driven

Development)

� XP valoriza o desenvolvimento dirigido por testes

� Testes “puxam” o desenvolvimento

� São automatizados, executados o tempo todo

� Testes dão coragem para mudar

� Cada unidade de código só tem valor se o teste funcionar 100%

� De que adianta a OO isolar a interface da implementação se odesenvolvedor tem medo de mudar a implementação?

Page 60: Oficina Métodos Ágeis UDESC

Desenvolvimento Dirigido por Testes (Test-Driven

Development)

Obtertarefa Criar Código de

Teste para a tarefa

TDD

Codificar Fazer RefactoringTeste para a tarefa Refactoring

Passou nos testes?

Sim: Nova tarefa Não: Revisar código

Page 61: Oficina Métodos Ágeis UDESC

Refatoração (Refactoring)

� Design é melhorado continuamente através de refinamento� Mudança proposital no código que está funcionando� Melhorar sua estrutura interna sem alterar a funcionalidade� Visa simplificar o código, remover o código duplicado

� Principal referência é o catálogo de refactorings de Martin Fowler

� Existência prévia de testes é fundamental para utilização destaprática (elimina o medo dos desenvolvedores de adotar a mudança)

� Principal referência é o catálogo de refactorings de Martin Fowler

� “Software é como a nossa casa”� Organizados X desorganizados

� XP enfatiza código de alta qualidade

Page 62: Oficina Métodos Ágeis UDESC

Integração Contínua (Continuous Integration)

� XP mantém o SW integrado o tempo todo� Realizada pelo menos uma vez por dia� Para integrar, deve-se realizar os testes primeiro

� “Reduz o tempo passado no inferno da integração” - Martin Fowler

� Benefícios� Expõe o estado atual de desenvolvimento� Oferece feedback� Estimula agilidade e versões freqüentes do SW

Page 63: Oficina Métodos Ágeis UDESC

Posse Coletiva (Collective Ownership)

� O código tem um único dono: a equipe� Qualquer par de programadores pode melhorar o código� Revisão constante do código� Aumenta a comunicação� Aumenta a qualidade (menos duplicação, maior coesão) e diminui osriscos de dependência de indivíduos

� Todos compartilham a responsabilidade pelas alterações

� “Todos conhecem tudo”� Testes e integração contínua são essenciais e dão segurança

� Ideal que se troque os pares periodicamente

Page 64: Oficina Métodos Ágeis UDESC

Padrões de Codificação (Coding Standards)

� Os padrões de codificação são definidos pela equipe� Organização de código� Nomenclaturas

� Código com aspecto de escrito por um único desenvolvedor

� Competência� Organização

� Posse coletiva� Comunicação� Programação em Pares� Refactoring� Projeto Simples

� Práticas e valores favorecidos

� Organização

Page 65: Oficina Métodos Ágeis UDESC

Metáfora (Metaphor)

� Equipes XP mantém uma visão compartilhada do sistema�Analogia com outros sistemas (natural, computacional, abstrato)�Exercício de criatividade e abstração

�� Ótima fonte de comunicação entre a equipe, facilitando inclusive asestimativas

� Pattern de alto nível

Page 66: Oficina Métodos Ágeis UDESC

Ritmo Saudável (Sustainable Pace)

� XP está na arena para ganhar

� Semanas de 80 horas

� Projetos vampiros não são projetos XP

� Semanas de 80 horas� Código ruim, relaxamento da disciplina, stress da equipe� Tempo ganho será perdido depois

� São aceitáveis eventuais horas extras quando a produtividade émaximizada

Page 67: Oficina Métodos Ágeis UDESC

Reuniões em Pé (StandUp Mettings)

� A maioria dos desenvolvedores odeiam reuniões

� As reuniões são valiosas quando

� Assuntos demorados e desgastantes� Impedem os desenvolvedores de codificar

� Não perdem o foco� São breves

� As reuniões são valiosas quando

� São abordadas tarefas realizadas e a realizar

Page 68: Oficina Métodos Ágeis UDESC

Spikes de Planejamento (Spike Solution)

� São investigações de tecnologias que podem ser utilizadas noprojeto

� Auxiliam nas estimativas e na especificação do projeto� Podem durar horas ou dias, porém devem ser curtos

� Avaliações de arquiteturas� Algoritmos� componentes e frameworks� BDs� Servidores de aplicação, Web� Utilização de artefatos e ferramentas

� Englobam

Page 69: Oficina Métodos Ágeis UDESC

Ambiente de Trabalho

� O ambiente deve apoiar a aplicação das práticas

� Equipamentos

� Tem importância vital para um projeto de software� Trabalhar próximo dos colegas� Facilitar a comunicação

� Mesas e cadeiras� Equipamentos tecnológicos� Telefones� Mural� Quadro Branco� Calendário� Comida ☺

� Isolamento (equipes e projetos)

� Equipamentos

Page 70: Oficina Métodos Ágeis UDESC

Documentação Ágil

� Complexidade do Software� Tempo de desenvolvimento� Equipes� Futuras manutenções

� Até que ponto documentar?

� Uso incorreto da documentação

� User stories, testes de aceitação, testes de unidade, documentação decódigo fonte, Modelo de Classes, Modelo de Dados, Processos deNegócio, Manual de usuário, Acompanhamento diário,Acompanhamento do Projeto

� Documentos que compõem a documentação

� Uso incorreto da documentação� Quando documentar?

Page 71: Oficina Métodos Ágeis UDESC

Ferramentas de Apoio

Mais em http://xprogramming.com/software.htm

Page 72: Oficina Métodos Ágeis UDESC

Teste de Unidade

Page 73: Oficina Métodos Ágeis UDESC

Teste de Unidade

Page 74: Oficina Métodos Ágeis UDESC

Teste de Unidade

Page 75: Oficina Métodos Ágeis UDESC

Patterns, Boas Práticas, Refactoring

Page 76: Oficina Métodos Ágeis UDESC

Patterns, Boas Práticas, Refactoring

Page 77: Oficina Métodos Ágeis UDESC

Code Coverage

Page 78: Oficina Métodos Ágeis UDESC

Code Coverage

Page 79: Oficina Métodos Ágeis UDESC

Code Coverage

Page 80: Oficina Métodos Ágeis UDESC

Integração Contínua

Page 81: Oficina Métodos Ágeis UDESC

Integração Contínua

Page 82: Oficina Métodos Ágeis UDESC

Padrões de Codificação

Page 83: Oficina Métodos Ágeis UDESC

Padrões de Codificação

Page 84: Oficina Métodos Ágeis UDESC

Mercado� HP� Ford� Symantec� Motorola� Chrysler� BMW� Borland� IBM� First National Bank� Thought Works

� Objective Solutions� ImproveIt� Brasil Telecom� Embrapa� Qualiti� Trevisan Tecnologia� Argonavis� CETIP�� Thought Works

� CC Pace Systems� Industrial Logic� Moore� Workshare� Xerox� Siemens� Object Mentor� Microsoft� Google� Nokia� Yahoo

� CETIP� Secretaria da Fazenda SP� Smart Tech Consulting� iQualy� IME-USP� EverSystems� PowerLogic Consultoria� UFRJ� PUC-Rio� Surya Tecnologia

Page 85: Oficina Métodos Ágeis UDESC

Principais Eventos

Page 86: Oficina Métodos Ágeis UDESC

Adotando e Escalando Metodologias Ágeis

� Adote as práticas em doses homeopáticas� Não seja afobado, saboreie a mudança� Enfatize o problema mais importante

� Dificuldades culturais� Deixar alguém mexer no seu código�� Deixar alguém mexer no seu código� Aceitar/Pedir ajuda� Ânsia de tentar prever o futuro� Escrever testes antes de codificar� Refatorar com freqüência (superar o medo)

� Situações difíceis de aplicar práticas ágeis� Equipes grandes e distribuídas geograficamente� Perda do controle sobre código� Feedback demorado

Page 87: Oficina Métodos Ágeis UDESC

� Metodologias ágeis valorizam as pessoas� Bons desenvolvedores criam bons SWs

� Processos ágeis são suplementos aos outros métodos� São atitudes� São efetivos

Adotando e Escalando Metodologias Ágeis

� São efetivos� Não é um ataque à documentação e sim a criação dedocumentos que tem valor� Não são para todos

� O segredo está na sinergia de suas práticas� Menos formalidade, mais diversão

Page 88: Oficina Métodos Ágeis UDESC

Combinando Lean + SCRUM + XP

Page 89: Oficina Métodos Ágeis UDESC

Combinando Lean + SCRUM + XP

Page 90: Oficina Métodos Ágeis UDESC

Exercício de Superação do medo

Dois voluntários, por favor...Dois voluntários, por favor...

Page 91: Oficina Métodos Ágeis UDESC

Apoio