SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Praticas Ageis
                            Agile dentro de você!

                   Felipe Rodrigues de Almeida


blog.fratech.net                                1
Who we are?

                               Felipe Rodrigues de Almeida
Arquiteto de Sistemas responsável por implantação de processos
arquiteturais em clientes da Fratech.




          blog.fratech.net                                   2
fratech
PRáticas ágeis

                                                              Por quê?
Neste material, Manoel e eu buscamos passar aos participantes alguns
princípios por trás das práticas. Muitos desses benefícios já foram vistos
ou discutidos por alguns de vocês sob outros títulos, eu sei, não é
novidade.


Mas então porque falar sobre essas técnicas? Porque preferimos
apresentar a verdadeira lógica por trás das técnicas. Mostraremos aqui
quais os conceitos que motivam as práticas mais comuns do mundo
ágil. E finalmente porque ninguém o fez ainda. (Não no brasil e em
português).



          blog.fratech.net                                               3
fratech
para pensar!




Não importa o quão longe você foi pela estrada errada,
                             volte. (Provérbio Turco)




          blog.fratech.net                                  4
fratech
QUal a sua agilidade?




                                        Tartaruga
          Lebre



          blog.fratech.net                          5
fratech
Mas...




          blog.fratech.net        6
fratech
O que é Agile? (Visão Geral)
Habilidade de criar e responder à mudanças com eficiência e eficácia
dentro de ambientes de negócios turbulentos.
Habilidade de balancear flexibilidade e estabilidade. (Jim Highsmith,
2002)




          blog.fratech.net                                          7
fratech
alimentando a agilidade
Um projeto ágil requer continuamente práticas que não fazem parte do
desenvolvimento por si só, mas que são extremamente importantes para
a saúde do time.


Agile requer manutenção. Mas como nos manter atualizados o tempo
todo?


Mesmo se você está no caminho certo, você não chegará a lugar
              algum se ficar sentado. (Will Rogers)




          blog.fratech.net                                         8
fratech
alimentando a agilidade

                                              Mantendo-se atualizado
Algumas dicas sobre manter-se atualizado:

x Aprenda iterativamente e incrementalmente
x Conheça a ultima buzz
x Participe de grupos de usuários
x Participe de workshops e palestras
x Leia de forma voráz




          Não há nada permanente exceto a mudança. (Heraclitus)

          blog.fratech.net                                         9
fratech
alimentando a agilidade

                                                                     Cuidado
Algumas dicas sobre manter-se atualizado:

x Muitas idéias nunca tornam-se tecnologia úteis
x Você não pode ser expert em tudo
x Entenda porque uma nova tecnologia é necessária
x Fuja do impulso de converter sua aplicação para a última tecnologia, framework
  ou linguagem, apenas para aprender




          blog.fratech.net                                                    10
fratech
alimentando a agilidade

                                                         Outras dicas úteis
x Saiba quando “desaprender”
Velhos hábitos podem atrapalhar o desempenho e o aprendizado


x Pergunte até você entender
Não aceite as explicações somente porque alguém muito bom falou. Questione.
“Porque?” é uma ótima pergunta.


x Invista no seu time
Compartilhe suas experiências e conhecimentos com sua equipe. Isso ajuda a nivelar
o ambiente criando um padrão. Aceite que os outros compartilhem também. Absorva
tudo que for interessante.


          blog.fratech.net                                                      11
fratech
Adaptação às mudanças




          blog.fratech.net                       12
fratech
postura em um ambiente ágil

                                                Liberdade é ágil
Normalmente, empresas que investem em agile oferecem liberdade para
seus empregados. Não deixe que isso atrapalhe sua produção.

x Disciplina
x Honestidade
x Transparência
x Humildade
x Dedicação
x Bom Senso


O que seu chefe espera de você?
          blog.fratech.net                                       13
fratech
confiança

                                        Confiança traz agilidade
As práticas ágeis exigem um alto grau de confiança no time. É preciso
confiar para que o processo seja agradável e não burocrático.


Além de confiar nos outros garanta que você também é confiável. Essa
garantia é facilitada por uma postura aderente à agilidade.




          blog.fratech.net                                         14
fratech
Gerenciado ROI com Business Value

Business Value será uma moeda de troca durante o projeto e o cliente
empresta um determinado valor dessa moeda para a equipe e esta por
sua vez, terá que devolver o valor correspondente em forma de software,
ou seja, é uma dívida que a equipe assume com o cliente e que deverá
ser amortizada a cada ciclo (Sprint), até que a mesma seja totalmente
liquidada (zerada).




          blog.fratech.net                                           15
fratech
o que é uma user story
Descreve uma funcionalidade que deve fornecer valor para o cliente;



                                  Independent
                                  Negotiable
                                  Valuable to users or costumers
            INVEST                estimatable
                                  Small
                                  testable




          blog.fratech.net                                            16
fratech
user story e épicos


                                    User Story   User Story




              Épico                 User Story   User Story



                                    User Story   User Story




- INVeSt                                         + INVeSt
          blog.fratech.net                                    17
fratech
user story e temas

                                    Tema
                             User Story   User Story



                             User Story   User Story



                             User Story   User Story




          blog.fratech.net                             18
fratech
o que o cliente vê?

                             Analise o projeto pelos olhos do cliente
