SlideShare uma empresa Scribd logo
1 de 116
Baixar para ler offline
decodificando o
CODE REVIEW
Desenvolvedora de Software (Plataformatec)
Mestre em Ciência da Computação (USP)
Elaine Naomi Watanabe
github.com/elainenaomi
twitter.com/elaine_nw
expectativas:
discutir os desafios e práticas da
revisão de código
https://en.wikipedia.org/wiki/Code_review
CODE REVIEW
processo de verificação de um sistema por meio da
análise do código fonte, realizada por humanos
https://en.wikipedia.org/wiki/Code_review
CODE REVIEW
processo de verificação de um sistema por meio da
análise do código fonte, realizada por humanos
qual é o objetivo?
2001
60% dos defeitos podem ser
identificados na revisão do código
Boehm, Barry, and Victor R. Basili. "Top 10 list [software development]."
Computer 34.1 (2001): 135-137
http://agilemodeling.com/essays/modelReviews.htm
Desenv.
custodamudança
tempo
Requisitos
Análise e
Design
Revisão Testes Produção
http://agilemodeling.com/essays/modelReviews.htm
Desenv.
custodamudança
tempo
Requisitos
Análise e
Design
Revisão Testes Produção
QUALIDADE DE SOFTWARE
Confiabilidade
Corretude
Eficiência
Manutenabilidade
Valor de negócio
https://en.wikipedia.org/wiki/Software_quality
Dívida Técnica
Valor de negócio
Custodamudança
tempo
How to Monetize Application Technical Debt, Gartner, 2011
2009
Revisão de código é uma boa ferramenta para
identificar defeitos relacionados à evolutibilidade do
código que não são identificáveis na fase de testes
Mäntylä, Mika V., and Casper Lassenius. "What types of defects are really discovered in code
reviews?." IEEE Transactions on Software Engineering 35.3 (2009): 430-448
como fazer um code review?
como pessoa revisora
Pair Programming
Pull Request
Pair Programming
Pull Request
Pair Programming
Pull Request
código + contexto de negócio
Pair Programming
Pull Request
histórico acessível das discussões
interação
assíncrona
distribuída
Mesmo
local
Mesmo tempo Tempo diferente
Locais
diferentes
interação
síncrona
distribuída
interação
assíncrona
interação
face-a-face
Johansen, Robert. "Groupware: Future directions and wild cards."
Journal of Organizational Computing and Electronic Commerce 1.2 (1991): 219-227.
revisão por meio de comentários
visibilidade das alterações
para outros times
team awareness
transferência de conhecimento
mentoria
boas práticas
...
como pessoa autora
Título explicativo
Motivação (contexto de negócio)
Lista de dúvidas e discussões prévias
Gifs, screenshots das alterações
Mensagens de commits coerentes
Código completo, testado
Alterações pequenas
Single responsibility principle
marque pessoas como revisoras
aplique as alterações necessárias
e responda a todos os comentários
...
como pessoa revisora
Identificar defeitos (bugs)
Sugerir soluções alternativas, refatorações
Reforçar padrões de código e design
Validar funcionalidade (código + negócio)
Identificar problemas de segurança
Analisar impactos na performance
Sugerir documentações
Validar a qualidade do código-fonte
não esqueça
é importante que os comentários
sejam explícitos e descritivos
é para eu jogar fora a minha alteração?
ah, era só para apagar o espaço extra
o feedback deve ser sobre o código,
e não sobre as pessoas
quem faz review, ajuda na
construção da solução também
collective code ownership
além disso
comentários repetitivos
sobre estilo de código
podem ser substituídos por uma
ferramenta de análise de código
melhorias de design podem ser
entregues em outro pull request
se chegar a uma conclusão
estiver difícil
não se limite à ferramenta de review
videoconferência
presencialmente
http://blog.plataformatec.com.br/2018/11/trabalhando-com-times-distribuidos/
documente as decisões e
discussões offline
...
como organização
tenha critérios bem definidos
ex.: o número mínimo de aprovações
formalize as recomendações,
crie guidelines sobre
aspectos comportamentais
comunicação
verbal, não verbal e escrita
...
fator social
2014
Tsay, Jason, Laura Dabbish, and James Herbsleb. "Influence of social and technical factors for evaluating contribution in GitHub."
Proceedings of the 36th international conference on Software engineering. ACM, 2014.
Quando os testes estão incluso, o PR
tem 17% mais chance de ser aceito
fator técnico
Se a pessoa autora segue a pessoa
responsável pelo projeto, tem
187% mais chance do PR ser aceito
fator social
Tsay, Jason, Laura Dabbish, and James Herbsleb. "Influence of social and technical factors for evaluating contribution in GitHub."
Proceedings of the 36th international conference on Software engineering. ACM, 2014.
PRs com grandes quantidades de
comentários, têm chance menor de ser
aceito no contexto open source
fator social
Tsay, Jason, Laura Dabbish, and James Herbsleb. "Influence of social and technical factors for evaluating contribution in GitHub."
Proceedings of the 36th international conference on Software engineering. ACM, 2014.
comportamentos
tóxicos
podia ser pior?
com certeza!
podia ser pior?
com certeza!
mas, ainda sim,
é super tóxico
COMPORTAMENTOS TÓXICOS
https://medium.com/@jgefroh/toxic-developers-considered-harmful-f7ea1494d4c0
Impedem inovações e ideias
Promovem a cultura da não-comunicação
Colocam o projeto e negócio em risco por centralizar informação
Comunicação agressiva (verbal, não-verbal e escrita)
"como assim você não sabe isso???"
"como deixaram você entrar aqui??"
"vou ter que te explicar de novo?"
"Sentiment analysis on comments has
provided evidence that comments with
negative tone are less likely to be useful"
Sadowski, Caitlin, et al. "Modern code review: a case study at Google." Proceedings of the 40th International
Conference on Software Engineering: Software Engineering in Practice. ACM, 2018
como evitar isso?
Faça reviews como seres humanos
https://mtlynch.io/human-code-reviews-1/
https://mtlynch.io/human-code-reviews-2/
ask, don't tell
ok, é só perguntar
ok, é só perguntar
"Testes não são importantes pra vc?"
pergunta sarcástica, com julgamento pessoal
"Testes não são importantes pra vc?"
pergunta sarcástica, com julgamento pessoal
"Esse PR não pode ser mergeado"
comentário opinativo, sem ação concreta, imperativo
"Esse PR não pode ser mergeado"
comentário opinativo, sem ação concreta, imperativo
"Por que não criou uma nova classe?"
pergunta com julgamento pessoal ainda
"como você não pensou nisso?"
"Por que não criou uma nova classe?"
pergunta com julgamento pessoal ainda
"como você não pensou nisso?"
busque comentar
de maneira construtiva
construtivo
"O que você acha sobre extrair essa
lógica para uma classe? Acredito que
vai melhorar a legibilidade e reduzir a
complexidade"
sem suposição, tom de sugestão
"Não sei se você já analisou isso,
mas será que não vale a pena criar
uma nova classe para esse caso?"
software é também sobre
cultura
"A cultura não faz as pessoas,
as pessoas fazem a cultura"
Chimamanda Ngozi Adichie
olhe para a diversidade do seu time
diversidade ajuda a estimular empatia
pode ajudar a reduzir
comportamentos tóxicos
e impacta positivamente
na inovação e lucro
https://assets.mckinsey.com/~/media/857F440109AA4D13A54D9C496D86ED58.ashx
Diversidade de gênero:
21% mais chances de resultados
acima da média do mercado
Diversidade cultural e étnica:
33% mais chances de resultados
acima da média do mercado
olhe também para o ambiente
fatores não-técnicos
pressão, sobrecarga de atividades,
experiência e contexto de negócio
Baysal, Olga, et al. "The influence of non-technical factors on code review." 2013 20th Working
Conference on Reverse Engineering (WCRE). IEEE, 2013.
a qualidade do software
reflete todos esses fatores
impacta também no código escrito
código escrito é uma
forma de comunicação
"Instead of imagining that our main
task is to instruct a computer what
to do, let us concentrate rather on
explaining to human beings what we want a
computer to do."
Donald Knuth. "Literate Programming (1984)" in Literate Programming. CSLI, 1992, pg. 99.
e aí, como está a
qualidade do seu software?
minhas referências
guidelines.plataformatec.com.br
github.blog/2015-01-21-how-to-write-the-perfect-pull-request
medium.com/palantir/19e02780015f
medium.com/@jgefroh/f7ea1494d4c0
forbes.com/sites/quora/2014/11/07/10-characteristics-of-a-bad-softwar
e-engineer
blog.plataformatec.com.br/2018/07/como-evitar-silos-de-conhecimento-
na-sua-codebase-e-levar-seus-code-reviews-para-o-proximo-nivel/
Building an Iconic Company - Reed Hasting
youtube.com/watch?v=BsXXIfqbnRk
A Arquitetura (Peculiar) do Stack Overflow - Roberta Arcoverde
infoq.com/br/presentations/a-arquitetura-peculiar-do-stack-overflow
Implementing a Strong Code-Review Culture - Derek Prior
youtube.com/watch?v=PJjmw9TRB7s
Maintaining a big open source project: lessons learned - Leonardo Tegon
youtube.com/watch?v=rnOcDH_sgxg
muito obrigada
speakerdeck.com/elainenaomi

