SlideShare una empresa de Scribd logo
1 de 71
Descargar para leer sin conexión
Como formar um programador 10x	


 	

 	

 	

 	

 	

 	

 	

 	

 	

 	

 	

 	

 	

 	

Luca Bastos	

 	

 	

 	

 	

 luca.bastos@concretesolutions.com.br	



 	

 	

 	

 	

 	

 	

 	

 	

 	

Noite Ágil - Agosto/2011	

 	

 	

 	

 	

 	

 	

 	

 	

 	

 	

 	

 	

 	

 	

Caelum SP
A m a i o r r i q u e z a d o h o m e m 
é a s u a i n c o m p l e t u d e . 
N e s s e p o n t o s o u a b a s t a d o. 
P a l av r a s q u e m e a c e i t a m c o m o s o u - e u n ã o a c e i t o. 

N ã o a g ü e n t o s e r a p e n a s u m s u j e i t o q u e a b r e p o r t a s , 
q u e p u x a v á l v u l a s , q u e o l h a o r e l ó g i o, 
q u e c o m p r a p ã o à s 6 h o r a s d a t a r d e , 
q u e v a i l á f o r a , q u e a p o n t a l á p i s , 
q u e v ê a u v a e t c . e t c . 

Pe r d o a i 
M a s e u p r e c i s o s e r O u t r o s . 
E u p e n s o r e n o v a r o h o m e m u s a n d o b o r b o l e t a s . 

M a n o e l d e B a r ro s
Quem sou:	


Desenvolvedor do tempo da Carochinha, ávido 
leitor e praticante sempre interessado em 
metodologias de desenvolvimento, 

desde antes de surgirem programação modular, 	

programação estruturada e todas as demais até
os dias de hoje.	




                          Meninos, eu vi. E vivi.
Onde trabalho: http://www.concretesolutions.com.br/	


A Concrete tem 10 anos com um portfólio de clientes 
bem variado no Brasil e no exterior. No início a maior 
demanda do mercado era para soluções de integração e 
assim foi natural a parceria com os grandes players como 	

Oracle, Red Hat, etc.

Atualmente a diversificação é bem grande e temos também
ótimos projetos nas áreas de cloud, mobile, web e lean
startups de tecnologia.	

Praticamos e pregamos o desenvolvimento ágil desde 2007.
Hoje temos 56% do faturamento usando Scrum e Kanban e
só 12% de projetos fechados.	
  
“Design and programming are human
  activities; forget that and all is lost.”

    	

 	

 	

 	

 	

 	

 	

 	

 	

Bjarne Stroustrup
    The C++ Programming Language, 2nd Ed, Section11.1, pág.363
Arbitrariamente vou definir um programador 10x
como aquele que sem ser gênio, tem pelo menos
um pouco das seguintes qualidades:	


-  inteligente (e com bons princípios éticos),	


-  personalidade que alie GTD a criatividade e mais 
boa interatividade com time,	


-  sabe programar e conhece as tecnologias do 
projeto 
(melhorar aqui é o foco desta apresentação)
Veremos o que fazer para elevar o nível de um 
programador iniciante	



e como criar condições de um dia ele vir a ser
um programador 10x.
Você conhece um programador 10x?
Melhor dizendo, 

reconhece um programador 10x?
Você contrataria alguém como 
os personagens das fotos seguintes?
Ops...	


Desculpa aí Milfont ...
Origem do meu interesse
no tema da apresentação	

   Ligue djá
Segundo o prof. Robert Glass, no livro de 2002
Facts and Fallacies of Software Engineering	


Fato 1: 	

O fator mais importante no trabalho com software
é a qualidade dos programadores.	



Fato 2:	

A diferença entre os melhores e os piores 
programadores pode ser de até 28 vezes.
A diferença de produtividade entre programadores
já foi motivo de preocupação de estudiosos como 
Bohem, De Marco, Spolsky e outros.
Steve McConnell também discute o que é um 
programador 10x e se é viável medir variações na 	

produtividade	


Ver último capítulo de Making Software, What
Really Works, and Why We Believe It, O’Reilly 2011
Origem do termo programador 10x	


Segundo um estudo de 1968 (ver *)

Diferenças entre o melhor e o pior entre 	

programadores com 7 anos de experiência, 	


        Tempo para “codar”	

                                   20x	

        Tempo para debugar	

                                   25x	

        Tamanho do código	

                                     5x	

        Tempo de execução do código	

                          10x	



* Making Software, What Really Works, cap.30, What Does 10x Mean? Steve McConnell
Segundo o mesmo McConnell (*), o tal estudo tem falhas
porque compara resultados de programadores usando
linguagens de baixo nível com outros usando linguagens
de alto nível	





       Tempo para “codar”	

                                   20x	

       Tempo para debugar	

                                   25x	

       Tamanho do código	

                                     5x	

       Tempo de execução do código	

                          10x	


 * Making Software, What Really Works, cap.30, What Does 10x Mean? Steve McConnell
Porém McConnell (*) repara que a diferença entre
os melhores e os piores pode ser considerada como
10x 	


   Tempo para “codar”	

                20x	

   Tempo para debugar	

   Tamanho do código	

   Tempo de execução do código	

                                    10 X	

                                        25x	

                                         5x	

                                        10x
Escolhi usar o termo 10x porque meu conceito de
10x está mais para os bons que podemos formar 
do que para os pontos extremos excepcionais que 
poderiam ser os tais 28x.
Mas eu conheço muitos bem acima do 10x	




Chegaram lá por diversos motivos dentre eles 
qualidades pessoais acima da média	




Vamos ver alguns que quase todos conhecem:
Não é com estes que estou preocupado	




É com os novos que contrataremos	