Como desenvolvedores não somos acostumados a pensar em questões
de negócio. Mude isso em você. Tudo que o cliente precisa é de pessoas
que pensem em suas necessidades. Veja o que o cliente vê.
O que seu cliente espera de você?




          blog.fratech.net                                          19
fratech
Safistação do Cliente




          blog.fratech.net                       20
fratech
Interação com o Cliente




          blog.fratech.net                         21
fratech
Repensando a qualidade do Software

                             O que é projeto de software com
                             qualidade?
                             Software entregue no prazo?
                             Software entregue no custo?
                             Software entregue de acordo com
                             o escopo?
                             Software entregue sem defeitos?



                                    Um novo conceito:
                                     Software = rOI



          blog.fratech.net                                     22
fratech
evitando a multi-tarefa




Fonte: Vinícius Manhães Teles - www.improveit.com.br


          blog.fratech.net                             23
fratech
trabalhando para entregar

                                          O cliente só quer output
O único objetivo de um projeto de software é produzir software. Dessa
forma a produção de software não pode ser deixada de lado para satisfazer
desejos pessoais ou profissionais dos envolvidos.


Todos devem trabalhar para entregar software mais rápido e com mais
qualidade.




          blog.fratech.net                                             24
fratech
arquitetos Ágeis




          blog.fratech.net                  25
fratech
arquitetos devem escrever




          blog.fratech.net                     26
fratech
arquitetura ágil

                                            O Papel do Arquiteto
Num time ágil podemos ter a impressão de não precisar de arquitetos,
afinal o design é evolutivo e cada um é co-responsável pelo design.
A verdade é que é necessário ter um arquiteto e que pode ser resumido
na seguinte declaração de Martin Fowller:


“...o mais experiente e completo membro do time, que ensina outros
membros e sempre está lá para as coisas mais complicadas.”




          blog.fratech.net                                         27
fratech
arquitetura ágil

                                                           O Papel do Arquiteto
Dessa forma podemos concluir algumas das tarefas de um arquiteto em
um time ágil.

x   Entender os requisitos (User Stories, Itens de Backlog, etc...)
x   Formular o Design Geral do sistema
x   Disseminar os conceitos da arquitetura
x   Oferecer suporte aos desenvolvedores
x   Verificar a implementação

Mais informação em http://www.agilearchitect.org/agile/role.htm



          blog.fratech.net                                                    28
fratech
arquitetura ágil




          blog.fratech.net                  29
fratech
Simplicidade




                               evite o complexo de
                                   “cérebro”


          blog.fratech.net                       30
fratech
Simplicidade

                                                       Conceito KISS




                             Keep It Simple, Stupid!


          blog.fratech.net                                         31
fratech
como aumentar a simplicidade
Kent Beck, na segunda edição do Livro Extreme Programming Explained abordou algumas
sugestões interessantes para garantir do desenvolvimento de um sofware simples.

apropriado para o público alvo

Não importa o brilhantismo ou “elegância” de um software, se as pessoas que irão trabalhar com
ele (usuários ou desenvolvedores) não o compreendem, então ele não é simples para elas.

comunicativo
Os elementos de um software deverá favorecer a boa comunicação com os futuros leitores.

fatorado

Duplicação de lógica ou estrutura, dificultam o etendimento e a modificação do código.

Mínimo

Devido às 3 características acima, o sofware deverá ter um menor número possível de elementos,
pois assim, teremos menos “coisas” a serem testadas, documentadas e comunicadas.



          blog.fratech.net                                                                  32
fratech
outro exemplo de simplicidade




          blog.fratech.net            33
fratech
faça seu código auto-explicativo




          blog.fratech.net       34
fratech
Escrevendo Código Coeso
                                     Guarda Roupa, Piano, Cama
Fuja da patente do Guarda Roupa, Piano, Cama, mas lembre-se uma caixa
de fibra de algodão não ajuda muito quando você precisa de uma meia.




          blog.fratech.net                                         35
fratech
Design Evolutivo




                              Evolução do aprendizado
                              em forma de baby step’s
          blog.fratech.net                              36
fratech
Evolução iterativa de um produto
                                                                Iteração 1
    PreGame (Concepção e Planejamento)




                                                 Aprendizagem      Incremento do Produto
  Necessidade                     Visão



                     Iteração 2                                 Iteração 3




 Aprendizagem            Incremento do Produto   Aprendizagem     Incremento do Produto


          blog.fratech.net                                                                 37
fratech
TDD - Test Driven Development




          blog.fratech.net             38
fratech
TDD - Test Driven Development
E x emplo de P roduc t B ac k L og c om C as o de T es te

     Área            Atividade                              Item                          B us ines s V alue          C as o de T es te



                                                                                                               - Ao informar o ano letivo,
                  G erenciamento
S ec. Acadêmica                    C ontrolar os curs os dis poníveis pela ins tituição         100            mos trar os curs os
                     de curs os
                                                                                                               dis poníveis ;




                                                                                                               - Ao informar o ano letivo,
                                                                                                               mos trar as vagas
                                                                                                               dis poníveis por curs o;
                  G erenciamento
S ec. Acadêmica                         Definir as vagas dis poníveis por curs os                90
                     de curs os
                                                                                                               - Ao informar um curs o,
                                                                                                               informar quais vagas es tão
                                                                                                               dis poníveis no ano atual.




            blog.fratech.net                                                                                                                 39
fratech
REFACTORING



                                                Martin Fowler

