Nesta apresentação, Ismael Soares fala como um time pode ser influenciado pelas emoções de seu líder.
Ele faz uma relação entre o desempenho de equipes que são lideradas sob o bom e mal relacionamento com seus líderes.
Ismael termina a apresentação comentando que este assunto não é exclusivo do ambiente corporativo.
Refactoring Strategies: Beyond the BasicsDanilo Sato
Refactoring is a fundamental practice for an agile developer. Each refactoring is a small and isolated activity, but the value comes when you perform a sequence of refactorings to effect larger changes. This workshop will guide participants through hands-on exercises designed to teach three essential skills to become good at refactoring:
1. Identifying what needs refactoring: what makes code smell, confusing, or complex?
2. Identifying the end goal: what are the design options and which one will yield the best results?
3. Tracing a strategy to get the code from 1 to 2.
The eBooks you create have the potential to become an important pillar in your content marketing mix.
Do it right and these high-converting "lead magnets" can continue to work for your content marketing machine long after the average blog post has ran out of steam.
But first, we need to move past the assumption that great eBooks are merely written and start building them with all the right parts!
Leader's Guide to Motivate People at WorkWeekdone.com
Motivation leads to higher performance, morale and productivity. Nevertheless, 30% of executives say that motivating their employees is their toughest job. We are here to help you out by giving answers to the following subjects:
- Why motivation matters?
- Cost of disengaged employees
- What really motivates people? Science and data
- Practical 6 step guide to motivate people at work
Nesta apresentação, Ismael Soares fala como um time pode ser influenciado pelas emoções de seu líder.
Ele faz uma relação entre o desempenho de equipes que são lideradas sob o bom e mal relacionamento com seus líderes.
Ismael termina a apresentação comentando que este assunto não é exclusivo do ambiente corporativo.
Refactoring Strategies: Beyond the BasicsDanilo Sato
Refactoring is a fundamental practice for an agile developer. Each refactoring is a small and isolated activity, but the value comes when you perform a sequence of refactorings to effect larger changes. This workshop will guide participants through hands-on exercises designed to teach three essential skills to become good at refactoring:
1. Identifying what needs refactoring: what makes code smell, confusing, or complex?
2. Identifying the end goal: what are the design options and which one will yield the best results?
3. Tracing a strategy to get the code from 1 to 2.
The eBooks you create have the potential to become an important pillar in your content marketing mix.
Do it right and these high-converting "lead magnets" can continue to work for your content marketing machine long after the average blog post has ran out of steam.
But first, we need to move past the assumption that great eBooks are merely written and start building them with all the right parts!
Leader's Guide to Motivate People at WorkWeekdone.com
Motivation leads to higher performance, morale and productivity. Nevertheless, 30% of executives say that motivating their employees is their toughest job. We are here to help you out by giving answers to the following subjects:
- Why motivation matters?
- Cost of disengaged employees
- What really motivates people? Science and data
- Practical 6 step guide to motivate people at work
Padrões de deploy para DevOps e Entrega Contínua, por Danilo SatoThoughtworks
Práticas de DevOps e Entrega Contínua ajudam a aumentar a frequência de deploys na sua empresa, ao mesmo tempo aumentando a estabilidade e robustez do sistema em produção. Com o foco em automação, é possível realizar diversos deploys por dia, porém é comum encontrar resistência do time de operações quando você tenta
colocar isso em prática. Nesta palestra iremos apresentar alguns padrões de deploy que irão te ajudar a diminuir o risco ao implantar novas versões de seus sistemas e aplicativos em produção e discutiremos como estreitar a colaboração
entre as equipes de desenvolvimento e de operações para implantar DevOps na sua empresa.
Exemplos do uso de Big Data para guiar decisões de design de UX em um contexto de melhoria contínua de produto.
Uma apresentação em vídeo do conteúdo está disponível em: https://vimeo.com/265831911
Esse estudo foi inicialmente apresentado no Interaction South America 2017 e novamente foi apresentado no Superlógica Labs, que é o vídeo do link do vídeo acima.
Segunda versão da minha palestra sobre Agilidade para o Encontro Locaweb, desta vez com uma história mais detalhada de Lean. Faltou tempo para falar tudo :-) Vou encurtar para a próxima versão.
BOA Apresentações (www.sitedaboa.com.br)
Somos uma agência de design especializada em Apresentações Inteligentes que proporcionam
resultados e soluções completas para nossos Clientes.
Palestra na semana global do empreendedorismo na Plug and work
https://eventioz.com.br/e/desenvolvendo-prototipos-de-startups-em-python
Esta palestra tem a proposta de apresentar a linguagem Python como solução para o desenvolvimento de protótipos e MVP para startups. Mostrar como empreendedores podem desenvolver seus próprios protótipos sem dependender da contratação de desenvolvedores profissionais e ter seu MVP funcionando em poucos dias com a ajuda de Python e seus web frameworks.
Revisitando as Práticas de Engenharia ÁgilDanilo Sato
Slides da minha palestra na QCon SP 2013:
Agile virou mainstream: hoje em dia é difícil encontrar um time que não esteja seguindo um processo ágil. No entanto os processos mais comuns focam mais nas práticas gerenciais e não tanto nas práticas de engenharia. Na minha experiência com Métodos Ágeis, a falta de disciplina técnica é um dos principais impedimentos para criar equipes altamente produtivas. Nesta palestra eu pretendo revisitar as práticas de engenharia ágil, desde as originalmente propostas por XP há mais de dez anos atrás - como TDD, refatoração ou programação em par - até ideias mais recentes - como DevOps, infraestrutura como código e pipelines de deployment. Ao invés de focar no "O que?" de cada prática, pretendo tomar uma abordar mais profunda, focando no "Por quê?", nos comportamentos e nos resultados esperados de uma equipe que aplica as práticas com sucesso.
O que você NÃO aprendeu sobre Programação Orientada a ObjetosDanilo Sato
Slides da minha palestra na RubyConf BR 2013
Ruby é uma linguagem orientada a objetos, porém a maneira como aprendemos orientação a objetos geralmente foca no "O que?" e pouco no "Por quê?". Aprendemos o que é herança, polimorfismo, as diferenças entre classes e objetos, mas não discutimos questões mais relevantes como: o que caracteriza um bom design OO? Quais as vantagens e desvantagens de usar herança? Como OO me ajuda a resolver problemas do dia a dia? Nesta palestra vamos abordar estas e outras questões de design e modelagem OO através de exemplos. Pretendo desbancar alguns mitos - como modelar OO é modelar o mundo real - assim como compartilhar alguns princípios para ajudar você e seu time a melhorar a qualidade do código da sua aplicação Ruby.
Padrões de deploy para DevOps e Entrega Contínua, por Danilo SatoThoughtworks
Práticas de DevOps e Entrega Contínua ajudam a aumentar a frequência de deploys na sua empresa, ao mesmo tempo aumentando a estabilidade e robustez do sistema em produção. Com o foco em automação, é possível realizar diversos deploys por dia, porém é comum encontrar resistência do time de operações quando você tenta
colocar isso em prática. Nesta palestra iremos apresentar alguns padrões de deploy que irão te ajudar a diminuir o risco ao implantar novas versões de seus sistemas e aplicativos em produção e discutiremos como estreitar a colaboração
entre as equipes de desenvolvimento e de operações para implantar DevOps na sua empresa.
Exemplos do uso de Big Data para guiar decisões de design de UX em um contexto de melhoria contínua de produto.
Uma apresentação em vídeo do conteúdo está disponível em: https://vimeo.com/265831911
Esse estudo foi inicialmente apresentado no Interaction South America 2017 e novamente foi apresentado no Superlógica Labs, que é o vídeo do link do vídeo acima.
Segunda versão da minha palestra sobre Agilidade para o Encontro Locaweb, desta vez com uma história mais detalhada de Lean. Faltou tempo para falar tudo :-) Vou encurtar para a próxima versão.
BOA Apresentações (www.sitedaboa.com.br)
Somos uma agência de design especializada em Apresentações Inteligentes que proporcionam
resultados e soluções completas para nossos Clientes.
Palestra na semana global do empreendedorismo na Plug and work
https://eventioz.com.br/e/desenvolvendo-prototipos-de-startups-em-python
Esta palestra tem a proposta de apresentar a linguagem Python como solução para o desenvolvimento de protótipos e MVP para startups. Mostrar como empreendedores podem desenvolver seus próprios protótipos sem dependender da contratação de desenvolvedores profissionais e ter seu MVP funcionando em poucos dias com a ajuda de Python e seus web frameworks.
Revisitando as Práticas de Engenharia ÁgilDanilo Sato
Slides da minha palestra na QCon SP 2013:
Agile virou mainstream: hoje em dia é difícil encontrar um time que não esteja seguindo um processo ágil. No entanto os processos mais comuns focam mais nas práticas gerenciais e não tanto nas práticas de engenharia. Na minha experiência com Métodos Ágeis, a falta de disciplina técnica é um dos principais impedimentos para criar equipes altamente produtivas. Nesta palestra eu pretendo revisitar as práticas de engenharia ágil, desde as originalmente propostas por XP há mais de dez anos atrás - como TDD, refatoração ou programação em par - até ideias mais recentes - como DevOps, infraestrutura como código e pipelines de deployment. Ao invés de focar no "O que?" de cada prática, pretendo tomar uma abordar mais profunda, focando no "Por quê?", nos comportamentos e nos resultados esperados de uma equipe que aplica as práticas com sucesso.
O que você NÃO aprendeu sobre Programação Orientada a ObjetosDanilo Sato
Slides da minha palestra na RubyConf BR 2013
Ruby é uma linguagem orientada a objetos, porém a maneira como aprendemos orientação a objetos geralmente foca no "O que?" e pouco no "Por quê?". Aprendemos o que é herança, polimorfismo, as diferenças entre classes e objetos, mas não discutimos questões mais relevantes como: o que caracteriza um bom design OO? Quais as vantagens e desvantagens de usar herança? Como OO me ajuda a resolver problemas do dia a dia? Nesta palestra vamos abordar estas e outras questões de design e modelagem OO através de exemplos. Pretendo desbancar alguns mitos - como modelar OO é modelar o mundo real - assim como compartilhar alguns princípios para ajudar você e seu time a melhorar a qualidade do código da sua aplicação Ruby.
Slides from my session at the Atlanta Software Craftsmanship meetup on "Refactoring at Large". Covering examples of refactoring in Java, Ruby/Rails and some ways to make architecture changes in a safer and step-by-step way
Slides from my session at QCon SP on "Refactoring at Large". Covering examples of refactoring in Java, Ruby/Rails and some ways to make architecture changes in a safer and step-by-step way
22. 1. Incremental é melhor que “big bang”
PRINCÍPIOS PARA ENTREGAS
DE BAIXO RISCO
23. 1. Incremental é melhor que “big bang”
2. Implantação != Entrega
PRINCÍPIOS PARA ENTREGAS
DE BAIXO RISCO
24. 1. Incremental é melhor que “big bang”
2. Implantação != Entrega
3. Foque em entregar lotes pequenos
PRINCÍPIOS PARA ENTREGAS
DE BAIXO RISCO
25. 1. Incremental é melhor que “big bang”
2. Implantação != Entrega
3. Foque em entregar lotes pequenos
4. Qualidade deve estar embutida no
processo
PRINCÍPIOS PARA ENTREGAS
DE BAIXO RISCO
26. 1. Mudança paralela
2. Implantação Azul-Verde
3. Implantação Canário
4. Feature Toggles
5. Entrega no Escuro
PADRÕES DE DEPLOY
27. MUDANÇA PARALELA
Também conhecida como “Expansão e Contração”
http://www.thoughtworks.com/insights/blog/mudança-paralela
17https://www.flickr.com/photos/telstar/8246798446
28. 1. EXPANSÃO
18
class Grid {
private Cell[][] cells;
…
!
public void addCell(int x, int y, Cell cell) {
cells[x][y] = cell;
}
public Cell fetchCell(int x, int y) {
return cells[x][y];
}
!
!
public boolean isEmpty(int x, int y) {
return cells[x][y] == null;
}
!
!
!
}
29. 1. EXPANSÃO
19
class Grid {
private Cell[][] cells;
…
!
public void addCell(int x, int y, Cell cell) {
cells[x][y] = cell;
}
!
public Cell fetchCell(int x, int y) {
return cells[x][y];
}
!
!
!
public boolean isEmpty(int x, int y) {
return cells[x][y] == null;
}
!
!
!
}
30. 1. EXPANSÃO
20
class Grid {
private Cell[][] cells;
private Map<Coordinate, Cell> newCells;
…
!
public void addCell(int x, int y, Cell cell) {
cells[x][y] = cell;
}
public void addCell(Coordinate coordinate, Cell cell) {
newCells.put(coordinate, cell);
}
public Cell fetchCell(int x, int y) {
return cells[x][y];
}
public Cell fetchCell(Coordinate coordinate) {
return newCells.get(coordinate);
}
public boolean isEmpty(int x, int y) {
return cells[x][y] == null;
}
public boolean isEmpty(Coordinate coordinate) {
return !newCells.containsKey(coordinate);
}
}
44. IMPLANTAÇÃO CANÁRIO
34
Nova Versão
Versão Antiga
Servidor
web
Servidor de
aplicação
Servidor de
BD
Servidor
web
Servidor de
aplicação
Servidor de
BD
RoteadorUsuários
Todos os
usuários
45. IMPLANTAÇÃO CANÁRIO
35
Nova Versão
Versão Antiga
Servidor
web
Servidor de
aplicação
Servidor de
BD
Servidor
web
Servidor de
aplicação
Servidor de
BD
RoteadorUsuários
Maior parte dos
usuários
(95%)
Alguns
usuários
(5%)
46. IMPLANTAÇÃO CANÁRIO
36
Nova Versão
Versão Antiga
Servidor
web
Servidor de
aplicação
Servidor de
BD
Servidor
web
Servidor de
aplicação
Servidor de
BD
Usuários Roteador
Alguns
usuários
(2%)
Maior parte
dos usuários
(98%)
47. IMPLANTAÇÃO CANÁRIO
37
Nova Versão
Versão Antiga
Servidor
web
Servidor de
aplicação
Servidor de
BD
Servidor
web
Servidor de
aplicação
Servidor de
BD
Usuários
Todos os
usuários
Roteador
49. FEATURE TOGGLE
39
share_with_friends = false
Googlehttp://www.devopsnapratica.com.br
Livro Devops na Prática: Entrega de Software Confiável e Automatizada
Configuração:
50. FEATURE TOGGLE
40
share_with_friends = true
Googlehttp://www.devopsnapratica.com.br
Livro Devops na Prática: Entrega de Software Confiável e Automatizada
Configuração:
53. ENTREGA NO ESCURO
43
Googlehttp://facebook.com
Web Page Title
Phasellus nulla risus, semper non dictum semper, congue
vitae augue. Nunc vulputate ligula eget neque tempus. Maria
disse
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Curabitur eget ultrices velit.
Suspendisse ut justo elementum felis facilisis aliquam ut
sit amet mi. Praesent sit amet venenatis eros. Fusce est
tellus, congue ac augue in, congue elementum quam.João
disse
João
Backend de Chat
Googlehttp://facebook.com
Web Page Title
Phasellus nulla risus, semper non dictum semper, congue
vitae augue. Nunc vulputate ligula eget neque tempus. Maria
disse
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Curabitur eget ultrices velit.
Suspendisse ut justo elementum felis facilisis aliquam ut
sit amet mi. Praesent sit amet venenatis eros. Fusce est
tellus, congue ac augue in, congue elementum quam.João
disse
Maria
54. ENTREGA NO ESCURO
44
Googlehttp://facebook.com
Web Page Title
Phasellus nulla risus, semper non dictum semper, congue
vitae augue. Nunc vulputate ligula eget neque tempus. Maria
disse
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Curabitur eget ultrices velit.
Suspendisse ut justo elementum felis facilisis aliquam ut
sit amet mi. Praesent sit amet venenatis eros. Fusce est
tellus, congue ac augue in, congue elementum quam.João
disse
João
Backend de Chat
Googlehttp://facebook.com
Web Page Title
Phasellus nulla risus, semper non dictum semper, congue
vitae augue. Nunc vulputate ligula eget neque tempus. Maria
disse
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Curabitur eget ultrices velit.
Suspendisse ut justo elementum felis facilisis aliquam ut
sit amet mi. Praesent sit amet venenatis eros. Fusce est
tellus, congue ac augue in, congue elementum quam.João
disse
Maria