Mais conteúdo relacionado

Mais procurados

Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]rafael327780
 
Engenharia de Software Pressman
Engenharia de Software PressmanEngenharia de Software Pressman
Engenharia de Software PressmanSimoneinfo
 
Engenharia de Software - Introdução e Motivação (Marcello Thiry)
Engenharia de Software - Introdução e Motivação (Marcello Thiry)Engenharia de Software - Introdução e Motivação (Marcello Thiry)
Engenharia de Software - Introdução e Motivação (Marcello Thiry)Marcello Thiry
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISOs Fantasmas !
 
Automação de testes em projetos ágeis
Automação de testes em projetos ágeisAutomação de testes em projetos ágeis
Automação de testes em projetos ágeisCristiano Caetano
 
Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3André Phillip Bertoletti
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...Rafael Chiavegatto
 
Cap1 introd-engenharia de software
Cap1 introd-engenharia de softwareCap1 introd-engenharia de software
Cap1 introd-engenharia de softwareAdilson Nascimento
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de SoftwareClaudia Melo
 
Engenharia de Software - Unimep/Pronatec - Aula 1
Engenharia de Software - Unimep/Pronatec - Aula 1Engenharia de Software - Unimep/Pronatec - Aula 1
Engenharia de Software - Unimep/Pronatec - Aula 1André Phillip Bertoletti
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASOs Fantasmas !
 
