Direitos reservadoswww.bsitecnologia.com.br
Workshop
Desenvolvedor Ágil
Direitos reservadoswww.bsitecnologia.com.br
Objetivo
• Identificação de características desejadas no Perfil Profissional
• Visão geral aos conceitos técnicos e ‘caminho das pedras’
• Busca de Melhoria Contínua
• Oportunidade de aprendizado e desenvolvimento pessoal
Direitos reservadoswww.bsitecnologia.com.br
Perfil Comportamental
• Conhecer o manifesto ágil e ter aderência aos valores
• Saber trabalhar em equipe
• Boa habilidade de comunicação
• Automotivação e autogerenciamento
• Aprendizado contínuo e interesse por manter-se atualizado em novas
tecnologias
• Saber separar críticas ao código de críticas à pessoa
• Habilidade em se adaptar a situações imprevistas
• Facilidade para receber demanda sem necessidade de documentação
descritiva
• Postura de adaptação à mudança e não resistência à mudança
• Saber discutir soluções em conjunto. Não pode ser do tipo que acha
somente suas soluções são boas e a sua forma de resolver problema é a
única válida.
Direitos reservadoswww.bsitecnologia.com.br
Perfil Técnico
• Orientação a objetos
– Pilares da OO
– Princípios do SOLID.
– Design patterns (GoF e Fowler PoEAA).
– DDD (Domain Driven Design)
– Projeto (Design)
• SQL
• XP
• TDD
• Integração contínua
• Ferramenta de controle de versão
• Política de gestão de versões
• Issue tracker
Direitos reservadoswww.bsitecnologia.com.br
Perfil Técnico (Auto-avaliação)
• Orientação a objetos
– Pilares de OO
– Princípios do SOLID.
– Design patterns (GoF e Fowler PoEAA).
– DDD (Domain Driven Design)*
– Projeto (Design)
• SQL
• XP
• TDD
• Integração contínua*
• Ferramenta de controle de versão
• Política de gestão de versões
• Issue tracker
Direitos reservadoswww.bsitecnologia.com.br
Orientação a objetos
Abstração
Direitos reservadoswww.bsitecnologia.com.br
Orientação a objetos
Classes e Objetos
Direitos reservadoswww.bsitecnologia.com.br
Orientação a objetos
Objetos na memória
Direitos reservadoswww.bsitecnologia.com.br
Orientação a objetos
Objetos na memória
Direitos reservadoswww.bsitecnologia.com.br
Orientação a objetos
Encapsulamento
Direitos reservadoswww.bsitecnologia.com.br
Orientação a objetos
Encapsulamento
Direitos reservadoswww.bsitecnologia.com.br
Orientação a objetos
Herança
Direitos reservadoswww.bsitecnologia.com.br
Orientação a objetos
Herança
Direitos reservadoswww.bsitecnologia.com.br
Orientação a objetos
Composição
Direitos reservadoswww.bsitecnologia.com.br
Orientação a objetos
Polimorfismo
Direitos reservadoswww.bsitecnologia.com.br
Orientação a objetos
Polimorfismo
Direitos reservadoswww.bsitecnologia.com.br
SOLID
Geral
Direitos reservadoswww.bsitecnologia.com.br
SOLID
Single Responsibility
Direitos reservadoswww.bsitecnologia.com.br
SOLID
Open/Closed
Direitos reservadoswww.bsitecnologia.com.br
SOLID
Liskov Substituition
Direitos reservadoswww.bsitecnologia.com.br
SOLID
Interface Segregation
Direitos reservadoswww.bsitecnologia.com.br
SOLID
Dependency Inversion
Direitos reservadoswww.bsitecnologia.com.br
Código
Livros
Direitos reservadoswww.bsitecnologia.com.br
Patterns
GoF
Direitos reservadoswww.bsitecnologia.com.br
Patterns
GoF
Direitos reservadoswww.bsitecnologia.com.br
Patterns
GoF (Factory Method)
Direitos reservadoswww.bsitecnologia.com.br
Patterns
POSA
Direitos reservadoswww.bsitecnologia.com.br
Atributos de qualidade
Requisitos não funcionais
Direitos reservadoswww.bsitecnologia.com.br
Patterns
PoEAA
Direitos reservadoswww.bsitecnologia.com.br
Patterns
PoEAA (Active Record)
Direitos reservadoswww.bsitecnologia.com.br
DDD
Livros
Direitos reservadoswww.bsitecnologia.com.br
DDD
Camadas
Direitos reservadoswww.bsitecnologia.com.br
DDD
Camadas
Direitos reservadoswww.bsitecnologia.com.br
DDD
Exemplo
https://code.google.com/p/ndddsample/
Direitos reservadoswww.bsitecnologia.com.br
SQL
Plano de execução
Direitos reservadoswww.bsitecnologia.com.br
SQL
Dicas
1. A consulta SQL torna-se mais rápida se você usar o nome das
colunas no SELECT invés de ‘*’
2. Use os operadores EXISTS, IN e joins de maneira correta na sua
query
3. Use a chave completa nos joins e nas clausulas WHERE
4. Evitar o ORDER BY, GROUP BY, DISTINCT e HAVING
5. Use os índices em suas consultas
6. Evitar funções em chaves e índices
7. Produção e desenvolvimento são bem diferentes
8. Conheça bem o modelo de dados
9. Usar stored procedures
Direitos reservadoswww.bsitecnologia.com.br
Agilidade
O que é ser ágil?
Direitos reservadoswww.bsitecnologia.com.br
Agilidade
Manifesto
Indivíduos e interação entre eles mais que processos e ferramentas
Software em funcionamento mais que documentação abrangente
Colaboração com o cliente mais que negociação de contratos
Responder a mudanças mais que seguir um plano
Direitos reservadoswww.bsitecnologia.com.br
Agilidade
12 Princípios ágeis
1. Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e
contínua de software de valor.
2. Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento.
Processos ágeis se adequam a mudanças, para que o cliente possa tirar
vantagens competitivas.
3. Entregar software funcionando com freqüencia, na escala de semanas até
meses, com preferência aos períodos mais curtos.
4. Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em
conjunto e diáriamente, durante todo o curso do projeto.
5. Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente
e suporte necessário, e confiar que farão seu trabalho.
6. O Método mais eficiente e eficaz de transmitir informações para, e por dentro
de um time de desenvolvimento, é através de uma conversa cara a cara.
Direitos reservadoswww.bsitecnologia.com.br
Agilidade
12 Princípios ágeis
7. Software funcional é a medida primária de progresso.
8. Processos ágeis promovem um ambiente sustentável. Os
patrocinadores, desenvolvedores e usuários, devem ser capazes de manter
indefinidamente, passos constantes.
9. Contínua atenção à excelência técnica e bom design, aumenta a agilidade.
10. Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou
ser feito.
11. As melhores arquiteturas, requisitos e designs emergem de times auto-
organizáveis.
12. Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se
ajustam e otimizam seu comportamento de acordo.
Direitos reservadoswww.bsitecnologia.com.br
Agilidade
Livro
Direitos reservadoswww.bsitecnologia.com.br
Scrum
Geral
Direitos reservadoswww.bsitecnologia.com.br
Scrum
Disfunções e Scrum Flaccid
Direitos reservadoswww.bsitecnologia.com.br
Scrum
Livros
Direitos reservadoswww.bsitecnologia.com.br
XP
Geral
Direitos reservadoswww.bsitecnologia.com.br
XP
Práticas
Direitos reservadoswww.bsitecnologia.com.br
XP
Livro
Direitos reservadoswww.bsitecnologia.com.br
TDD
Fluxo
Direitos reservadoswww.bsitecnologia.com.br
TDD
Fluxo
Direitos reservadoswww.bsitecnologia.com.br
TDD
Teste
Direitos reservadoswww.bsitecnologia.com.br
TDD
Mock
Direitos reservadoswww.bsitecnologia.com.br
TDD
Livros
Direitos reservadoswww.bsitecnologia.com.br
Testes
Tipos
• Testes unitários
• Testes de integração
• Testes de sistema
• Testes de aceitação
Direitos reservadoswww.bsitecnologia.com.br
Controle de versão
Checkout
Direitos reservadoswww.bsitecnologia.com.br
Controle de versão
Checkin
Direitos reservadoswww.bsitecnologia.com.br
Controle de versão
Lock
Direitos reservadoswww.bsitecnologia.com.br
Controle de versão
Branchs e Merges
Direitos reservadoswww.bsitecnologia.com.br
Controle de versão
Branchs e Merges
Direitos reservadoswww.bsitecnologia.com.br
Controle de versão
Branch
Direitos reservadoswww.bsitecnologia.com.br
Controle de versão
Label
Direitos reservadoswww.bsitecnologia.com.br
Controle de versão
Shelve
Direitos reservadoswww.bsitecnologia.com.br
Controle de versão
Unshelve
Direitos reservadoswww.bsitecnologia.com.br
Controle de versão
Direitos reservadoswww.bsitecnologia.com.br
Integração Contínua
Direitos reservadoswww.bsitecnologia.com.br
Integração Contínua
Tipos de Builds:
1. CI (Continuous Integration)
2. CD (Continuous Delivery)
3. Nightly Build
Direitos reservadoswww.bsitecnologia.com.br
Integração Contínua
Passos de Build:
1. Análise estática de código
2. Compilação
3. Testes automatizados
4. Cobertura de código
5. Testes de integração
6. Testes de aceitação
7. Testes de atributos de qualidade
8. Implantação do banco de dados
9. Implantação da aplicação
10.Aplicar uma label ou criar uma branch
Direitos reservadoswww.bsitecnologia.com.br
Integração Contínua
Livros
Direitos reservadoswww.bsitecnologia.com.br
Bug Report
Direitos reservadoswww.bsitecnologia.com.br
Comportamental
Livros
Direitos reservadoswww.bsitecnologia.com.br
Comportamental
Livros
Direitos reservadoswww.bsitecnologia.com.br
Dúvidas?

Workshop Scrum Developer