E supondo que nossos iniciantes são inteligentes, 
falarei sobre o que fazer para que se tornem 10x
em menos tempo
#Fatos	


Atualmente está difícil contratar programadores	



O mercado está aquecido e há poucos disponíveis	



Mais fácil contratar iniciantes e treiná-los até o
nível médio da equipe
Desafio número 1:	


Dar condições para o iniciante virar bom 
programador continuando sendo um ser humano 
(sem arrogância).
Opinião do Joel Spolsky:

Contrate um super star caso queira um produto 
acima da média.
Mas todo mundo conhece um super programador 
que ninguém quer na equipe.
Um super piloto de caça nem sempre se sujeitará 
as normas de segurança de um avião de carreira 
ou o barão vermelho pode não ter habilidade para 	

conviver com as demais pessoas.
Desafio número 2:	


Reconhecer os melhores.
E como reconhecer os melhores? 	




   a) Medindo a produtividade?	
  


   b) Existem outros meios de reconhecê-los?
Medir a produtividade	




Será fácil fazer isto?
Linhas de código?	



    Mas programadores espertos produzirão mais 
    escrevendo códigos mais longos

    Lembrando Dilbert: você obtem o que mede
Pontos de função? 

  	

Mas código ruim não gera mais pontos de função. 	
  
Número de histórias prontas?	



   Mas e a complexidade diferente de cada uma?
Então não consigo medir a produtividade?	


Para mim a resposta é não. 	


Parece até perda de tempo tentar. 	


Concordo com Martin Fowler em

http://www.martinfowler.com/bliki/CannotMeasureProductivity.html
Então como saber se um programador já é 10x?	



Se não se pode medir


Quais serão então os tais outros meios?	
  
Minha resposta: 

 	

 	

acompanhamento dia a dia	
  
Para nossa sorte, 

  	

os meios de acompanhamento úteis
  	

para reconhecer um programador 10x
São exatamente os mesmos 

  	

que possibilitam conduzir um iniciante 
  	

ao conceito 10x
- Programação pareada	



- Revisão de código	
  


- Compartilhamento de conhecimento,
workshops, práticas de dojos, etc.	
  


- TDD, boa comunicação, etc.
Primeiro resultado desta apresentação

Não é possível medir a produtividade dos 
programadores	



  	

 	

mas se pode avaliar cada um por meio de 
  	

 	

acompanhamento frequente.
Esta página foi intencionalmente deixada em branco
para que você pense no dia a dia do seu projeto
Impressões minhas:

Algumas práticas do desenvolvimento ágil 	

adequadas a elevar o nível dos iniciantes são 
deixadas de lado ao estimar um projeto. 	
  



Nem sempre o ambiente de desenvolvimento 
facilita o emprego destas práticas.
No seu projeto ou na sua empresa:	


- nas estimativas é previsto o pareamento?	
  
- ou cada desenvolvedor pega uma tarefa?	
  
- e há tempo para revisão de código?	
  
 - há práticas de disseminação de conhecimento? 	
  
 - o ambiente de trabalho facilita o pareamento? 
 existem baias? As mesas permitem pareamento?	
  
 - é fácil trocar de par ou os desenvolvedores tem 
 lugar fixo?
Considerando que uma boa parte dos 
desenvolvedores trabalha alocado nos clientes,


e que dentro do ambiente deles dificilmente
conseguimos tempo no projeto e espaço físico 
ideal,


só pode ser pegadinha do Malandro falar 
destas práticas.
Mesmo nas empresas cujo objetivo principal é o 
desenvolvimento de software, nem sempre há 
espaço físico propício às práticas citadas 


Também não é fácil encontrar imóveis e móveis 
ideais
Blog do @sumeet_moghe	





 http://www.learninggeneralist.com/2011/08/spatial-serendipity-key-to-social.html
Blog do @sumeet_moghe	





 http://www.learninggeneralist.com/2011/08/spatial-serendipity-key-to-social.html
Nosso ambiente na Concrete SP
Muitas vezes por pressões dos clientes ou pelo
exíguo time to market do produto, é difícil subtrair
tempo do projeto para cuidar dos processos (*) de 
melhoria contínua e renovação da equipe.	



* 	

Se não cuidar destes processos, então cuidado com a 
  	

lei de Brooks: “adicionar pessoas a um projeto atrasado 
  	

irá atrasá-lo ainda mais”
Desafio número 3 (este sim o mais difícil)	


1. Convencer os gestores das empresas da
importância destas práticas.	


2. Convencer os clientes que produto feito sob
encomenda só será bom e atualizado, se estiver
sob um processo de melhoria contínua. 
Portanto é preciso reservar tempo para isto.	


3. Convencer os desenvolvedores de são eles os
beneficiados e que também precisam doar tempo.
O passo 1, ao contrário do que dizem, costuma ser
o menos difícil: 
  	

convencer os chefes. 	



E eles tem acesso e mandato para convencer nossos 
clientes.
Porém ninguém se iluda. 	




Muito mais difícil é convencer os colegas, 	



   	

de que são parte interessada no processo de 
   	

melhoria e atualização e que 	
  


     também devem doar tempo.	
  
O desafio 3	



     	

é convencer


     	

 	

 	

convencer


     	

 	

 	

 	

 	

 	

convencer ...
Segundo resultado desta apresentação:

É preciso reservar tempo e esforço em prol da 
melhoria contínua.	




Alguns podem discordar mas para mim isto não 
deve ocorrer só por parte da empresa. 

É preciso convencer o desenvolvedor a também 
fazer a sua parte.
Práticas que ajudam a diminuir o gap técnico da
equipe e conduzem um iniciante ao conceito 10x
Relembrando programação pareada	


•  Fred Brooks e Larry Constantine já falavam disto	