Aplicação: Quando apropriada, pois sua necessidade diminui quando o
design e o código estão padronizados e simples.


Benefícios: Códigos mais simples, legíveis e com melhor qualidade.


Exemplos: Extração de variáveis locais, Alteração de nomes, Extração de
métodos, Extração de classes e interfaces.

          blog.fratech.net                                           40
fratech
Conversas Cara a Cara




   Crie condições para FeedBack


                                                               Quebre as barreiras




                                   Diminua os intermediários
          blog.fratech.net                                                           41
fratech
Pensando em Negócio




                                                    Ter um entedimento o suficientemente alinhado ao
      Ter toda equipe, alinhada aos objetivos da
                                                                  negócio da empresa
          empresa (cliente e/ou fornecedor).




          blog.fratech.net                                                                             42
fratech
Code review




          blog.fratech.net             43
fratech
Code review

                                            Code Review Checklist
Não há uma regra definitiva para o que devemos procurar num code
review, porém há algumas sugestões:


x Você pode ler e entender o código?
x Há algum erro óbvio?
x Há algum efeito colateral que atinja outras partes da aplicação?
x Há alguma duplicidade no código (dentro do código mesmo ou com
  outras partes do sistema)?
x Há alguma melhora ou refactoring que possa melhorar o código?



          blog.fratech.net                                           44
fratech
Pair Programming


                             Escolha dos pares




            Reunião em pé                        Programação em par




          blog.fratech.net                                            45
fratech
Mantenha o time informado




          blog.fratech.net                     46
fratech
construtivismo

                                        Critique idéias, não pessoas
O sucesso de um projeto ágil é altamente acoplado à harmonia entre os
integrantes do time. Processos ágeis são muito focados em reuniões e
interações face-a-face. Dessa forma, é de extrema importância não criticar
as pessoas e sim as idéias propostas, quando aplicável.


Há 3 maneiras de se criticar uma idéia:


1. Você é estúpido? Não vai dar certo. Isso é obvio.
2. Essa idéia é estúpida! Não vai dar certo. Isso é obvio.
3. Ei, como você pretende resolver esse problema aqui com essa idéia?


          blog.fratech.net                                              47
fratech
Be a Mentor




          blog.fratech.net             48
fratech
That’s all folks!
                              Obrigado!




                             www.fratech.net
                             blog.fratech.net
          blog.fratech.net                          49
fratech

Mais conteúdo relacionado

Mais procurados

Scrum - Primeiros Passos - Curso de Férias Fatec Praia Grande
Scrum - Primeiros Passos - Curso de Férias Fatec Praia GrandeScrum - Primeiros Passos - Curso de Férias Fatec Praia Grande
Scrum - Primeiros Passos - Curso de Férias Fatec Praia GrandeGabriel Rubens
 
Workshop Scrum Product Owner, Delírios de PO em Dia de Verão v6
Workshop Scrum Product Owner, Delírios de PO em Dia de Verão v6Workshop Scrum Product Owner, Delírios de PO em Dia de Verão v6
Workshop Scrum Product Owner, Delírios de PO em Dia de Verão v6Rildo (@rildosan) Santos
 
Gestao agil de projetos com Scrum
Gestao agil de projetos com ScrumGestao agil de projetos com Scrum
Gestao agil de projetos com ScrumIgor Macaubas
 
Revolucao Agile - UFSCar
Revolucao Agile - UFSCarRevolucao Agile - UFSCar
Revolucao Agile - UFSCarLuiz Ribeiro
 
Gestão Ágil e Lean - Circuito de treinamentos AddTech
Gestão Ágil e Lean - Circuito de treinamentos AddTechGestão Ágil e Lean - Circuito de treinamentos AddTech
Gestão Ágil e Lean - Circuito de treinamentos AddTech.add
 
Métodos Ágeis - Manifesto Ágil, Scrum e XP
Métodos Ágeis - Manifesto Ágil, Scrum e XPMétodos Ágeis - Manifesto Ágil, Scrum e XP
Métodos Ágeis - Manifesto Ágil, Scrum e XPJoaquim Lopes Júnior
 
Sua equipe está preparada para atender um cliente ágil?
Sua equipe está preparada para atender um cliente ágil?Sua equipe está preparada para atender um cliente ágil?
Sua equipe está preparada para atender um cliente ágil?Luiz C. Parzianello
 
LKBR 2018 - WORKSHOP - CFC e LULA - Lean Kanban Brazil
LKBR 2018  - WORKSHOP - CFC e LULA - Lean Kanban BrazilLKBR 2018  - WORKSHOP - CFC e LULA - Lean Kanban Brazil
LKBR 2018 - WORKSHOP - CFC e LULA - Lean Kanban BrazilLuiz Rodrigues
 
Kanban: Aplicando TDD à melhoria contínua do seu processo
Kanban: Aplicando TDD à melhoria contínua do seu processoKanban: Aplicando TDD à melhoria contínua do seu processo
Kanban: Aplicando TDD à melhoria contínua do seu processoRodrigo Yoshima
 

Mais procurados (20)

Scrum - Primeiros Passos - Curso de Férias Fatec Praia Grande
Scrum - Primeiros Passos - Curso de Férias Fatec Praia GrandeScrum - Primeiros Passos - Curso de Férias Fatec Praia Grande
Scrum - Primeiros Passos - Curso de Férias Fatec Praia Grande
 
