Este documento fornece dicas e estratégias para desenvolvedores se tornarem profissionais melhores. Ele enfatiza a importância de focar na simplicidade, testes, comunidades e soft skills. O documento também discute como evitar armadilhas como reinventar a roda e manter o código limpo e organizado.
A influência do Test-Driven Design no projeto de classes e no design em siste...Toni Esteves
O documento discute os benefícios do Test Driven Development (TDD) no projeto de software orientado a objetos. Também aborda outros tópicos como design evolutivo, refatoração, integração contínua e a importância de testes e feedback rápido no desenvolvimento ágil.
O documento discute os benefícios de se ter um perfil multidisciplinar no desenvolvimento de software, promovendo a colaboração entre testadores, desenvolvedores e outros papéis. Defende a adoção do "Tipo T", que envolve ter conhecimentos em várias áreas como teste, programação e negócios, e trabalhar em pares rotativos para melhorar o foco, transferir conhecimento e reduzir riscos nos projetos. Também aborda a importância da cultura ágil, do feedback constante e do aprendizado contínuo para o
Este documento fornece dicas e lembretes sobre gerenciamento de projetos, incluindo a importância da comunicação, do controle do escopo e da documentação, e da necessidade de seguir processos e assumir erros de forma honesta.
O documento apresenta uma introdução ao desenvolvimento guiado por testes (TDD). Ele discute os conceitos fundamentais do TDD como escrever testes antes da implementação, design incremental e o mantra "RED-GREEN-REFACTOR". O documento também aborda tópicos como mock objects e os benefícios do TDD como redução de bugs e incentivo à simplicidade do código.
O documento apresenta uma agenda para um treinamento sobre Test-Driven Development (TDD). A agenda inclui introduções, um exercício de coding dojo, explicações sobre as três leis e o ciclo de TDD, refatoração, princípios SOLID e a Lei de Demeter, além de uma sessão sobre ferramentas e frameworks.
O documento discute a diferença entre homens e meninos no desenvolvimento de sistemas para o mundo real. Homens não se preocupam apenas com a estética do código, mas também com aspectos como realidade, administrabilidade, disponibilidade, debugabilidade, escalabilidade e performance no runtime. Falhas inevitavelmente ocorrerão e sistemas precisam ser projetados para lidar com elas.
Este documento resume os principais conceitos de Scrum e eXtreme Programming (XP). Scrum é um framework ágil para gestão e entrega de produtos complexos, utilizando eventos como Sprints, Planning Poker e Scrum Daily. XP é uma metodologia ágil focada em práticas como programação em pares, integração contínua e desenvolvimento guiado por testes. O documento explica como essas abordagens ágeis promovem entregas frequentes com foco na satisfação do cliente.
Este documento fornece dicas para juniores construírem suas carreiras em PHP, incluindo: 1) como produzir códigos profissionais desde o início, 2) como não ser desrespeitado em fóruns, 3) como conseguir ajuda da comunidade PHP.
A influência do Test-Driven Design no projeto de classes e no design em siste...Toni Esteves
O documento discute os benefícios do Test Driven Development (TDD) no projeto de software orientado a objetos. Também aborda outros tópicos como design evolutivo, refatoração, integração contínua e a importância de testes e feedback rápido no desenvolvimento ágil.
O documento discute os benefícios de se ter um perfil multidisciplinar no desenvolvimento de software, promovendo a colaboração entre testadores, desenvolvedores e outros papéis. Defende a adoção do "Tipo T", que envolve ter conhecimentos em várias áreas como teste, programação e negócios, e trabalhar em pares rotativos para melhorar o foco, transferir conhecimento e reduzir riscos nos projetos. Também aborda a importância da cultura ágil, do feedback constante e do aprendizado contínuo para o
Este documento fornece dicas e lembretes sobre gerenciamento de projetos, incluindo a importância da comunicação, do controle do escopo e da documentação, e da necessidade de seguir processos e assumir erros de forma honesta.
O documento apresenta uma introdução ao desenvolvimento guiado por testes (TDD). Ele discute os conceitos fundamentais do TDD como escrever testes antes da implementação, design incremental e o mantra "RED-GREEN-REFACTOR". O documento também aborda tópicos como mock objects e os benefícios do TDD como redução de bugs e incentivo à simplicidade do código.
O documento apresenta uma agenda para um treinamento sobre Test-Driven Development (TDD). A agenda inclui introduções, um exercício de coding dojo, explicações sobre as três leis e o ciclo de TDD, refatoração, princípios SOLID e a Lei de Demeter, além de uma sessão sobre ferramentas e frameworks.
O documento discute a diferença entre homens e meninos no desenvolvimento de sistemas para o mundo real. Homens não se preocupam apenas com a estética do código, mas também com aspectos como realidade, administrabilidade, disponibilidade, debugabilidade, escalabilidade e performance no runtime. Falhas inevitavelmente ocorrerão e sistemas precisam ser projetados para lidar com elas.
Este documento resume os principais conceitos de Scrum e eXtreme Programming (XP). Scrum é um framework ágil para gestão e entrega de produtos complexos, utilizando eventos como Sprints, Planning Poker e Scrum Daily. XP é uma metodologia ágil focada em práticas como programação em pares, integração contínua e desenvolvimento guiado por testes. O documento explica como essas abordagens ágeis promovem entregas frequentes com foco na satisfação do cliente.
Este documento fornece dicas para juniores construírem suas carreiras em PHP, incluindo: 1) como produzir códigos profissionais desde o início, 2) como não ser desrespeitado em fóruns, 3) como conseguir ajuda da comunidade PHP.
Este documento apresenta uma proposta de trabalho sobre escalas. Os alunos devem responder a perguntas sobre quando usar escalas, os tipos de escalas existentes e como representar objetos em desenhos à escala. Eles devem também criar uma apresentação em PowerPoint sobre o tema.
O documento apresenta uma introdução ao Scrum e metodologias ágeis, descrevendo:
1) Os princípios do Scrum como um framework ágil para gestão de projetos de software através de ciclos iterativos e entrega contínua de valor;
2) As diferenças entre metodologias tradicionais e ágeis, enfatizando a colaboração, adaptabilidade e valor dado ao cliente nas ágeis;
3) Os papéis e práticas do Scrum como Sprints, Daily Scrum e Retrospectivas.
Apresentação sobre como é possível aprender com o modelo Toyota de desenvolvimento de produtos e aplicar as suas idéias no desenvolvimento de Software.
O documento discute as vantagens e desvantagens de duas tecnologias populares para desenvolvimento web Java: Java EE e Spring Framework. Defensores de ambos os lados fazem argumentos sobre qual tecnologia é melhor ou mais apropriada para diferentes casos de uso. A discussão também aborda preocupações sobre a direção futura e manutenção de cada tecnologia.
O documento apresenta os princípios e práticas do Extreme Programming (XP), uma metodologia ágil de desenvolvimento de software que enfatiza a colaboração, adaptação a mudanças e feedback contínuo. O XP surgiu em um projeto da Chrysler em 1996 e propõe ciclos curtos de desenvolvimento, planejamento incremental, testes automatizados e integração contínua.
O documento apresenta os princípios e práticas do Extreme Programming (XP), abordando sua filosofia de abraçar a mudança e valorizar as pessoas. Descreve como o XP envolve ciclos curtos de desenvolvimento, planejamento incremental, testes automatizados e colaboração constante entre times e clientes.
O documento apresenta uma breve introdução sobre metodologias ágeis, desde como surgiram até os principais métodos e técnicas ágeis. É descrita a crise de software dos anos 1980 e como as metodologias ágeis surgiram para resolver esses problemas, com destaque para o Manifesto Ágil criado em 2001. Os principais métodos ágeis como Scrum, XP e Kanban são resumidos, assim como várias técnicas como histórias de usuário, daily meetings e programação em par.
1) O documento apresenta dicas para se tornar um programador pragmático, focando em princípios como simplicidade, reutilização de código, manutenibilidade e adaptabilidade.
2) É destacada a importância de ter um portfólio de conhecimento atualizado com novas linguagens, livros e cursos para se manter relevante no mercado.
3) Ferramentas básicas como controle de versão, editores de texto e debuggers são apresentadas como essenciais para o trabalho do programador pragmático.
O documento apresenta os principais conceitos e boas práticas de Lean User Experience. Resume que a abordagem lean prega desenvolver sistematicamente pessoas e processos para oferecer valor consumindo os menores recursos, e que experimentação constante com hipóteses validadas por métricas é essencial para aprendizagem e melhoria contínua.
Este documento discute estruturação de projetos JavaScript usando módulos com RequireJS e testes com Jasmine. Primeiro, explica os benefícios de estruturar o código em módulos para reduzir acoplamento e dependências implícitas. Em seguida, apresenta o framework Jasmine para escrever testes de comportamento (BDD) e guiar o design antes da implementação. Por fim, resume dizendo que estrutura e testes resultam em mais flexibilidade, sossego e qualidade no desenvolvimento.
O documento discute os benefícios de se ter um perfil multidisciplinar no desenvolvimento de software, promovendo a colaboração entre testadores, desenvolvedores e outros papéis. Defende a adoção do "Tipo T", que envolve ter conhecimentos em várias áreas como teste, programação e negócios, e trabalhar em pares realizando diferentes atividades. Apresenta também técnicas como programação em par e testes ágeis para melhorar a comunicação e reduzir riscos nos projetos.
O documento apresenta um treinamento sobre desenvolvimento de software limpo e qualidade de código. Ele discute princípios como clean code, boas práticas de programação, ferramentas para teste e controle de versão que auxiliam na manutenção de código limpo e de qualidade.
Este documento descreve a jornada de uma equipe de TI para adotar métodos ágeis como Scrum. Inicialmente, a equipe via apenas problemas e sobrecarga. Após treinamentos, eles começaram a limitar o trabalho em andamento e criaram artefatos como um quadro de tarefas. Isso melhorou a entrega de valor e a cultura da equipe. Eles continuaram aperfeiçoando práticas como integração contínua e testes para manter a qualidade. A adoção de métodos ágeis trouxe muitos benefícios à
Métodos Ágeis: O que é folclore e o que é real? (QCON SP 2012)Maurício Aniche
Minha palestra sobre fatos e folclores comuns entre praticantes de metodologias ágeis e o que a ciência pensa disso.
Apresentei no dia 4 de agosto de 2012, na QCON SP, organizado pela Caelum.
O documento discute as vantagens e desafios da prática de Test-Driven Development (TDD). A prática de TDD pode melhorar a qualidade do código e do projeto de classes, mas não garante esses resultados automaticamente. Os desenvolvedores precisam estar atentos aos feedbacks dos testes para refatorar o código continuamente e melhorar o projeto.
O documento resume os principais conceitos e práticas do eXtreme Programming (XP), uma metodologia ágil de desenvolvimento de software que enfatiza a comunicação, feedback, simplicidade, respeito e coragem. O XP propõe doze práticas como programação pareada, testes automatizados, refatoração e integração contínua para entregar valor ao cliente de forma incremental.
O documento apresenta os principais pontos sobre modelagem ágil de acordo com uma palestra. A modelagem ágil é guiada por valores como comunicação, simplicidade e feedback, além de princípios como ter o software como objetivo principal, modelar com um propósito e encarar a mudança. A documentação ágil deve fornecer valor máximo ao cliente de forma magra, com foco no objetivo.
Como TDD pode influenciar na construção do seu Produto?Raphael Paiva
O documento discute como o TDD (Test Driven Development) pode influenciar positivamente na construção de produtos, levando a um design mais sólido e incrementais. O TDD fornece feedback imediato sobre designs ruins e incentiva pensar no código antes de escrevê-lo. Isso é ilustrado pelo caso do motor de renderização de imagens JTrace, onde o TDD permitiu que erros fossem capturados facilmente e resultou em uma interface enxuta e fácil de usar.
Com o grande crescimento dos micro-frameworks, estamos com muito mais liberdade para criamos a nossa própria estrutura. Porém com grandes poderes temos grandes... problemas. Sempre queremos resolver todos os problemas do mundo antes mesmo da aplicação nascer. Nessa palestra eu mostro um pouco dos grandes desafios de montar a própria estrutura baseada em MVC ou outros. Exemplos de como não cair nessas armadilhas de prever problemas que ainda não existem.
O Programador Pragmático se concentra no processo fundamental do desenvolvimento de software:
a partir de um requisito, produzir código funcional e de fácil manutenção que agrade aos usuários.
Sem se ater a uma tecnologia específica, esta obra aborda tópicos que vão do desenvolvimento da carreira a técnicas de projeto para manter seu código flexível e fácil de adaptar
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareLetticia Nicoli
Palestra realizada com Lucas Teles na trilha de Arquitetura .NET do TDC SP 2019.
Nessa apresentação iremos discutir um dos grandes males do desenvolvimento de software de mercado, a generalização prematura, como somos péssimos em prever o futuro e como isso afeta nossas decisões no código do dia a dia. Vamos olhar os males da generalização prematura, como talvez seja melhor deixar com que a duplicação de código apareça e cresça antes de tentarmos generalizar. Somos horríveis em prever o futuro, então a solução é não prever! Além de discutir o reflexo direto desse efeito, vamos abordar a complexidade acidental, desenvolvimento em camadas, frameworks corporativos, etc? E como é fácil focar nisso antes do que realmente importa, fazer o mínimo pra entregar valor!
eXtreme Programming - Apresentação do Grupo Pará na disciplina Métodos Ágeis de Desenvolvimento de Software (prof. Márcio Sete) da Pós-graduacao em engenharia de software centrada em métodos ágeis - UNA - 03/09/2010
Este documento apresenta uma proposta de trabalho sobre escalas. Os alunos devem responder a perguntas sobre quando usar escalas, os tipos de escalas existentes e como representar objetos em desenhos à escala. Eles devem também criar uma apresentação em PowerPoint sobre o tema.
O documento apresenta uma introdução ao Scrum e metodologias ágeis, descrevendo:
1) Os princípios do Scrum como um framework ágil para gestão de projetos de software através de ciclos iterativos e entrega contínua de valor;
2) As diferenças entre metodologias tradicionais e ágeis, enfatizando a colaboração, adaptabilidade e valor dado ao cliente nas ágeis;
3) Os papéis e práticas do Scrum como Sprints, Daily Scrum e Retrospectivas.
Apresentação sobre como é possível aprender com o modelo Toyota de desenvolvimento de produtos e aplicar as suas idéias no desenvolvimento de Software.
O documento discute as vantagens e desvantagens de duas tecnologias populares para desenvolvimento web Java: Java EE e Spring Framework. Defensores de ambos os lados fazem argumentos sobre qual tecnologia é melhor ou mais apropriada para diferentes casos de uso. A discussão também aborda preocupações sobre a direção futura e manutenção de cada tecnologia.
O documento apresenta os princípios e práticas do Extreme Programming (XP), uma metodologia ágil de desenvolvimento de software que enfatiza a colaboração, adaptação a mudanças e feedback contínuo. O XP surgiu em um projeto da Chrysler em 1996 e propõe ciclos curtos de desenvolvimento, planejamento incremental, testes automatizados e integração contínua.
O documento apresenta os princípios e práticas do Extreme Programming (XP), abordando sua filosofia de abraçar a mudança e valorizar as pessoas. Descreve como o XP envolve ciclos curtos de desenvolvimento, planejamento incremental, testes automatizados e colaboração constante entre times e clientes.
O documento apresenta uma breve introdução sobre metodologias ágeis, desde como surgiram até os principais métodos e técnicas ágeis. É descrita a crise de software dos anos 1980 e como as metodologias ágeis surgiram para resolver esses problemas, com destaque para o Manifesto Ágil criado em 2001. Os principais métodos ágeis como Scrum, XP e Kanban são resumidos, assim como várias técnicas como histórias de usuário, daily meetings e programação em par.
1) O documento apresenta dicas para se tornar um programador pragmático, focando em princípios como simplicidade, reutilização de código, manutenibilidade e adaptabilidade.
2) É destacada a importância de ter um portfólio de conhecimento atualizado com novas linguagens, livros e cursos para se manter relevante no mercado.
3) Ferramentas básicas como controle de versão, editores de texto e debuggers são apresentadas como essenciais para o trabalho do programador pragmático.
O documento apresenta os principais conceitos e boas práticas de Lean User Experience. Resume que a abordagem lean prega desenvolver sistematicamente pessoas e processos para oferecer valor consumindo os menores recursos, e que experimentação constante com hipóteses validadas por métricas é essencial para aprendizagem e melhoria contínua.
Este documento discute estruturação de projetos JavaScript usando módulos com RequireJS e testes com Jasmine. Primeiro, explica os benefícios de estruturar o código em módulos para reduzir acoplamento e dependências implícitas. Em seguida, apresenta o framework Jasmine para escrever testes de comportamento (BDD) e guiar o design antes da implementação. Por fim, resume dizendo que estrutura e testes resultam em mais flexibilidade, sossego e qualidade no desenvolvimento.
O documento discute os benefícios de se ter um perfil multidisciplinar no desenvolvimento de software, promovendo a colaboração entre testadores, desenvolvedores e outros papéis. Defende a adoção do "Tipo T", que envolve ter conhecimentos em várias áreas como teste, programação e negócios, e trabalhar em pares realizando diferentes atividades. Apresenta também técnicas como programação em par e testes ágeis para melhorar a comunicação e reduzir riscos nos projetos.
O documento apresenta um treinamento sobre desenvolvimento de software limpo e qualidade de código. Ele discute princípios como clean code, boas práticas de programação, ferramentas para teste e controle de versão que auxiliam na manutenção de código limpo e de qualidade.
Este documento descreve a jornada de uma equipe de TI para adotar métodos ágeis como Scrum. Inicialmente, a equipe via apenas problemas e sobrecarga. Após treinamentos, eles começaram a limitar o trabalho em andamento e criaram artefatos como um quadro de tarefas. Isso melhorou a entrega de valor e a cultura da equipe. Eles continuaram aperfeiçoando práticas como integração contínua e testes para manter a qualidade. A adoção de métodos ágeis trouxe muitos benefícios à
Métodos Ágeis: O que é folclore e o que é real? (QCON SP 2012)Maurício Aniche
Minha palestra sobre fatos e folclores comuns entre praticantes de metodologias ágeis e o que a ciência pensa disso.
Apresentei no dia 4 de agosto de 2012, na QCON SP, organizado pela Caelum.
O documento discute as vantagens e desafios da prática de Test-Driven Development (TDD). A prática de TDD pode melhorar a qualidade do código e do projeto de classes, mas não garante esses resultados automaticamente. Os desenvolvedores precisam estar atentos aos feedbacks dos testes para refatorar o código continuamente e melhorar o projeto.
O documento resume os principais conceitos e práticas do eXtreme Programming (XP), uma metodologia ágil de desenvolvimento de software que enfatiza a comunicação, feedback, simplicidade, respeito e coragem. O XP propõe doze práticas como programação pareada, testes automatizados, refatoração e integração contínua para entregar valor ao cliente de forma incremental.
O documento apresenta os principais pontos sobre modelagem ágil de acordo com uma palestra. A modelagem ágil é guiada por valores como comunicação, simplicidade e feedback, além de princípios como ter o software como objetivo principal, modelar com um propósito e encarar a mudança. A documentação ágil deve fornecer valor máximo ao cliente de forma magra, com foco no objetivo.
Como TDD pode influenciar na construção do seu Produto?Raphael Paiva
O documento discute como o TDD (Test Driven Development) pode influenciar positivamente na construção de produtos, levando a um design mais sólido e incrementais. O TDD fornece feedback imediato sobre designs ruins e incentiva pensar no código antes de escrevê-lo. Isso é ilustrado pelo caso do motor de renderização de imagens JTrace, onde o TDD permitiu que erros fossem capturados facilmente e resultou em uma interface enxuta e fácil de usar.
Com o grande crescimento dos micro-frameworks, estamos com muito mais liberdade para criamos a nossa própria estrutura. Porém com grandes poderes temos grandes... problemas. Sempre queremos resolver todos os problemas do mundo antes mesmo da aplicação nascer. Nessa palestra eu mostro um pouco dos grandes desafios de montar a própria estrutura baseada em MVC ou outros. Exemplos de como não cair nessas armadilhas de prever problemas que ainda não existem.
O Programador Pragmático se concentra no processo fundamental do desenvolvimento de software:
a partir de um requisito, produzir código funcional e de fácil manutenção que agrade aos usuários.
Sem se ater a uma tecnologia específica, esta obra aborda tópicos que vão do desenvolvimento da carreira a técnicas de projeto para manter seu código flexível e fácil de adaptar
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareLetticia Nicoli
Palestra realizada com Lucas Teles na trilha de Arquitetura .NET do TDC SP 2019.
Nessa apresentação iremos discutir um dos grandes males do desenvolvimento de software de mercado, a generalização prematura, como somos péssimos em prever o futuro e como isso afeta nossas decisões no código do dia a dia. Vamos olhar os males da generalização prematura, como talvez seja melhor deixar com que a duplicação de código apareça e cresça antes de tentarmos generalizar. Somos horríveis em prever o futuro, então a solução é não prever! Além de discutir o reflexo direto desse efeito, vamos abordar a complexidade acidental, desenvolvimento em camadas, frameworks corporativos, etc? E como é fácil focar nisso antes do que realmente importa, fazer o mínimo pra entregar valor!
eXtreme Programming - Apresentação do Grupo Pará na disciplina Métodos Ágeis de Desenvolvimento de Software (prof. Márcio Sete) da Pós-graduacao em engenharia de software centrada em métodos ágeis - UNA - 03/09/2010
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareLucas Teles
Nessa apresentação iremos discutir um dos grandes males do desenvolvimento de software de mercado, a generalização prematura, como somos péssimos em prever o futuro e como isso afeta nossas decisões no código do dia a dia. Vamos olhar os males da generalização prematura, como talvez seja melhor deixar com que a duplicação de código apareça e cresça antes de tentarmos generalizar. Somos horríveis em prever o futuro, então a solução é não prever! Além de discutir o reflexo direto desse efeito, vamos abordar a complexidade acidental, desenvolvimento em camadas, frameworks corporativos, etc? E como é fácil focar nisso antes do que realmente importa, fazer o mínimo pra entregar valor!
O documento resume as principais dicas e conceitos apresentados no livro "O Programador Pragmático" de Andrew Hunt e David Thomas. Apresenta 70 dicas para programação pragmática, como evitar duplicação de código, estimar corretamente tarefas, testar continuamente e projetar para flexibilidade e reuso.
Planejamento de testes em um mundo ágilAriane Izac
Planejamento de Testes em um mundo ágil resume o seguinte:
1) No contexto ágil, os testadores deixam de ser os únicos responsáveis por garantir a qualidade e toda a equipe passa a assumir essa responsabilidade.
2) É importante planejar os testes considerando o contexto do projeto, priorizando riscos e automatizando casos que serão executados frequentemente.
3) A automação deve levar em conta fatores como maior risco, frequência de execução e linguagem para trazer mais valor ao longo do tempo.
Como não ferrar com a user experience - Campus Party 2012 Juliana Gaiba
Este documento fornece orientações sobre como projetar uma boa experiência do usuário (UX). Em três frases ou menos:
O documento discute como projetar uma experiência do usuário (UX) que seja fluida e envolvente para o usuário, enfatizando a importância de testes com usuários, prototipação visual e iterativa, e focar nos objetivos e fluxos principais do produto. Também fornece conselhos sobre como envolver equipes multidisciplinares e manter um mindset focado no usuário.
Wire 2010 - Entenda Software da Forma CorretaFabio Akita
Palestra sobre Open Source enquanto sistema complexo, emergencia, memética e explicação sobre como um projeto open source pode ser entendido como um sistema em seleção natural baseada em evolução darwinista.
1) O documento apresenta uma palestra sobre métodos ágeis, incluindo os benefícios de serem ágeis e técnicas como Extreme Programming e Scrum.
2) O palestrante fala sobre a importância de inspirar-se em líderes como Steve Jobs e sobre amar o que faz.
3) É enfatizado que ser ágil significa entregar valor de forma consistente e iterativa, e não apenas rápido.
2. Olá mundo!
● Tecnólogo em Análise e Dev de Sistemas -
UNIPAR
● MBA em Gerência de Projetos em T.I - FCV
● Analista de Sistemas - Matera
● Ex professor
● Investidor iniciante
● Amante de futebol
● Se aventurando no mundo custom
4. “Estamos descobrindo maneiras melhores de desenvolver
software, fazendo-o nós mesmos e ajudando outros a
fazerem o mesmo.” - Manifesto Ágil
Mas, na verdade, a maior parte do tempo estaremos
sozinhos: nós e a máquina. Essa é a hora de nos
fortalecermos como indivíduos.
Objetivo da talk
5. Por que EUquipe?
Equipe é um conjunto ou grupo de indivíduos aplicados
na realização de uma mesma tarefa ou trabalho.
EUquipe é você e um conjunto de skills (hard e soft)
necessárias, que de fato irá aplicar na realização de uma
tarefa ou trabalho.
6. Tenha sua razão e lembre-se dela
Qual foi a razão pelo qual
você escolheu ser dev?
Programação é difícil e às
vezes você fica frustrado.
Será essencial manter
esse motivo em mente
para cumpri-lo.
14. Não seja a vergonha da profisson
De um lado, vemos muitas pessoas de
mente aberta que contribuem para a
comunidade (projetos open source, palestras,
escrevendo artigos). Por outro lado,
encontramos pessoas que trollam novas
idéias, desrespeitam os recém-chegados e
demonstram comportamento rude com
todos ao seu redor.
16. Participe de comunidades
● Pessoas com o mesmo
interesse
● Compartilhar
conhecimentos
● Temas diversos
● Networking
● Ser lembrado
● Falar em público
● Conteúdos de altíssimo nível
e de graça
28. Descubra um jeito de pagar a dívida
Uma delas é a qualitividade (Por Klaus Wuestefeld):
● Alocar 20% ~ 50%
● Mandato: “Trabalhar na simplificação do código, do
processo e das ferramentas para maximizar a própria
produtividade.”
● Autonomia / Apoio
29. Precisamos ser profissionais, de fato!
“A diferença entre um trabalhador e um profissional é
que um trabalhador recebe ordens de seu chefe e um
profissional fornece informações aos seus
superiores.” - Uncle bob
30. Precisamos ser profissionais, de fato!
Paciente: “Meu braço dói.” Médico: “O que você
gostaria que eu fizesse?” Paciente: “Faça meu braço
parar de doer.” Médico: “Você quer que eu o
corte?”, Eu posso fazer isso.” paciente: ‘Não, eu só
quero que ele parar de doer.’ Médico: “Eu poderia
cortar todos os nervos de seu braço. Isso vai
impedi-lo.” Paciente: “Não há algo menos drástico
que você possa fazer? ” Médico: “ Opa, desculpe,
hora do meu descanso.”
fonte: https://sites.google.com/site/unclebobconsultingllc/blogs-by-robert-martin/saying-no
31. Precisamos ser profissionais, de fato!
Paciente: “Quero que você corte meu braço.” Médico:
“O que há de errado com seu braço?” Paciente: “Dói.
Estou cansado disso. Apenas pare com isso. ” Médico: “
Deixe-me ver seu braço. Hummm. Parece que você
tem uma entorse ou talvez uma fratura na linha do
cabelo. Deveríamos tomar alguns raios-X. ” Paciente: “
Não, apenas interrompa. ” Médico: “Senhor, eu não
cortei braços saudáveis. ” Paciente: “Mas estou
pagando. Você tem que fazer o que eu digo! ” Doutor: “
Não, senhor, eu não faço. Cortar seu braço violaria
meu juramento.
35. Foque na simplicidade
"Simplicidade é um pré-requisito para
confiabilidade". - Edsger W. Dijkstra
“Coisas simples são focadas, elas não
tratam de vários problemas”
“Muitas vezes, os desenvolvedores dizem
que algo é simples, mas eles querem dizer
fácil, porque querem dizer que é algo com
o qual estão familiarizados.”
Rich Hickey - Criador do Clojure
36. Foque na simplicidade
“Se alguém escolhe facilidade, as coisas se
movem rapidamente, mas a complexidade
acumulada matará o projeto ao longo do
tempo. Se a simplicidade é escolhida, o
projeto começa mais devagar porque é
preciso pensar sobre as coisas.”
"Os benefícios da simplicidade são:
facilidade de entendimento, facilidade de
alteração, facilidade de depuração,
flexibilidade.” Rich Hickey - Simple Made Easy
37. Grady Booch:
Código limpo é simples e direto.
Código limpo parece uma prosa bem
escrita. O código limpo nunca
obscurece a intenção dos designers,
mas é cheio de abstrações nítidas e
linhas de controle diretas.
38. David Thomas:
O código limpo pode ser lido e
aprimorado por um desenvolvedor
que não seja o autor original. Possui
testes de unidade e aceitação. Tem
nomes significativos. Ele fornece
uma maneira e não muitas
maneiras de fazer uma coisa.
39. Michael Feathers:
O código limpo sempre parece que foi escrito
por alguém que se importa. Não há nada óbvio
que você possa fazer para melhorar. Todas essas
coisas foram pensadas pelo autor do código e, se
você tentar imaginar melhorias, será levado de
volta para onde está, apreciando o código que
alguém deixou para você - código escrito por
alguém que se preocupava profundamente
com o ofício.
40. The good code
Não estresse o seu eu do futuro, FAÇA um código bem feito :)
45. Ferramentas de análise de código estático
“Eu gosto de pensar nas ferramentas de revisão de código
como sentinelas; eles cuidam de você enquanto você
escreve seu código e, de tempos em tempos (pré e / ou
pós confirmação, dependendo da ferramenta específica),
eles informam como você pode melhorar seu código” -
Autor desconhecido
50. Soft skills
Tenha a sua razão
Foque mais nas
montanhas
Seja especialista
Não use apenas
uma ferramenta
Ajude e seja ajudado
Não quebre janelas
Dívida técnica
Seja profissional
Não reinvente a roda
Foque no que é simples
Mostre o seu código para
alguém
Informações direto
da fonte
Ferramenta de análise de
código
Usar bem as ferramentas
Práticas ágeis Checklist
Testes
51. Por fim...
Software é difícil, não deixe que as pessoas lhe digam o
contrário. Quando você faz isso o tempo todo, você se
prejudica, mesmo que não perceba.
Cuide da sua saúde mental, seu cérebro precisa de uma
pausa, isso também faz parte da sua evolução.
52. Algumas referências
● THE WAY TO SOFTWARE MASTERY - Klaus Wuestefeld
● Simple Made Easy - Rich Hickey
● https://sites.google.com/site/unclebobconsultingllc/ -
Uncle Bob
● https://www.manifestoagil.com.br
● Broken windows theory - James Q. Wilson e George
Kelling
● https://martinfowler.com/