•  Diminui o risco e evita o “truck factor” (Ceci Fernandes)	


•  Resultado do código costuma ser mais legível	


•  Ao contrário do que dizem, pode ser feito remoto	


•  Gasta mais tempo.	


•  Cansa mais a cabeça, nem todos suportam mesmo % / dia
Relembrando revisão de código	


•  Brooks também citava	


•  É uma prática aparentemente esquecida atualmente. 

•  Além de diminuir o “truck factor”, é mais uma chance de
descobrir defeitos

•  Parece funcionar melhor feito em grupo (ou par)

•  É mais fácil rever pequenos trechos de código em
pequenas janelas de tempo
Relembrando compartilhamento de conhecimento, 
workshops, práticas de dojos, etc.	


•  Atividades que exigem mais doação dos desenvolvedores
do que da direção da empresa

•  Geralmente feitos fora do horário de trabalho

•  Em alguns casos contam com participação de 
desenvolvedores de outras empresas	


•  Estimulam e dão oportunidade de afirmação aos que se
oferecem para estudar e apresentar temas
Relembrando TDD, boa comunicação, etc.	


• TDD pode diminuir o medo do iniciante de fazer uma
grande bobagem que acarrete muitas horas de debug

• TDD facilita a revisão de código	


• TDD retira bloqueios do tipo “se está funcionando não 
mexe”. Bloqueios deste tipo inibem iniciantes

•  Boa comunicação é como uma plantinha que precisa ser
regada todo dia. Nem sempre todos percebem o exato
momento em que a comunicação começa a ter ruídos.
O iniciante sofre mais com falha de comunicação
Terceiro resultado desta apresentação:

Práticas populares do XP porém já recomendadas 
desde a década de 70, junto com ações de 
disseminação de conhecimento e mais TDD, 
permitem avaliar a produtividade e elevar o nível 
médio dos times.	



De quebra diminuem o risco de falha do projeto e 
ainda preparam a equipe para maiores desafios
E o tal programador 10x?	


Não há como medir a produtividade 	

 	

#fato	
  

Dizer que um vale 10 vezes o outro é chute 	


Daí a definição arbitrária do programador 10x
no início desta apresentação sem comparar 
com nenhum outro 	

 	

 	

 	

 	

#constatação	
  
Moral da história	



Se não podemos medir, não há como colocar 
números comparativos.	
  


O termo programador 10x significa ...	
  

  	

 	

apenas um bom programador (como definido).
?	

luca.bastos@concretesolutions.com.br	





Você conhece um programador 10x?	





                 Obrigado

Más contenido relacionado

La actualidad más candente

Tudo sobre a certificacao PMP
Tudo sobre a certificacao PMPTudo sobre a certificacao PMP
Tudo sobre a certificacao PMPMoises Luna, PMP
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareLucas Teles
 
Big design up front (BDUF)
Big design up front (BDUF)Big design up front (BDUF)
Big design up front (BDUF)Gilmar Pupo
 
O Programador Pragmático
O Programador PragmáticoO Programador Pragmático
O Programador PragmáticoTadeu Marinho
 
Desmistificando Design Patterns
Desmistificando Design PatternsDesmistificando Design Patterns
Desmistificando Design PatternsMaicon Heck
 
Sete Passos Para Um Programador De Sucesso
Sete Passos Para Um Programador De SucessoSete Passos Para Um Programador De Sucesso
Sete Passos Para Um Programador De SucessoPlaneta Código
 
Boas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDBoas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDJony Ferreira dos Santos
 
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e AtitudeCriando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e AtitudePablo Dall'Oglio
 
Escrevendo C# moderno 2019 - MVPConf
Escrevendo C# moderno 2019 - MVPConfEscrevendo C# moderno 2019 - MVPConf
Escrevendo C# moderno 2019 - MVPConfAntonio Maniero
 
[Interagil 2019] recuperando a essencia da agilidade para desenvolvedores
[Interagil 2019] recuperando a essencia da agilidade para desenvolvedores[Interagil 2019] recuperando a essencia da agilidade para desenvolvedores
[Interagil 2019] recuperando a essencia da agilidade para desenvolvedoresHenrique Fernandes Gonçalves
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a ModelagemRodrigo Branas
 
Tdc2013 - Trilha de Teste -
Tdc2013 - Trilha de Teste - Tdc2013 - Trilha de Teste -
Tdc2013 - Trilha de Teste - Leonardo Galani
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO IOs Fantasmas !
 
10 dicas de carreira em PHP
10 dicas de carreira em PHP10 dicas de carreira em PHP
10 dicas de carreira em PHPElton Minetto
 
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
 

La actualidad más candente (18)

Tudo sobre a certificacao PMP
Tudo sobre a certificacao PMPTudo sobre a certificacao PMP
Tudo sobre a certificacao PMP
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo software
 
Big design up front (BDUF)
Big design up front (BDUF)Big design up front (BDUF)
Big design up front (BDUF)
 
Excelência - PUC
Excelência - PUCExcelência - PUC
Excelência - PUC
 
O Programador Pragmático
O Programador PragmáticoO Programador Pragmático
O Programador Pragmático
 
O programador pragmático
O programador pragmáticoO programador pragmático
O programador pragmático
 
Desmistificando Design Patterns
Desmistificando Design PatternsDesmistificando Design Patterns
Desmistificando Design Patterns
 
Sete Passos Para Um Programador De Sucesso
Sete Passos Para Um Programador De SucessoSete Passos Para Um Programador De Sucesso
Sete Passos Para Um Programador De Sucesso
 
Faca seucurta2012
Faca seucurta2012Faca seucurta2012
Faca seucurta2012
 
Boas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDBoas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDD
 
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e AtitudeCriando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
 