Teste Ágeis para todo o time
Teste Ágeis para todo o timeTeste Ágeis para todo o time
Teste Ágeis para todo o time
 
Scrum 8
Scrum 8Scrum 8
Scrum 8
 
Workshop Scrum Product Owner, Delírios de PO em Dia de Verão v6
Workshop Scrum Product Owner, Delírios de PO em Dia de Verão v6Workshop Scrum Product Owner, Delírios de PO em Dia de Verão v6
Workshop Scrum Product Owner, Delírios de PO em Dia de Verão v6
 
MBA em projetos - Gestao Ágil
MBA em projetos - Gestao ÁgilMBA em projetos - Gestao Ágil
MBA em projetos - Gestao Ágil
 
Gestao agil de projetos com Scrum
Gestao agil de projetos com ScrumGestao agil de projetos com Scrum
Gestao agil de projetos com Scrum
 
Revolucao Agile - UFSCar
Revolucao Agile - UFSCarRevolucao Agile - UFSCar
Revolucao Agile - UFSCar
 
Papeis Ágeis - uma proposta operacional Scrum
Papeis Ágeis - uma proposta operacional ScrumPapeis Ágeis - uma proposta operacional Scrum
Papeis Ágeis - uma proposta operacional Scrum
 
Metricas (e previsões) acionáveis de projeto
Metricas (e previsões) acionáveis de projetoMetricas (e previsões) acionáveis de projeto
Metricas (e previsões) acionáveis de projeto
 
Mini-curso Scrum e Kanban WES 2015
Mini-curso Scrum e Kanban WES 2015Mini-curso Scrum e Kanban WES 2015
Mini-curso Scrum e Kanban WES 2015
 
Gestão Ágil e Lean - Circuito de treinamentos AddTech
Gestão Ágil e Lean - Circuito de treinamentos AddTechGestão Ágil e Lean - Circuito de treinamentos AddTech
Gestão Ágil e Lean - Circuito de treinamentos AddTech
 
Métodos Ágeis - Manifesto Ágil, Scrum e XP
Métodos Ágeis - Manifesto Ágil, Scrum e XPMétodos Ágeis - Manifesto Ágil, Scrum e XP
Métodos Ágeis - Manifesto Ágil, Scrum e XP
 
Teste de software gestao e kaizen
Teste de software gestao e kaizenTeste de software gestao e kaizen
Teste de software gestao e kaizen
 
Scrum Experience [O Tutorial Scrum]
Scrum Experience [O Tutorial Scrum]Scrum Experience [O Tutorial Scrum]
Scrum Experience [O Tutorial Scrum]
 
Workshop User Stories
Workshop User StoriesWorkshop User Stories
Workshop User Stories
 
Sua equipe está preparada para atender um cliente ágil?
Sua equipe está preparada para atender um cliente ágil?Sua equipe está preparada para atender um cliente ágil?
Sua equipe está preparada para atender um cliente ágil?
 
Cultura Lean Agile Weekend
Cultura Lean Agile WeekendCultura Lean Agile Weekend
Cultura Lean Agile Weekend
 
Métodos ágeis
Métodos ágeisMétodos ágeis
Métodos ágeis
 
LKBR 2018 - WORKSHOP - CFC e LULA - Lean Kanban Brazil
LKBR 2018  - WORKSHOP - CFC e LULA - Lean Kanban BrazilLKBR 2018  - WORKSHOP - CFC e LULA - Lean Kanban Brazil
LKBR 2018 - WORKSHOP - CFC e LULA - Lean Kanban Brazil
 
Kanban: Aplicando TDD à melhoria contínua do seu processo
Kanban: Aplicando TDD à melhoria contínua do seu processoKanban: Aplicando TDD à melhoria contínua do seu processo
Kanban: Aplicando TDD à melhoria contínua do seu processo
 

Destaque

TAE - Teoria da Alavancagem Estrelar (Manoel Pimentel)
TAE - Teoria da Alavancagem Estrelar (Manoel Pimentel)TAE - Teoria da Alavancagem Estrelar (Manoel Pimentel)
TAE - Teoria da Alavancagem Estrelar (Manoel Pimentel)Manoel Pimentel Medeiros
 
Javascript e Orientação a Objetos - Palestra UNIFACS
Javascript e Orientação a Objetos - Palestra UNIFACSJavascript e Orientação a Objetos - Palestra UNIFACS
Javascript e Orientação a Objetos - Palestra UNIFACSMichel Felipe
 
Apresentação palestra games na sala e aula
Apresentação palestra games na sala e aulaApresentação palestra games na sala e aula
Apresentação palestra games na sala e aulaCristiano N. Tonéis
 
Orientação a Objetos - Princípios SOLID
Orientação a Objetos - Princípios SOLIDOrientação a Objetos - Princípios SOLID
Orientação a Objetos - Princípios SOLIDVinicius Quaiato
 

Destaque (7)

TAE - Teoria da Alavancagem Estrelar (Manoel Pimentel)
TAE - Teoria da Alavancagem Estrelar (Manoel Pimentel)TAE - Teoria da Alavancagem Estrelar (Manoel Pimentel)
TAE - Teoria da Alavancagem Estrelar (Manoel Pimentel)
 
Agile - User Stories
Agile - User StoriesAgile - User Stories
Agile - User Stories
 
Javascript e Orientação a Objetos - Palestra UNIFACS
Javascript e Orientação a Objetos - Palestra UNIFACSJavascript e Orientação a Objetos - Palestra UNIFACS
Javascript e Orientação a Objetos - Palestra UNIFACS
 