Robotium + cucumber + gradle, misture com spoon e tenha uma execução de teste...
Robotium + cucumber + gradle, misture com spoon e tenha uma execução de teste...Robotium + cucumber + gradle, misture com spoon e tenha uma execução de teste...
Robotium + cucumber + gradle, misture com spoon e tenha uma execução de teste...João Clineu - CTFL, CSM, CSD
 
LIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACES
LIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACESLIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACES
LIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACESOs Fantasmas !
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Qualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saberQualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saberKamilla Queiroz Xavier
 
Agile Testing - Qualidade do Discovery ao Deploy
Agile Testing - Qualidade do Discovery ao DeployAgile Testing - Qualidade do Discovery ao Deploy
Agile Testing - Qualidade do Discovery ao DeployEduardo Cini
 

Mais procurados (20)

Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]
 
Engenharia de Software Pressman
Engenharia de Software PressmanEngenharia de Software Pressman
Engenharia de Software Pressman
 
Engenharia de Software - Introdução e Motivação (Marcello Thiry)
Engenharia de Software - Introdução e Motivação (Marcello Thiry)Engenharia de Software - Introdução e Motivação (Marcello Thiry)
Engenharia de Software - Introdução e Motivação (Marcello Thiry)
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
 
Automação de testes em projetos ágeis
Automação de testes em projetos ágeisAutomação de testes em projetos ágeis
Automação de testes em projetos ágeis
 
CInTeQ 2011
CInTeQ 2011CInTeQ 2011
CInTeQ 2011
 
Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
 
Cap1 introd-engenharia de software
Cap1 introd-engenharia de softwareCap1 introd-engenharia de software
Cap1 introd-engenharia de software
 
Questionario CTFL - Foundation Level
Questionario CTFL - Foundation LevelQuestionario CTFL - Foundation Level
Questionario CTFL - Foundation Level
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Engenharia de Software - Unimep/Pronatec - Aula 1
Engenharia de Software - Unimep/Pronatec - Aula 1Engenharia de Software - Unimep/Pronatec - Aula 1
Engenharia de Software - Unimep/Pronatec - Aula 1
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
 