Escrevendo C# moderno 2019 - MVPConf
Escrevendo C# moderno 2019 - MVPConfEscrevendo C# moderno 2019 - MVPConf
Escrevendo C# moderno 2019 - MVPConf
 
[Interagil 2019] recuperando a essencia da agilidade para desenvolvedores
[Interagil 2019] recuperando a essencia da agilidade para desenvolvedores[Interagil 2019] recuperando a essencia da agilidade para desenvolvedores
[Interagil 2019] recuperando a essencia da agilidade para desenvolvedores
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
 
Tdc2013 - Trilha de Teste -
Tdc2013 - Trilha de Teste - Tdc2013 - Trilha de Teste -
Tdc2013 - Trilha de Teste -
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
 
10 dicas de carreira em PHP
10 dicas de carreira em PHP10 dicas de carreira em PHP
10 dicas de carreira em PHP
 
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)
 

Destacado

Vinonuevoodresnuevos 110110143647-phpapp02
Vinonuevoodresnuevos 110110143647-phpapp02Vinonuevoodresnuevos 110110143647-phpapp02
Vinonuevoodresnuevos 110110143647-phpapp02MillieMelendez
 
La fuente de la xana ilustrada
La fuente de la xana ilustradaLa fuente de la xana ilustrada
La fuente de la xana ilustradatinma
 
copa america
copa americacopa america
copa americaoriscoca
 
Propuestas de intervención educativa
Propuestas de intervención educativaPropuestas de intervención educativa
Propuestas de intervención educativathany06
 
Criando Dvd De VíDeo Com O Nero
Criando Dvd De VíDeo Com O NeroCriando Dvd De VíDeo Com O Nero
Criando Dvd De VíDeo Com O NeroAmara Pedrosa
 
Plano1 trab lie_2014
Plano1 trab lie_2014Plano1 trab lie_2014
Plano1 trab lie_2014Iva Pavan
 
Cosas que suceden_en_este_momento-37762
Cosas que suceden_en_este_momento-37762Cosas que suceden_en_este_momento-37762
Cosas que suceden_en_este_momento-37762Jaime Alberto Pilia
 
Con la política de nuestro país esta de
Con la política de nuestro país esta deCon la política de nuestro país esta de
Con la política de nuestro país esta deblogisse
 
Estudio de mercado
Estudio de mercadoEstudio de mercado
Estudio de mercadoyoudimar
 
Election in Ukraine 2012
Election in Ukraine 2012Election in Ukraine 2012
Election in Ukraine 2012Denis Bohush
 
La web 2.0 un mundo de posibilidades.
La web 2.0 un mundo de posibilidades.La web 2.0 un mundo de posibilidades.
La web 2.0 un mundo de posibilidades.shelylala
 
Introduccion a excel formulas y funciones
Introduccion a excel formulas y funcionesIntroduccion a excel formulas y funciones
Introduccion a excel formulas y funcionesFranco Ponce
 
2011.10.21新營社大演講版 -鹽業:人與海洋的時空對話
2011.10.21新營社大演講版 -鹽業:人與海洋的時空對話2011.10.21新營社大演講版 -鹽業:人與海洋的時空對話
2011.10.21新營社大演講版 -鹽業:人與海洋的時空對話niceruru
 
Povaga pochinayetsya z_samogo_sebe
Povaga pochinayetsya z_samogo_sebePovaga pochinayetsya z_samogo_sebe
Povaga pochinayetsya z_samogo_sebeYarik Yatskovsky
 

Destacado (20)

Vinonuevoodresnuevos 110110143647-phpapp02
Vinonuevoodresnuevos 110110143647-phpapp02Vinonuevoodresnuevos 110110143647-phpapp02
Vinonuevoodresnuevos 110110143647-phpapp02
 
O que fazemos?
O que fazemos?O que fazemos?
O que fazemos?
 
La fuente de la xana ilustrada
La fuente de la xana ilustradaLa fuente de la xana ilustrada
La fuente de la xana ilustrada
 
copa america
copa americacopa america
copa america
 
Propuestas de intervención educativa
Propuestas de intervención educativaPropuestas de intervención educativa
Propuestas de intervención educativa
 
Licenciar un blog
Licenciar un blogLicenciar un blog
Licenciar un blog
 
Criando Dvd De VíDeo Com O Nero
Criando Dvd De VíDeo Com O NeroCriando Dvd De VíDeo Com O Nero
Criando Dvd De VíDeo Com O Nero
 
Plano1 trab lie_2014
Plano1 trab lie_2014Plano1 trab lie_2014
Plano1 trab lie_2014
 
Photos of indoor
Photos of indoorPhotos of indoor
Photos of indoor
 
Cosas que suceden_en_este_momento-37762
Cosas que suceden_en_este_momento-37762Cosas que suceden_en_este_momento-37762
Cosas que suceden_en_este_momento-37762
 
Con la política de nuestro país esta de
Con la política de nuestro país esta deCon la política de nuestro país esta de
Con la política de nuestro país esta de
 
Estudio de mercado
Estudio de mercadoEstudio de mercado
Estudio de mercado
 
Election in Ukraine 2012
Election in Ukraine 2012Election in Ukraine 2012
Election in Ukraine 2012
 
Reciclaje cultura
Reciclaje culturaReciclaje cultura
Reciclaje cultura
 
Momo 505 0709131930
Momo 505 0709131930Momo 505 0709131930
Momo 505 0709131930
 
Descripción del verbo to be
Descripción del verbo to beDescripción del verbo to be
Descripción del verbo to be
 
La web 2.0 un mundo de posibilidades.
La web 2.0 un mundo de posibilidades.La web 2.0 un mundo de posibilidades.
La web 2.0 un mundo de posibilidades.
 