User stories
User storiesUser stories
User stories
 
Apresentação palestra games na sala e aula
Apresentação palestra games na sala e aulaApresentação palestra games na sala e aula
Apresentação palestra games na sala e aula
 
Orientação a Objetos - Princípios SOLID
Orientação a Objetos - Princípios SOLIDOrientação a Objetos - Princípios SOLID
Orientação a Objetos - Princípios SOLID
 
Modelagem Ágil
Modelagem ÁgilModelagem Ágil
Modelagem Ágil
 

Semelhante a Práticas Ágeis

"Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
 "Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de... "Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
"Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...Julio Cesar Nunes de Souza
 
Formando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosFormando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosDiego Santos
 
Design Thinking e Desenvolvimento Ágil: Desenvolvimento centrado em pessoas
Design Thinking e Desenvolvimento Ágil: Desenvolvimento centrado em pessoasDesign Thinking e Desenvolvimento Ágil: Desenvolvimento centrado em pessoas
Design Thinking e Desenvolvimento Ágil: Desenvolvimento centrado em pessoasBruno Eugênio
 
Uma abordagem às Metodologias Ágeis em Gerência de Projetos
Uma abordagem às Metodologias Ágeis em Gerência de ProjetosUma abordagem às Metodologias Ágeis em Gerência de Projetos
Uma abordagem às Metodologias Ágeis em Gerência de ProjetosGiovani Elísio Silva
 
Webinar Usabilidade no E-commerce
Webinar Usabilidade no E-commerceWebinar Usabilidade no E-commerce
Webinar Usabilidade no E-commerceHorácio Soares
 
Trii - Plataforma SuaRede Redes Sociais Corporativas
Trii - Plataforma SuaRede Redes Sociais CorporativasTrii - Plataforma SuaRede Redes Sociais Corporativas
Trii - Plataforma SuaRede Redes Sociais CorporativasTrii
 
Criação de Sites na era da Web 2.0
Criação de Sites na era da Web 2.0Criação de Sites na era da Web 2.0
Criação de Sites na era da Web 2.0Diego Brito
 
A Experiência como Vantagem Competitiva (UX) - Goiânia 2014
A Experiência como Vantagem Competitiva (UX) - Goiânia 2014A Experiência como Vantagem Competitiva (UX) - Goiânia 2014
A Experiência como Vantagem Competitiva (UX) - Goiânia 2014Horácio Soares
 
A proteção jurídica do programa de computador: ótica da empresa
A proteção jurídica do programa de computador: ótica da empresaA proteção jurídica do programa de computador: ótica da empresa
A proteção jurídica do programa de computador: ótica da empresaCEST
 
Web 2.0 E Comunicação
Web 2.0 E ComunicaçãoWeb 2.0 E Comunicação
Web 2.0 E ComunicaçãoGilberto Leal
 
Gestão de Produtos de Software - muito além do product ownership e das startups
Gestão de Produtos de Software - muito além do product ownership e das startupsGestão de Produtos de Software - muito além do product ownership e das startups
Gestão de Produtos de Software - muito além do product ownership e das startupsJoaquim Torres
 
Engenharia De Software e O Software Livre
Engenharia De Software e O Software LivreEngenharia De Software e O Software Livre
Engenharia De Software e O Software LivreFabio Sperotto
 