Metodos ageis thinkingdifferent
Metodos ageis thinkingdifferentMetodos ageis thinkingdifferent
Metodos ageis thinkingdifferent
 
Robotium + cucumber + gradle, misture com spoon e tenha uma execução de teste...
Robotium + cucumber + gradle, misture com spoon e tenha uma execução de teste...Robotium + cucumber + gradle, misture com spoon e tenha uma execução de teste...
Robotium + cucumber + gradle, misture com spoon e tenha uma execução de teste...
 
LIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACES
LIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACESLIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACES
LIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACES
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Qualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saberQualidade e Teste de Software - O que preciso saber
Qualidade e Teste de Software - O que preciso saber
 
Agile Testing - Qualidade do Discovery ao Deploy
Agile Testing - Qualidade do Discovery ao DeployAgile Testing - Qualidade do Discovery ao Deploy
Agile Testing - Qualidade do Discovery ao Deploy
 
Curso Scrum
Curso ScrumCurso Scrum
Curso Scrum
 

Semelhante a Decodificando o Code Review

Caminho Do Desenvolvedor Amador Para o Profissional
Caminho Do Desenvolvedor Amador Para o ProfissionalCaminho Do Desenvolvedor Amador Para o Profissional
Caminho Do Desenvolvedor Amador Para o ProfissionalGiovanni Bassi
 
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...Maurício Aniche
 
Seu código fonte é sustentável?
Seu código fonte é sustentável?Seu código fonte é sustentável?
Seu código fonte é sustentável?Isaac de Souza
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informaçãoFernando Gomes Chaves
 
Práticas De Um Engenheiro De Software Eficiente
Práticas De Um Engenheiro De Software EficientePráticas De Um Engenheiro De Software Eficiente
Práticas De Um Engenheiro De Software EficienteGiovanni Bassi
 
Criando produtos e serviços reais para o mundo virtual.
Criando produtos e serviços reais para o mundo virtual.Criando produtos e serviços reais para o mundo virtual.
Criando produtos e serviços reais para o mundo virtual.Jane Vita
 
Carreira em testes de software
Carreira em testes de softwareCarreira em testes de software
Carreira em testes de softwareJoyce Bastos
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agiledayCarlos Felippe Cardoso
 
O que estamos temos feito com mineração de repositório de código no IME?
O que estamos temos feito com mineração de repositório de código no IME?O que estamos temos feito com mineração de repositório de código no IME?
O que estamos temos feito com mineração de repositório de código no IME?Maurício Aniche
 
Metadesign: redes de conversação e o desenvolvimento de sistemas de informação
Metadesign: redes de conversação e o desenvolvimento de sistemas de informaçãoMetadesign: redes de conversação e o desenvolvimento de sistemas de informação
Metadesign: redes de conversação e o desenvolvimento de sistemas de informaçãoDalton Martins
 
Revolucao Agile - UFSCar
Revolucao Agile - UFSCarRevolucao Agile - UFSCar
Revolucao Agile - UFSCarLuiz Ribeiro
 
Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...
Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...
Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...Tailo Mateus Gonsalves
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareDaniel Cukier
 
Workshop: Ouvindo usuários e stakeholders
Workshop: Ouvindo usuários e stakeholdersWorkshop: Ouvindo usuários e stakeholders
Workshop: Ouvindo usuários e stakeholdersNeue Labs
 
Jukebox Webpanel Datasul
Jukebox Webpanel DatasulJukebox Webpanel Datasul
Jukebox Webpanel Datasuldatasul20
 

Semelhante a Decodificando o Code Review (20)

Caminho Do Desenvolvedor Amador Para o Profissional
Caminho Do Desenvolvedor Amador Para o ProfissionalCaminho Do Desenvolvedor Amador Para o Profissional
Caminho Do Desenvolvedor Amador Para o Profissional
 
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
 
Seu código fonte é sustentável?
Seu código fonte é sustentável?Seu código fonte é sustentável?
Seu código fonte é sustentável?
 
Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informação
 
Práticas De Um Engenheiro De Software Eficiente
Práticas De Um Engenheiro De Software EficientePráticas De Um Engenheiro De Software Eficiente
Práticas De Um Engenheiro De Software Eficiente
 
Criando produtos e serviços reais para o mundo virtual.
Criando produtos e serviços reais para o mundo virtual.Criando produtos e serviços reais para o mundo virtual.
Criando produtos e serviços reais para o mundo virtual.
 