Introduccion a excel formulas y funciones
Introduccion a excel formulas y funcionesIntroduccion a excel formulas y funciones
Introduccion a excel formulas y funciones
 
2011.10.21新營社大演講版 -鹽業:人與海洋的時空對話
2011.10.21新營社大演講版 -鹽業:人與海洋的時空對話2011.10.21新營社大演講版 -鹽業:人與海洋的時空對話
2011.10.21新營社大演講版 -鹽業:人與海洋的時空對話
 
Povaga pochinayetsya z_samogo_sebe
Povaga pochinayetsya z_samogo_sebePovaga pochinayetsya z_samogo_sebe
Povaga pochinayetsya z_samogo_sebe
 

Similar a Como formar programadores 10x: práticas ágeis para elevar o nível dos iniciantes

DevOps Anti-Patterns - Campus Party
DevOps Anti-Patterns - Campus PartyDevOps Anti-Patterns - Campus Party
DevOps Anti-Patterns - Campus PartyFernando Ike
 
O mercado de trabalho para a T.I.
O mercado de trabalho para a T.I.O mercado de trabalho para a T.I.
O mercado de trabalho para a T.I.Yan Magalhães
 
Webinar Usabilidade no E-commerce
Webinar Usabilidade no E-commerceWebinar Usabilidade no E-commerce
Webinar Usabilidade no E-commerceHorácio Soares
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Softwareguest2f8cba
 
"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
 
Toolkit Web para Analistas de Negócios: 3 Ferramentas que Vão Salvar o Seu Dia!
Toolkit Web para Analistas de Negócios: 3 Ferramentas que Vão Salvar o Seu Dia!Toolkit Web para Analistas de Negócios: 3 Ferramentas que Vão Salvar o Seu Dia!
Toolkit Web para Analistas de Negócios: 3 Ferramentas que Vão Salvar o Seu Dia!Derek Willi
 
O ciclo da vida
O ciclo da vidaO ciclo da vida
O ciclo da vidaLuiz Borba
 
desenvolverdor JAVA Script/html/ccs iniciante
desenvolverdor JAVA Script/html/ccs iniciantedesenvolverdor JAVA Script/html/ccs iniciante
desenvolverdor JAVA Script/html/ccs inicianteRicardo Sabino
 
Gerencie sua carreira. Seja um desenvolvedor melhor!
Gerencie sua carreira. Seja um desenvolvedor melhor!Gerencie sua carreira. Seja um desenvolvedor melhor!
Gerencie sua carreira. Seja um desenvolvedor melhor!Sandro Giacomozzi
 
O Arquiteto da Informacao
O Arquiteto da Informacao O Arquiteto da Informacao
O Arquiteto da Informacao Carlos Franco
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento4Soft
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareGabriel Felipe Soares
 
Os Desafios do Design Mobile - Jun/2012
Os Desafios do Design Mobile - Jun/2012Os Desafios do Design Mobile - Jun/2012
Os Desafios do Design Mobile - Jun/2012Horácio Soares
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Marcio Miyamoto
 
XP & Scrum from the trenches @ LeroyMerlin Brazil
XP & Scrum from the trenches @ LeroyMerlin BrazilXP & Scrum from the trenches @ LeroyMerlin Brazil
XP & Scrum from the trenches @ LeroyMerlin BrazilGaëtan Belbéoc'h
 

Similar a Como formar programadores 10x: práticas ágeis para elevar o nível dos iniciantes (20)

O que é ser um bom programador?
O que é ser um bom programador?O que é ser um bom programador?
O que é ser um bom programador?
 
DevOps Anti-Patterns - Campus Party
DevOps Anti-Patterns - Campus PartyDevOps Anti-Patterns - Campus Party
DevOps Anti-Patterns - Campus Party
 
O mercado de trabalho para a T.I.
O mercado de trabalho para a T.I.O mercado de trabalho para a T.I.
O mercado de trabalho para a T.I.
 
Refactoring
RefactoringRefactoring
Refactoring
 
Webinar Usabilidade no E-commerce
Webinar Usabilidade no E-commerceWebinar Usabilidade no E-commerce
Webinar Usabilidade no E-commerce
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Software
 
"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...
 
Iniciando uma carreira de Tecnologia em 2023
Iniciando uma carreira de Tecnologia em 2023Iniciando uma carreira de Tecnologia em 2023
Iniciando uma carreira de Tecnologia em 2023
 
Toolkit Web para Analistas de Negócios: 3 Ferramentas que Vão Salvar o Seu Dia!
Toolkit Web para Analistas de Negócios: 3 Ferramentas que Vão Salvar o Seu Dia!Toolkit Web para Analistas de Negócios: 3 Ferramentas que Vão Salvar o Seu Dia!
Toolkit Web para Analistas de Negócios: 3 Ferramentas que Vão Salvar o Seu Dia!
 
O ciclo da vida
O ciclo da vidaO ciclo da vida
O ciclo da vida
 
desenvolverdor JAVA Script/html/ccs iniciante
desenvolverdor JAVA Script/html/ccs iniciantedesenvolverdor JAVA Script/html/ccs iniciante
desenvolverdor JAVA Script/html/ccs iniciante
 
Gerencie sua carreira. Seja um desenvolvedor melhor!
Gerencie sua carreira. Seja um desenvolvedor melhor!Gerencie sua carreira. Seja um desenvolvedor melhor!
Gerencie sua carreira. Seja um desenvolvedor melhor!
 
O Arquiteto da Informacao
O Arquiteto da Informacao O Arquiteto da Informacao
O Arquiteto da Informacao
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento
 
PHPZEIRO: Adote um framework
PHPZEIRO: Adote um frameworkPHPZEIRO: Adote um framework
PHPZEIRO: Adote um framework
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de Software
 