GitLab Pajamas Design System (2022-01-20 @ “Design systems tratados por tu” p...
GitLab Pajamas Design System (2022-01-20 @ “Design systems tratados por tu” p...GitLab Pajamas Design System (2022-01-20 @ “Design systems tratados por tu” p...
GitLab Pajamas Design System (2022-01-20 @ “Design systems tratados por tu” p...Pedro Moreira da Silva
 
Levantamento Ágil de Requisitos
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de RequisitosPaulo Furtado
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoRodrigo Reis
 
Web - O que um geek antenado deve conhecer
Web - O que um geek antenado deve conhecerWeb - O que um geek antenado deve conhecer
Web - O que um geek antenado deve conhecerAislan Rafael
 
Gestão de Produtos de Software: muito além do product ownership e das startups
Gestão de Produtos de Software: muito além do product ownership e das startupsGestão de Produtos de Software: muito além do product ownership e das startups
Gestão de Produtos de Software: muito além do product ownership e das startupsJoaquim Torres
 

Semelhante a Práticas Ágeis (20)

Refactoring
RefactoringRefactoring
Refactoring
 
"Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
 "Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de... "Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
"Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
 
Formando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosFormando Desenvolvedores Efetivos
Formando Desenvolvedores Efetivos
 
Design Thinking e Desenvolvimento Ágil: Desenvolvimento centrado em pessoas
Design Thinking e Desenvolvimento Ágil: Desenvolvimento centrado em pessoasDesign Thinking e Desenvolvimento Ágil: Desenvolvimento centrado em pessoas
Design Thinking e Desenvolvimento Ágil: Desenvolvimento centrado em pessoas
 
Uma abordagem às Metodologias Ágeis em Gerência de Projetos
Uma abordagem às Metodologias Ágeis em Gerência de ProjetosUma abordagem às Metodologias Ágeis em Gerência de Projetos
Uma abordagem às Metodologias Ágeis em Gerência de Projetos
 
Webinar Usabilidade no E-commerce
Webinar Usabilidade no E-commerceWebinar Usabilidade no E-commerce
Webinar Usabilidade no E-commerce
 
Trii - Plataforma SuaRede Redes Sociais Corporativas
Trii - Plataforma SuaRede Redes Sociais CorporativasTrii - Plataforma SuaRede Redes Sociais Corporativas
Trii - Plataforma SuaRede Redes Sociais Corporativas
 
Criação de Sites na era da Web 2.0
Criação de Sites na era da Web 2.0Criação de Sites na era da Web 2.0
Criação de Sites na era da Web 2.0
 
A Experiência como Vantagem Competitiva (UX) - Goiânia 2014
A Experiência como Vantagem Competitiva (UX) - Goiânia 2014A Experiência como Vantagem Competitiva (UX) - Goiânia 2014
A Experiência como Vantagem Competitiva (UX) - Goiânia 2014
 
A proteção jurídica do programa de computador: ótica da empresa
A proteção jurídica do programa de computador: ótica da empresaA proteção jurídica do programa de computador: ótica da empresa
A proteção jurídica do programa de computador: ótica da empresa
 
Web 2.0 E Comunicação
Web 2.0 E ComunicaçãoWeb 2.0 E Comunicação
Web 2.0 E Comunicação
 
Gestão de Produtos de Software - muito além do product ownership e das startups
Gestão de Produtos de Software - muito além do product ownership e das startupsGestão de Produtos de Software - muito além do product ownership e das startups
Gestão de Produtos de Software - muito além do product ownership e das startups
 
Engenharia De Software e O Software Livre
Engenharia De Software e O Software LivreEngenharia De Software e O Software Livre
Engenharia De Software e O Software Livre
 
Metodos ageis thinkingdifferent
Metodos ageis thinkingdifferentMetodos ageis thinkingdifferent
Metodos ageis thinkingdifferent
 
GitLab Pajamas Design System (2022-01-20 @ “Design systems tratados por tu” p...
GitLab Pajamas Design System (2022-01-20 @ “Design systems tratados por tu” p...GitLab Pajamas Design System (2022-01-20 @ “Design systems tratados por tu” p...
GitLab Pajamas Design System (2022-01-20 @ “Design systems tratados por tu” p...
 
Levantamento Ágil de Requisitos
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de Requisitos
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
 
Web - O que um geek antenado deve conhecer
Web - O que um geek antenado deve conhecerWeb - O que um geek antenado deve conhecer
Web - O que um geek antenado deve conhecer
 
Gestão de Produtos de Software: muito além do product ownership e das startups
Gestão de Produtos de Software: muito além do product ownership e das startupsGestão de Produtos de Software: muito além do product ownership e das startups
Gestão de Produtos de Software: muito além do product ownership e das startups
 
Organizações Virtuais
Organizações VirtuaisOrganizações Virtuais
Organizações Virtuais
 

Mais de Felipe Rodrigues (15)

TDD e BDD
TDD e BDDTDD e BDD
TDD e BDD
 
Rubyon rails
Rubyon railsRubyon rails
Rubyon rails
 
Agile lightining talk
Agile lightining talkAgile lightining talk
Agile lightining talk
 
Métodos ágeis
Métodos ágeisMétodos ágeis
Métodos ágeis
 
Liderança
LiderançaLiderança
Liderança
 
DDD lightining talk
DDD lightining talkDDD lightining talk
DDD lightining talk
 
Visibilidade em agile
Visibilidade em agileVisibilidade em agile
Visibilidade em agile
 
Grails
GrailsGrails
Grails
 
Freelancers
FreelancersFreelancers
Freelancers
 
DDD agile rio
DDD agile rioDDD agile rio
DDD agile rio
 
Agile coaching
Agile coachingAgile coaching
Agile coaching
 
Carreira ágil
Carreira ágilCarreira ágil
Carreira ágil
 
Arquitetura e agile
Arquitetura e agileArquitetura e agile
Arquitetura e agile
 
Agile
AgileAgile
Agile
 
Praticas ageis 2012
Praticas ageis 2012Praticas ageis 2012
Praticas ageis 2012
 

Práticas Ágeis

  • 1. Praticas Ageis Agile dentro de você! Felipe Rodrigues de Almeida blog.fratech.net 1
  • 2. Who we are? Felipe Rodrigues de Almeida Arquiteto de Sistemas responsável por implantação de processos arquiteturais em clientes da Fratech. blog.fratech.net 2 fratech
  • 3. PRáticas ágeis Por quê? Neste material, Manoel e eu buscamos passar aos participantes alguns princípios por trás das práticas. Muitos desses benefícios já foram vistos ou discutidos por alguns de vocês sob outros títulos, eu sei, não é novidade. Mas então porque falar sobre essas técnicas? Porque preferimos apresentar a verdadeira lógica por trás das técnicas. Mostraremos aqui quais os conceitos que motivam as práticas mais comuns do mundo ágil. E finalmente porque ninguém o fez ainda. (Não no brasil e em português). blog.fratech.net 3 fratech
  • 4. para pensar! Não importa o quão longe você foi pela estrada errada, volte. (Provérbio Turco) blog.fratech.net 4 fratech
  • 5. QUal a sua agilidade? Tartaruga Lebre blog.fratech.net 5 fratech
  • 6. Mas... blog.fratech.net 6 fratech
  • 7. O que é Agile? (Visão Geral) Habilidade de criar e responder à mudanças com eficiência e eficácia dentro de ambientes de negócios turbulentos. Habilidade de balancear flexibilidade e estabilidade. (Jim Highsmith, 2002) blog.fratech.net 7 fratech
  • 8. alimentando a agilidade Um projeto ágil requer continuamente práticas que não fazem parte do desenvolvimento por si só, mas que são extremamente importantes para a saúde do time. Agile requer manutenção. Mas como nos manter atualizados o tempo todo? Mesmo se você está no caminho certo, você não chegará a lugar algum se ficar sentado. (Will Rogers) blog.fratech.net 8 fratech
  • 9. alimentando a agilidade Mantendo-se atualizado Algumas dicas sobre manter-se atualizado: x Aprenda iterativamente e incrementalmente x Conheça a ultima buzz x Participe de grupos de usuários x Participe de workshops e palestras x Leia de forma voráz Não há nada permanente exceto a mudança. (Heraclitus) blog.fratech.net 9 fratech
  • 10. alimentando a agilidade Cuidado Algumas dicas sobre manter-se atualizado: x Muitas idéias nunca tornam-se tecnologia úteis x Você não pode ser expert em tudo x Entenda porque uma nova tecnologia é necessária x Fuja do impulso de converter sua aplicação para a última tecnologia, framework ou linguagem, apenas para aprender blog.fratech.net 10 fratech
  • 11. alimentando a agilidade Outras dicas úteis x Saiba quando “desaprender” Velhos hábitos podem atrapalhar o desempenho e o aprendizado x Pergunte até você entender Não aceite as explicações somente porque alguém muito bom falou. Questione. “Porque?” é uma ótima pergunta. x Invista no seu time Compartilhe suas experiências e conhecimentos com sua equipe. Isso ajuda a nivelar o ambiente criando um padrão. Aceite que os outros compartilhem também. Absorva tudo que for interessante. blog.fratech.net 11 fratech
  • 12. Adaptação às mudanças blog.fratech.net 12 fratech
  • 13. postura em um ambiente ágil Liberdade é ágil Normalmente, empresas que investem em agile oferecem liberdade para seus empregados. Não deixe que isso atrapalhe sua produção. x Disciplina x Honestidade x Transparência x Humildade x Dedicação x Bom Senso O que seu chefe espera de você? blog.fratech.net 13 fratech
  • 14. confiança Confiança traz agilidade As práticas ágeis exigem um alto grau de confiança no time. É preciso confiar para que o processo seja agradável e não burocrático. Além de confiar nos outros garanta que você também é confiável. Essa garantia é facilitada por uma postura aderente à agilidade. blog.fratech.net 14 fratech
  • 15. Gerenciado ROI com Business Value Business Value será uma moeda de troca durante o projeto e o cliente empresta um determinado valor dessa moeda para a equipe e esta por sua vez, terá que devolver o valor correspondente em forma de software, ou seja, é uma dívida que a equipe assume com o cliente e que deverá ser amortizada a cada ciclo (Sprint), até que a mesma seja totalmente liquidada (zerada). blog.fratech.net 15 fratech
  • 16. o que é uma user story Descreve uma funcionalidade que deve fornecer valor para o cliente; Independent Negotiable Valuable to users or costumers INVEST estimatable Small testable blog.fratech.net 16 fratech
  • 17. user story e épicos User Story User Story Épico User Story User Story User Story User Story - INVeSt + INVeSt blog.fratech.net 17 fratech
  • 18. user story e temas Tema User Story User Story User Story User Story User Story User Story blog.fratech.net 18 fratech
  • 19. o que o cliente vê? Analise o projeto pelos olhos do cliente Como desenvolvedores não somos acostumados a pensar em questões de negócio. Mude isso em você. Tudo que o cliente precisa é de pessoas que pensem em suas necessidades. Veja o que o cliente vê. O que seu cliente espera de você? blog.fratech.net 19 fratech
  • 20. Safistação do Cliente blog.fratech.net 20 fratech
  • 21. Interação com o Cliente blog.fratech.net 21 fratech
  • 22. Repensando a qualidade do Software O que é projeto de software com qualidade? Software entregue no prazo? Software entregue no custo? Software entregue de acordo com o escopo? Software entregue sem defeitos? Um novo conceito: Software = rOI blog.fratech.net 22 fratech
  • 23. evitando a multi-tarefa Fonte: Vinícius Manhães Teles - www.improveit.com.br blog.fratech.net 23 fratech
  • 24. trabalhando para entregar O cliente só quer output O único objetivo de um projeto de software é produzir software. Dessa forma a produção de software não pode ser deixada de lado para satisfazer desejos pessoais ou profissionais dos envolvidos. Todos devem trabalhar para entregar software mais rápido e com mais qualidade. blog.fratech.net 24 fratech
  • 25. arquitetos Ágeis blog.fratech.net 25 fratech
  • 26. arquitetos devem escrever blog.fratech.net 26 fratech
  • 27. arquitetura ágil O Papel do Arquiteto Num time ágil podemos ter a impressão de não precisar de arquitetos, afinal o design é evolutivo e cada um é co-responsável pelo design. A verdade é que é necessário ter um arquiteto e que pode ser resumido na seguinte declaração de Martin Fowller: “...o mais experiente e completo membro do time, que ensina outros membros e sempre está lá para as coisas mais complicadas.” blog.fratech.net 27 fratech
  • 28. arquitetura ágil O Papel do Arquiteto Dessa forma podemos concluir algumas das tarefas de um arquiteto em um time ágil. x Entender os requisitos (User Stories, Itens de Backlog, etc...) x Formular o Design Geral do sistema x Disseminar os conceitos da arquitetura x Oferecer suporte aos desenvolvedores x Verificar a implementação Mais informação em http://www.agilearchitect.org/agile/role.htm blog.fratech.net 28 fratech
  • 29. arquitetura ágil blog.fratech.net 29 fratech
  • 30. Simplicidade evite o complexo de “cérebro” blog.fratech.net 30 fratech
  • 31. Simplicidade Conceito KISS Keep It Simple, Stupid! blog.fratech.net 31 fratech
  • 32. como aumentar a simplicidade Kent Beck, na segunda edição do Livro Extreme Programming Explained abordou algumas sugestões interessantes para garantir do desenvolvimento de um sofware simples. apropriado para o público alvo Não importa o brilhantismo ou “elegância” de um software, se as pessoas que irão trabalhar com ele (usuários ou desenvolvedores) não o compreendem, então ele não é simples para elas. comunicativo Os elementos de um software deverá favorecer a boa comunicação com os futuros leitores. fatorado Duplicação de lógica ou estrutura, dificultam o etendimento e a modificação do código. Mínimo Devido às 3 características acima, o sofware deverá ter um menor número possível de elementos, pois assim, teremos menos “coisas” a serem testadas, documentadas e comunicadas. blog.fratech.net 32 fratech
  • 33. outro exemplo de simplicidade blog.fratech.net 33 fratech
  • 34. faça seu código auto-explicativo blog.fratech.net 34 fratech
  • 35. Escrevendo Código Coeso Guarda Roupa, Piano, Cama Fuja da patente do Guarda Roupa, Piano, Cama, mas lembre-se uma caixa de fibra de algodão não ajuda muito quando você precisa de uma meia. blog.fratech.net 35 fratech
  • 36. Design Evolutivo Evolução do aprendizado em forma de baby step’s blog.fratech.net 36 fratech
  • 37. Evolução iterativa de um produto Iteração 1 PreGame (Concepção e Planejamento) Aprendizagem Incremento do Produto Necessidade Visão Iteração 2 Iteração 3 Aprendizagem Incremento do Produto Aprendizagem Incremento do Produto blog.fratech.net 37 fratech
  • 38. TDD - Test Driven Development blog.fratech.net 38 fratech
  • 39. TDD - Test Driven Development E x emplo de P roduc t B ac k L og c om C as o de T es te Área Atividade Item B us ines s V alue C as o de T es te - Ao informar o ano letivo, G erenciamento S ec. Acadêmica C ontrolar os curs os dis poníveis pela ins tituição 100 mos trar os curs os de curs os dis poníveis ; - Ao informar o ano letivo, mos trar as vagas dis poníveis por curs o; G erenciamento S ec. Acadêmica Definir as vagas dis poníveis por curs os 90 de curs os - Ao informar um curs o, informar quais vagas es tão dis poníveis no ano atual. blog.fratech.net 39 fratech
  • 40. REFACTORING Martin Fowler Aplicação: Quando apropriada, pois sua necessidade diminui quando o design e o código estão padronizados e simples. Benefícios: Códigos mais simples, legíveis e com melhor qualidade. Exemplos: Extração de variáveis locais, Alteração de nomes, Extração de métodos, Extração de classes e interfaces. blog.fratech.net 40 fratech
  • 41. Conversas Cara a Cara Crie condições para FeedBack Quebre as barreiras Diminua os intermediários blog.fratech.net 41 fratech
  • 42. Pensando em Negócio Ter um entedimento o suficientemente alinhado ao Ter toda equipe, alinhada aos objetivos da negócio da empresa empresa (cliente e/ou fornecedor). blog.fratech.net 42 fratech
  • 43. Code review blog.fratech.net 43 fratech
  • 44. Code review Code Review Checklist Não há uma regra definitiva para o que devemos procurar num code review, porém há algumas sugestões: x Você pode ler e entender o código? x Há algum erro óbvio? x Há algum efeito colateral que atinja outras partes da aplicação? x Há alguma duplicidade no código (dentro do código mesmo ou com outras partes do sistema)? x Há alguma melhora ou refactoring que possa melhorar o código? blog.fratech.net 44 fratech
  • 45. Pair Programming Escolha dos pares Reunião em pé Programação em par blog.fratech.net 45 fratech
  • 46. Mantenha o time informado blog.fratech.net 46 fratech
  • 47. construtivismo Critique idéias, não pessoas O sucesso de um projeto ágil é altamente acoplado à harmonia entre os integrantes do time. Processos ágeis são muito focados em reuniões e interações face-a-face. Dessa forma, é de extrema importância não criticar as pessoas e sim as idéias propostas, quando aplicável. Há 3 maneiras de se criticar uma idéia: 1. Você é estúpido? Não vai dar certo. Isso é obvio. 2. Essa idéia é estúpida! Não vai dar certo. Isso é obvio. 3. Ei, como você pretende resolver esse problema aqui com essa idéia? blog.fratech.net 47 fratech
  • 48. Be a Mentor blog.fratech.net 48 fratech
  • 49. That’s all folks! Obrigado! www.fratech.net blog.fratech.net blog.fratech.net 49 fratech