Carreira em testes de software
Carreira em testes de softwareCarreira em testes de software
Carreira em testes de software
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agileday
 
O que estamos temos feito com mineração de repositório de código no IME?
O que estamos temos feito com mineração de repositório de código no IME?O que estamos temos feito com mineração de repositório de código no IME?
O que estamos temos feito com mineração de repositório de código no IME?
 
Metadesign: redes de conversação e o desenvolvimento de sistemas de informação
Metadesign: redes de conversação e o desenvolvimento de sistemas de informaçãoMetadesign: redes de conversação e o desenvolvimento de sistemas de informação
Metadesign: redes de conversação e o desenvolvimento de sistemas de informação
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
Revolucao Agile - UFSCar
Revolucao Agile - UFSCarRevolucao Agile - UFSCar
Revolucao Agile - UFSCar
 
Agile User Experience
Agile User ExperienceAgile User Experience
Agile User Experience
 
Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...
Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...
Projeto e protótipo de ferramenta de gerenciamento de projetos adaptada ao pr...
 
O que devo procurar em um code review
O que devo procurar em um code review O que devo procurar em um code review
O que devo procurar em um code review
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de Software
 
Workshop: Ouvindo usuários e stakeholders
Workshop: Ouvindo usuários e stakeholdersWorkshop: Ouvindo usuários e stakeholders
Workshop: Ouvindo usuários e stakeholders
 
Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
 
Jukebox Webpanel Datasul
Jukebox Webpanel DatasulJukebox Webpanel Datasul
Jukebox Webpanel Datasul
 

Mais de Elaine Naomi

Design de aplicações orientadas a objeto
Design de aplicações orientadas a objetoDesign de aplicações orientadas a objeto
Design de aplicações orientadas a objetoElaine Naomi
 
Sobre code smells, refactoring e design: como SOLID pode te ajudar no dia a dia
Sobre code smells, refactoring e design: como SOLID pode te ajudar no dia a diaSobre code smells, refactoring e design: como SOLID pode te ajudar no dia a dia
Sobre code smells, refactoring e design: como SOLID pode te ajudar no dia a diaElaine Naomi
 
Hacking Evening - Liskov Substitution Principle
Hacking Evening - Liskov Substitution PrincipleHacking Evening - Liskov Substitution Principle
Hacking Evening - Liskov Substitution PrincipleElaine Naomi
 
Code Smells: o que eles dizem sobre seu código?
Code Smells: o que eles dizem sobre seu código?Code Smells: o que eles dizem sobre seu código?
Code Smells: o que eles dizem sobre seu código?Elaine Naomi
 
Bootcamp de Rails - CaquiCoders Meetup
Bootcamp de Rails - CaquiCoders MeetupBootcamp de Rails - CaquiCoders Meetup
Bootcamp de Rails - CaquiCoders MeetupElaine Naomi
 
GURU SP - Design de aplicações orientadas a objeto
GURU SP - Design de aplicações orientadas a objetoGURU SP - Design de aplicações orientadas a objeto
GURU SP - Design de aplicações orientadas a objetoElaine Naomi
 
Além da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangAlém da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangElaine Naomi
 
Explorando o Paralelismo em Workflows Intensivos em Dados com o Uso de Anotaç...
Explorando o Paralelismo em Workflows Intensivos em Dados com o Uso de Anotaç...Explorando o Paralelismo em Workflows Intensivos em Dados com o Uso de Anotaç...
Explorando o Paralelismo em Workflows Intensivos em Dados com o Uso de Anotaç...Elaine Naomi
 
Uso de Anotações Semânticas para Exploração de Paralelismo em Workflows Inten...
Uso de Anotações Semânticas para Exploração de Paralelismo em Workflows Inten...Uso de Anotações Semânticas para Exploração de Paralelismo em Workflows Inten...
Uso de Anotações Semânticas para Exploração de Paralelismo em Workflows Inten...Elaine Naomi
 
Dealing with a search engine in your application - a Solr approach for beginners
Dealing with a search engine in your application - a Solr approach for beginnersDealing with a search engine in your application - a Solr approach for beginners
Dealing with a search engine in your application - a Solr approach for beginnersElaine Naomi
 
Um Método para Paralelização Automática de Workflows Intensivos em Dados
Um Método para Paralelização Automática de Workflows Intensivos em DadosUm Método para Paralelização Automática de Workflows Intensivos em Dados
Um Método para Paralelização Automática de Workflows Intensivos em DadosElaine Naomi
 