Agile User Experience
Agile User ExperienceAgile User Experience
Agile User Experience
 
Os Desafios do Design Mobile - Jun/2012
Os Desafios do Design Mobile - Jun/2012Os Desafios do Design Mobile - Jun/2012
Os Desafios do Design Mobile - Jun/2012
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 
XP & Scrum from the trenches @ LeroyMerlin Brazil
XP & Scrum from the trenches @ LeroyMerlin BrazilXP & Scrum from the trenches @ LeroyMerlin Brazil
XP & Scrum from the trenches @ LeroyMerlin Brazil
 

Más de Luca Bastos

Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013
Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013
Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013Luca Bastos
 
A disciplina da inovacao
A disciplina da inovacaoA disciplina da inovacao
A disciplina da inovacaoLuca Bastos
 
Big data e agile analytics
Big data e agile analytics Big data e agile analytics
Big data e agile analytics Luca Bastos
 
Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013
Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013
Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013Luca Bastos
 
Lean Analytics - TDC2013
Lean Analytics - TDC2013Lean Analytics - TDC2013
Lean Analytics - TDC2013Luca Bastos
 
Como voce se imagina daqui a 40 anos
Como voce se imagina daqui a 40 anosComo voce se imagina daqui a 40 anos
Como voce se imagina daqui a 40 anosLuca Bastos
 
Agile Brazil 2012 Painel com empreendedores digitais
Agile Brazil 2012 Painel com empreendedores digitaisAgile Brazil 2012 Painel com empreendedores digitais
Agile Brazil 2012 Painel com empreendedores digitaisLuca Bastos
 
Ágil como MacGyver - Caipira Ágil -18-08-2012
Ágil como MacGyver - Caipira Ágil -18-08-2012Ágil como MacGyver - Caipira Ágil -18-08-2012
Ágil como MacGyver - Caipira Ágil -18-08-2012Luca Bastos
 
Dez Dicas Para Startups - TDC2012
Dez Dicas Para Startups - TDC2012Dez Dicas Para Startups - TDC2012
Dez Dicas Para Startups - TDC2012Luca Bastos
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceLuca Bastos
 
Transações compensatórias usando REST - QCon SP 2011
Transações compensatórias usando REST - QCon SP 2011Transações compensatórias usando REST - QCon SP 2011
Transações compensatórias usando REST - QCon SP 2011Luca Bastos
 
Lightning talk Luca Bastos no QCon SP 2011
Lightning talk Luca Bastos no QCon SP 2011Lightning talk Luca Bastos no QCon SP 2011
Lightning talk Luca Bastos no QCon SP 2011Luca Bastos
 

Más de Luca Bastos (12)

Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013
Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013
Da Descoberta do Ágil ao Manifesto Luca Bastos AgileVale 2013
 
A disciplina da inovacao
A disciplina da inovacaoA disciplina da inovacao
A disciplina da inovacao
 
Big data e agile analytics
Big data e agile analytics Big data e agile analytics
Big data e agile analytics
 
Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013
Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013
Da descoberta do Ágil ao Manifesto Luca Bastos Agile Brazil 2013
 
Lean Analytics - TDC2013
Lean Analytics - TDC2013Lean Analytics - TDC2013
Lean Analytics - TDC2013
 
Como voce se imagina daqui a 40 anos
Como voce se imagina daqui a 40 anosComo voce se imagina daqui a 40 anos
Como voce se imagina daqui a 40 anos
 
Agile Brazil 2012 Painel com empreendedores digitais
Agile Brazil 2012 Painel com empreendedores digitaisAgile Brazil 2012 Painel com empreendedores digitais
Agile Brazil 2012 Painel com empreendedores digitais
 
Ágil como MacGyver - Caipira Ágil -18-08-2012
Ágil como MacGyver - Caipira Ágil -18-08-2012Ágil como MacGyver - Caipira Ágil -18-08-2012
Ágil como MacGyver - Caipira Ágil -18-08-2012
 
Dez Dicas Para Startups - TDC2012
Dez Dicas Para Startups - TDC2012Dez Dicas Para Startups - TDC2012
Dez Dicas Para Startups - TDC2012
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ce
 
Transações compensatórias usando REST - QCon SP 2011
Transações compensatórias usando REST - QCon SP 2011Transações compensatórias usando REST - QCon SP 2011
Transações compensatórias usando REST - QCon SP 2011
 
Lightning talk Luca Bastos no QCon SP 2011
Lightning talk Luca Bastos no QCon SP 2011Lightning talk Luca Bastos no QCon SP 2011
Lightning talk Luca Bastos no QCon SP 2011
 