O que é BIG DATA e como pode influenciar nossas vidas
O que é BIG DATA e como pode influenciar nossas vidasO que é BIG DATA e como pode influenciar nossas vidas
O que é BIG DATA e como pode influenciar nossas vidasElaine Naomi
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDBElaine Naomi
 
Workflows científicos
Workflows científicosWorkflows científicos
Workflows científicosElaine Naomi
 
Algoritmos para economia de energia no escalonamento de workflows em nuvens c...
Algoritmos para economia de energia no escalonamento de workflows em nuvens c...Algoritmos para economia de energia no escalonamento de workflows em nuvens c...
Algoritmos para economia de energia no escalonamento de workflows em nuvens c...Elaine Naomi
 

Mais de Elaine Naomi (16)

Design de aplicações orientadas a objeto
Design de aplicações orientadas a objetoDesign de aplicações orientadas a objeto
Design de aplicações orientadas a objeto
 
Sobre code smells, refactoring e design: como SOLID pode te ajudar no dia a dia
Sobre code smells, refactoring e design: como SOLID pode te ajudar no dia a diaSobre code smells, refactoring e design: como SOLID pode te ajudar no dia a dia
Sobre code smells, refactoring e design: como SOLID pode te ajudar no dia a dia
 
Hacking Evening - Liskov Substitution Principle
Hacking Evening - Liskov Substitution PrincipleHacking Evening - Liskov Substitution Principle
Hacking Evening - Liskov Substitution Principle
 
Code Smells: o que eles dizem sobre seu código?
Code Smells: o que eles dizem sobre seu código?Code Smells: o que eles dizem sobre seu código?
Code Smells: o que eles dizem sobre seu código?
 
Bootcamp de Rails - CaquiCoders Meetup
Bootcamp de Rails - CaquiCoders MeetupBootcamp de Rails - CaquiCoders Meetup
Bootcamp de Rails - CaquiCoders Meetup
 
GURU SP - Design de aplicações orientadas a objeto
GURU SP - Design de aplicações orientadas a objetoGURU SP - Design de aplicações orientadas a objeto
GURU SP - Design de aplicações orientadas a objeto
 
Além da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangAlém da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e Erlang
 
Explorando o Paralelismo em Workflows Intensivos em Dados com o Uso de Anotaç...
Explorando o Paralelismo em Workflows Intensivos em Dados com o Uso de Anotaç...Explorando o Paralelismo em Workflows Intensivos em Dados com o Uso de Anotaç...
Explorando o Paralelismo em Workflows Intensivos em Dados com o Uso de Anotaç...
 
Uso de Anotações Semânticas para Exploração de Paralelismo em Workflows Inten...
Uso de Anotações Semânticas para Exploração de Paralelismo em Workflows Inten...Uso de Anotações Semânticas para Exploração de Paralelismo em Workflows Inten...
Uso de Anotações Semânticas para Exploração de Paralelismo em Workflows Inten...
 
Dealing with a search engine in your application - a Solr approach for beginners
Dealing with a search engine in your application - a Solr approach for beginnersDealing with a search engine in your application - a Solr approach for beginners
Dealing with a search engine in your application - a Solr approach for beginners
 
Um Método para Paralelização Automática de Workflows Intensivos em Dados
Um Método para Paralelização Automática de Workflows Intensivos em DadosUm Método para Paralelização Automática de Workflows Intensivos em Dados
Um Método para Paralelização Automática de Workflows Intensivos em Dados
 
O que é BIG DATA e como pode influenciar nossas vidas
O que é BIG DATA e como pode influenciar nossas vidasO que é BIG DATA e como pode influenciar nossas vidas
O que é BIG DATA e como pode influenciar nossas vidas
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
 
Workflows científicos
Workflows científicosWorkflows científicos
Workflows científicos
 
Algoritmos para economia de energia no escalonamento de workflows em nuvens c...
Algoritmos para economia de energia no escalonamento de workflows em nuvens c...Algoritmos para economia de energia no escalonamento de workflows em nuvens c...
Algoritmos para economia de energia no escalonamento de workflows em nuvens c...
 
Qt Apresentação
Qt ApresentaçãoQt Apresentação
Qt Apresentação
 

Decodificando o Code Review