Como formar programadores 10x: práticas ágeis para elevar o nível dos iniciantes

  • 1. Como formar um programador 10x Luca Bastos luca.bastos@concretesolutions.com.br Noite Ágil - Agosto/2011 Caelum SP
  • 2. A m a i o r r i q u e z a d o h o m e m é a s u a i n c o m p l e t u d e . N e s s e p o n t o s o u a b a s t a d o. P a l av r a s q u e m e a c e i t a m c o m o s o u - e u n ã o a c e i t o. N ã o a g ü e n t o s e r a p e n a s u m s u j e i t o q u e a b r e p o r t a s , q u e p u x a v á l v u l a s , q u e o l h a o r e l ó g i o, q u e c o m p r a p ã o à s 6 h o r a s d a t a r d e , q u e v a i l á f o r a , q u e a p o n t a l á p i s , q u e v ê a u v a e t c . e t c . Pe r d o a i M a s e u p r e c i s o s e r O u t r o s . E u p e n s o r e n o v a r o h o m e m u s a n d o b o r b o l e t a s . M a n o e l d e B a r ro s
  • 3. Quem sou: Desenvolvedor do tempo da Carochinha, ávido leitor e praticante sempre interessado em metodologias de desenvolvimento, desde antes de surgirem programação modular, programação estruturada e todas as demais até os dias de hoje. Meninos, eu vi. E vivi.
  • 4. Onde trabalho: http://www.concretesolutions.com.br/ A Concrete tem 10 anos com um portfólio de clientes bem variado no Brasil e no exterior. No início a maior demanda do mercado era para soluções de integração e assim foi natural a parceria com os grandes players como Oracle, Red Hat, etc. Atualmente a diversificação é bem grande e temos também ótimos projetos nas áreas de cloud, mobile, web e lean startups de tecnologia. Praticamos e pregamos o desenvolvimento ágil desde 2007. Hoje temos 56% do faturamento usando Scrum e Kanban e só 12% de projetos fechados.  
  • 5. “Design and programming are human activities; forget that and all is lost.” Bjarne Stroustrup The C++ Programming Language, 2nd Ed, Section11.1, pág.363
  • 6. Arbitrariamente vou definir um programador 10x como aquele que sem ser gênio, tem pelo menos um pouco das seguintes qualidades: -  inteligente (e com bons princípios éticos), -  personalidade que alie GTD a criatividade e mais boa interatividade com time, -  sabe programar e conhece as tecnologias do projeto (melhorar aqui é o foco desta apresentação)
  • 7. Veremos o que fazer para elevar o nível de um programador iniciante e como criar condições de um dia ele vir a ser um programador 10x.
  • 8. Você conhece um programador 10x?
  • 9. Melhor dizendo, reconhece um programador 10x?
  • 10. Você contrataria alguém como os personagens das fotos seguintes?
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 17. Origem do meu interesse no tema da apresentação Ligue djá
  • 18. Segundo o prof. Robert Glass, no livro de 2002 Facts and Fallacies of Software Engineering Fato 1: O fator mais importante no trabalho com software é a qualidade dos programadores. Fato 2: A diferença entre os melhores e os piores programadores pode ser de até 28 vezes.
  • 19. A diferença de produtividade entre programadores já foi motivo de preocupação de estudiosos como Bohem, De Marco, Spolsky e outros.
  • 20. Steve McConnell também discute o que é um programador 10x e se é viável medir variações na produtividade Ver último capítulo de Making Software, What Really Works, and Why We Believe It, O’Reilly 2011
  • 21. Origem do termo programador 10x Segundo um estudo de 1968 (ver *) Diferenças entre o melhor e o pior entre programadores com 7 anos de experiência, Tempo para “codar” 20x Tempo para debugar 25x Tamanho do código 5x Tempo de execução do código 10x * Making Software, What Really Works, cap.30, What Does 10x Mean? Steve McConnell
  • 22. Segundo o mesmo McConnell (*), o tal estudo tem falhas porque compara resultados de programadores usando linguagens de baixo nível com outros usando linguagens de alto nível Tempo para “codar” 20x Tempo para debugar 25x Tamanho do código 5x Tempo de execução do código 10x * Making Software, What Really Works, cap.30, What Does 10x Mean? Steve McConnell
  • 23. Porém McConnell (*) repara que a diferença entre os melhores e os piores pode ser considerada como 10x Tempo para “codar” 20x Tempo para debugar Tamanho do código Tempo de execução do código 10 X 25x 5x 10x
  • 24. Escolhi usar o termo 10x porque meu conceito de 10x está mais para os bons que podemos formar do que para os pontos extremos excepcionais que poderiam ser os tais 28x.
  • 25. Mas eu conheço muitos bem acima do 10x Chegaram lá por diversos motivos dentre eles qualidades pessoais acima da média Vamos ver alguns que quase todos conhecem:
  • 26.
  • 27. Não é com estes que estou preocupado É com os novos que contrataremos E supondo que nossos iniciantes são inteligentes, falarei sobre o que fazer para que se tornem 10x em menos tempo
  • 28.
  • 29. #Fatos Atualmente está difícil contratar programadores O mercado está aquecido e há poucos disponíveis Mais fácil contratar iniciantes e treiná-los até o nível médio da equipe
  • 30. Desafio número 1: Dar condições para o iniciante virar bom programador continuando sendo um ser humano (sem arrogância).
  • 31. Opinião do Joel Spolsky: Contrate um super star caso queira um produto acima da média.
  • 32. Mas todo mundo conhece um super programador que ninguém quer na equipe.
  • 33. Um super piloto de caça nem sempre se sujeitará as normas de segurança de um avião de carreira ou o barão vermelho pode não ter habilidade para conviver com as demais pessoas.
  • 35. E como reconhecer os melhores? a) Medindo a produtividade?   b) Existem outros meios de reconhecê-los?
  • 36. Medir a produtividade Será fácil fazer isto?
  • 37. Linhas de código? Mas programadores espertos produzirão mais escrevendo códigos mais longos Lembrando Dilbert: você obtem o que mede
  • 38. Pontos de função? Mas código ruim não gera mais pontos de função.  
  • 39. Número de histórias prontas? Mas e a complexidade diferente de cada uma?
  • 40. Então não consigo medir a produtividade? Para mim a resposta é não. Parece até perda de tempo tentar. Concordo com Martin Fowler em http://www.martinfowler.com/bliki/CannotMeasureProductivity.html
  • 41. Então como saber se um programador já é 10x? Se não se pode medir Quais serão então os tais outros meios?  
  • 42. Minha resposta: acompanhamento dia a dia  
  • 43. Para nossa sorte, os meios de acompanhamento úteis para reconhecer um programador 10x
  • 44. São exatamente os mesmos que possibilitam conduzir um iniciante ao conceito 10x
  • 45. - Programação pareada - Revisão de código   - Compartilhamento de conhecimento, workshops, práticas de dojos, etc.   - TDD, boa comunicação, etc.
  • 46. Primeiro resultado desta apresentação Não é possível medir a produtividade dos programadores mas se pode avaliar cada um por meio de acompanhamento frequente.
  • 47. Esta página foi intencionalmente deixada em branco para que você pense no dia a dia do seu projeto
  • 48. Impressões minhas: Algumas práticas do desenvolvimento ágil adequadas a elevar o nível dos iniciantes são deixadas de lado ao estimar um projeto.   Nem sempre o ambiente de desenvolvimento facilita o emprego destas práticas.
  • 49. No seu projeto ou na sua empresa: - nas estimativas é previsto o pareamento?   - ou cada desenvolvedor pega uma tarefa?   - e há tempo para revisão de código?   - há práticas de disseminação de conhecimento?   - o ambiente de trabalho facilita o pareamento? existem baias? As mesas permitem pareamento?   - é fácil trocar de par ou os desenvolvedores tem lugar fixo?
  • 50.
  • 51. Considerando que uma boa parte dos desenvolvedores trabalha alocado nos clientes, e que dentro do ambiente deles dificilmente conseguimos tempo no projeto e espaço físico ideal, só pode ser pegadinha do Malandro falar destas práticas.
  • 52. Mesmo nas empresas cujo objetivo principal é o desenvolvimento de software, nem sempre há espaço físico propício às práticas citadas Também não é fácil encontrar imóveis e móveis ideais
  • 53. Blog do @sumeet_moghe http://www.learninggeneralist.com/2011/08/spatial-serendipity-key-to-social.html
  • 54. Blog do @sumeet_moghe http://www.learninggeneralist.com/2011/08/spatial-serendipity-key-to-social.html
  • 55. Nosso ambiente na Concrete SP
  • 56. Muitas vezes por pressões dos clientes ou pelo exíguo time to market do produto, é difícil subtrair tempo do projeto para cuidar dos processos (*) de melhoria contínua e renovação da equipe. * Se não cuidar destes processos, então cuidado com a lei de Brooks: “adicionar pessoas a um projeto atrasado irá atrasá-lo ainda mais”
  • 57. Desafio número 3 (este sim o mais difícil) 1. Convencer os gestores das empresas da importância destas práticas. 2. Convencer os clientes que produto feito sob encomenda só será bom e atualizado, se estiver sob um processo de melhoria contínua. Portanto é preciso reservar tempo para isto. 3. Convencer os desenvolvedores de são eles os beneficiados e que também precisam doar tempo.
  • 58. O passo 1, ao contrário do que dizem, costuma ser o menos difícil: convencer os chefes. E eles tem acesso e mandato para convencer nossos clientes.
  • 59. Porém ninguém se iluda. Muito mais difícil é convencer os colegas, de que são parte interessada no processo de melhoria e atualização e que   também devem doar tempo.  
  • 60. O desafio 3 é convencer convencer convencer ...
  • 61.
  • 62. Segundo resultado desta apresentação: É preciso reservar tempo e esforço em prol da melhoria contínua. Alguns podem discordar mas para mim isto não deve ocorrer só por parte da empresa. É preciso convencer o desenvolvedor a também fazer a sua parte.
  • 63. Práticas que ajudam a diminuir o gap técnico da equipe e conduzem um iniciante ao conceito 10x
  • 64. Relembrando programação pareada •  Fred Brooks e Larry Constantine já falavam disto •  Diminui o risco e evita o “truck factor” (Ceci Fernandes) •  Resultado do código costuma ser mais legível •  Ao contrário do que dizem, pode ser feito remoto •  Gasta mais tempo. •  Cansa mais a cabeça, nem todos suportam mesmo % / dia
  • 65. Relembrando revisão de código •  Brooks também citava •  É uma prática aparentemente esquecida atualmente. •  Além de diminuir o “truck factor”, é mais uma chance de descobrir defeitos •  Parece funcionar melhor feito em grupo (ou par) •  É mais fácil rever pequenos trechos de código em pequenas janelas de tempo
  • 66. Relembrando compartilhamento de conhecimento, workshops, práticas de dojos, etc. •  Atividades que exigem mais doação dos desenvolvedores do que da direção da empresa •  Geralmente feitos fora do horário de trabalho •  Em alguns casos contam com participação de desenvolvedores de outras empresas •  Estimulam e dão oportunidade de afirmação aos que se oferecem para estudar e apresentar temas
  • 67. Relembrando TDD, boa comunicação, etc. • TDD pode diminuir o medo do iniciante de fazer uma grande bobagem que acarrete muitas horas de debug • TDD facilita a revisão de código • TDD retira bloqueios do tipo “se está funcionando não mexe”. Bloqueios deste tipo inibem iniciantes •  Boa comunicação é como uma plantinha que precisa ser regada todo dia. Nem sempre todos percebem o exato momento em que a comunicação começa a ter ruídos. O iniciante sofre mais com falha de comunicação
  • 68. Terceiro resultado desta apresentação: Práticas populares do XP porém já recomendadas desde a década de 70, junto com ações de disseminação de conhecimento e mais TDD, permitem avaliar a produtividade e elevar o nível médio dos times. De quebra diminuem o risco de falha do projeto e ainda preparam a equipe para maiores desafios
  • 69. E o tal programador 10x? Não há como medir a produtividade #fato   Dizer que um vale 10 vezes o outro é chute Daí a definição arbitrária do programador 10x no início desta apresentação sem comparar com nenhum outro #constatação  
  • 70. Moral da história Se não podemos medir, não há como colocar números comparativos.   O termo programador 10x significa ...   apenas um bom programador (como definido).