36
Formando Formando Desenvolvedores Desenvolvedores Efetivos Efetivos Fernando Lozano Arquiteto de Soluções – 4Linux [email protected]

Formando Desenvolvedores Efetivos

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Formando Desenvolvedores Efetivos

Formando Formando DesenvolvedoresDesenvolvedores

EfetivosEfetivos

Fernando LozanoArquiteto de Soluções – 4Linux

[email protected]

Page 2: Formando Desenvolvedores Efetivos

2 / 36www.4linux.com.brCapítulo 1

CUIDADO!CUIDADO!

● Vou apresentar várias opiniões minhas sobre o que poderia mudar na formação usual de desenvolvedores Java e não-Java para aumentar sua efetividade

● Fique à vontade para discordar ;-)

Page 3: Formando Desenvolvedores Efetivos

3 / 36www.4linux.com.brCapítulo 1

Temos um Novo Projeto... Temos um Novo Projeto...

● Precisamos contratar mais desenvolvedores !

Page 4: Formando Desenvolvedores Efetivos

4 / 36www.4linux.com.brCapítulo 1

Temos um Novo Projeto... Temos um Novo Projeto...

● Precisamos contratar mais desenvolvedores !

● Será fácil conseguir BONS desenvolvedores ?

Page 5: Formando Desenvolvedores Efetivos

5 / 36www.4linux.com.brCapítulo 1

Temos um Novo Projeto... Temos um Novo Projeto...

● Precisamos contratar mais desenvolvedores !

● Será fácil conseguir BONS desenvolvedores ?● Será fácil conseguir desenvolvedores RAZOÁVEIS ?

Page 6: Formando Desenvolvedores Efetivos

6 / 36www.4linux.com.brCapítulo 1

Temos um Novo Projeto... Temos um Novo Projeto...

● Precisamos contratar mais desenvolvedores !

● Será fácil conseguir BONS desenvolvedores ?● Será fácil conseguir desenvolvedores

RASOÁVEIS ?● Vou ter que me virar com o que conseguir...

Page 7: Formando Desenvolvedores Efetivos

7 / 36www.4linux.com.brCapítulo 1

Temos um Novo Projeto... Temos um Novo Projeto...

● Precisamos contratar mais desenvolvedores !

● Será fácil conseguir BONS desenvolvedores ?● Será fácil conseguir desenvolvedores

RASOÁVEIS ?● Vou ter que me virar com o que conseguir...

SE conseguir :-(

Page 8: Formando Desenvolvedores Efetivos

8 / 36www.4linux.com.brCapítulo 1

Precisamos Formar MAIS Precisamos Formar MAIS Desenvolvedores Desenvolvedores

● As faculdades não atendem o mercado

● Treinamento in-house demora...

Page 9: Formando Desenvolvedores Efetivos

9 / 36www.4linux.com.brCapítulo 1

Precisamos Formar MAIS Precisamos Formar MAIS Desenvolvedores Desenvolvedores

● As faculdades não atendem o mercado

● Treinamento in-house demora...

● A solução é:

● Certificação Profissional ?

Page 10: Formando Desenvolvedores Efetivos

10 / 36www.4linux.com.brCapítulo 1

Precisamos Formar MAIS Precisamos Formar MAIS Desenvolvedores Desenvolvedores

● As faculdades não atendem o mercado

● Treinamento in-house demora...

● A solução é:

● Certificação Profissional ?● Graduações Tecnológicas ?

Page 11: Formando Desenvolvedores Efetivos

11 / 36www.4linux.com.brCapítulo 1

Precisamos Formar MAIS Precisamos Formar MAIS Desenvolvedores Desenvolvedores

● As faculdades não atendem o mercado

● Treinamento in-house demora...

● A solução é:

● Certificação Profissional ?● Graduações Tecnológicas ?

● Contratar quem já conhece o “padrão de mercado” ?

Page 12: Formando Desenvolvedores Efetivos

12 / 36www.4linux.com.brCapítulo 1

Precisamos Formar Precisamos Formar MELHORES Desenvolvedores MELHORES Desenvolvedores

● Vamos aumentar a produtividade dos desenvolvedores que já temos usando:

Page 13: Formando Desenvolvedores Efetivos

13 / 36www.4linux.com.brCapítulo 1

Precisamos Formar Precisamos Formar MELHORES Desenvolvedores MELHORES Desenvolvedores

● Vamos aumentar a produtividade dos desenvolvedores que já temos usando:

● Melhores IDEs ? (RAD)

Page 14: Formando Desenvolvedores Efetivos

14 / 36www.4linux.com.brCapítulo 1

Precisamos Formar Precisamos Formar MELHORES Desenvolvedores MELHORES Desenvolvedores

● Vamos aumentar a produtividade dos desenvolvedores que já temos usando:

● Melhores IDEs ? (RAD)● Melhor Modelagem ? (UML)

Page 15: Formando Desenvolvedores Efetivos

15 / 36www.4linux.com.brCapítulo 1

Precisamos Formar Precisamos Formar MELHORES Desenvolvedores MELHORES Desenvolvedores

● Vamos aumentar a produtividade dos desenvolvedores que já temos usando:

● Melhores IDEs ? (RAD)● Melhor Modelagem ? (UML)

● Melhores Metodologias ? (RUP)

Page 16: Formando Desenvolvedores Efetivos

16 / 36www.4linux.com.brCapítulo 1

Precisamos Formar Precisamos Formar MELHORES Desenvolvedores MELHORES Desenvolvedores

● Vamos aumentar a produtividade dos desenvolvedores que já temos usando:

● Melhores IDEs ? (RAD)● Melhor Modelagem ? (UML)

● Melhores Metodologias ? (RUP)● Melhores Frameworks ? (Spring)

Page 17: Formando Desenvolvedores Efetivos

17 / 36www.4linux.com.brCapítulo 1

Precisamos Formar Precisamos Formar MELHORES Desenvolvedores MELHORES Desenvolvedores

● Vamos aumentar a produtividade dos desenvolvedores que já temos usando:

● Melhores IDEs ? (RAD)● Melhor Modelagem ? (UML)

● Melhores Metodologias ? (RUP)● Melhores Frameworks ? (Spring)

● Melhores Processos ? (Ágeis)

Page 18: Formando Desenvolvedores Efetivos

18 / 36www.4linux.com.brCapítulo 1

Você Já Ouviu Falar deVocê Já Ouviu Falar de

● Graduação de duração reduzida em Direito ?

● Certificação para Neurologista ?

● Máquina de Tomografia/Ressonância/etc que dispensa um Cardiologista ?

● Easy Building CAD para construção de edifícios – você não precisa mais de um Engenheiro Civil para levantar um prédio !

Page 19: Formando Desenvolvedores Efetivos

19 / 36www.4linux.com.brCapítulo 1

Você Já Ouviu Falar deVocê Já Ouviu Falar de

● Graduação de duração reduzida em Direito ?

● Certificação para Neurologista ?

● Máquina de Tomografia/Ressonância/etc que dispensa um Cardiologista ?

● Easy Building CAD para construção de edifícios – você não precisa mais de um Engenheiro Civil para levantar um prédio !

● POR QUE assumimos que as soluções para desenvolvimento podem dispensar / reduzir a qualificação do desenvolvedor ?

Page 20: Formando Desenvolvedores Efetivos

20 / 36www.4linux.com.brCapítulo 1

Desenvolver Software É Desenvolver Software É ComplicadoComplicado

● Nenhuma solução vai magicamente transformar em algo simples

● Especialmente as soluções que isentam o profissional de ter o nível de conhecimento e especialização necessários

● A sociedade não pode depender da iniciativa individual e auto-estudo

Page 21: Formando Desenvolvedores Efetivos

21 / 36www.4linux.com.brCapítulo 1

Desenvolver Software É Desenvolver Software É ComplicadoComplicado

● Nenhuma solução vai magicamente transformar em algo simples

● Especialmente as soluções que isentam o profissional de ter o nível de conhecimento e especialização necessários

● A sociedade não pode depender da iniciativa individual e auto-estudo

● 80% ou mais dos desenvolvedores não acompanham Blogs, não lêem revistas, não comparecem a eventos...

Page 22: Formando Desenvolvedores Efetivos

22 / 36www.4linux.com.brCapítulo 1

Nós Temos Uma GRANDE Nós Temos Uma GRANDE Parcela da CulpaParcela da Culpa

● Gostamos de apresentar exemplos “hello world” para novas APIs, novas linguagens, novos frameworks...

● Gostamos de apresentar exemplos “simplórios”, tipo

● Aplicação CRUD, JSF chama direto JPA(cadê a camada de negócios ?)

● Tela de login(cadê o JAAS, LDAP, Kerberos, Token, PKI...)

● Locadora de DVDs / Biblioteca / Pet Shop(algum desses já foi colocado em produção ?)(eu poderia fazer as mesmas “simplificações didáticas” em um sistema real ?)

Page 23: Formando Desenvolvedores Efetivos

23 / 36www.4linux.com.brCapítulo 1

Tem Que Resolver NA Tem Que Resolver NA ORIGEMORIGEM

● Como “todo mundo” aprende a desenvolver software ?

● Olhando exemplos “hello world”● E daí partindo para escrever aplicações completas

Page 24: Formando Desenvolvedores Efetivos

24 / 36www.4linux.com.brCapítulo 1

Tem Que Resolver NA Tem Que Resolver NA ORIGEMORIGEM

● Como “todo mundo” aprende a desenvolver software ?

● Olhando exemplos “hello world”● E daí partindo para escrever aplicações completas

● SOZINHO

Page 25: Formando Desenvolvedores Efetivos

25 / 36www.4linux.com.brCapítulo 1

Tem Que Resolver NA Tem Que Resolver NA ORIGEMORIGEM

● Como “todo mundo” aprende a desenvolver software ?

● Olhando exemplos “hello world”● E daí partindo para escrever aplicações completas

● SOZINHO

● O profissional vai copiar os primeiros exemplos que encontrar – precisamos que estes exemplos sejam MUITO bons!

Page 26: Formando Desenvolvedores Efetivos

26 / 36www.4linux.com.brCapítulo 1

Tem Que Expor o (Futuro) Tem Que Expor o (Futuro) Profissional à ComplexidadeProfissional à Complexidade

● Como você espera que alguém desenvolva “direito” sem nenhum referencial para reconhecer a “cara” de um bom código ?

● Como exigir que um profissional lide com a complexidade de aplicações reais se só viu aplicações simplórias ?

● Como querer que um profissional aprenda a juntar Ajax, Java, ORM, SQL, REST etc se ele normalmente vê exemplos que usam um de cada vez ?

Page 27: Formando Desenvolvedores Efetivos

27 / 36www.4linux.com.brCapítulo 1

Tem Que Ensinar a Fazer Tem Que Ensinar a Fazer Manutenção / EvoluçãoManutenção / Evolução

● Em vez de criar aplicações do zero...

... Entender uma (parte) de uma aplicação bem-escrita

Page 28: Formando Desenvolvedores Efetivos

28 / 36www.4linux.com.brCapítulo 1

Tem Que Ensinar a Fazer Tem Que Ensinar a Fazer Manutenção / EvoluçãoManutenção / Evolução

● Em vez de criar aplicações do zero...

... Entender uma (parte) de uma aplicação bem-escrita

● Depois acrescentar uma nova funcionalidade nesta aplicação...

... Sem introduzir uma regressão

Page 29: Formando Desenvolvedores Efetivos

29 / 36www.4linux.com.brCapítulo 1

Tem Que Ensinar a Fazer Tem Que Ensinar a Fazer Manutenção / EvoluçãoManutenção / Evolução

● Em vez de criar aplicações do zero...

... Entender uma (parte) de uma aplicação bem-escrita

● Depois acrescentar uma nova funcionalidade nesta aplicação...

... Sem introduzir uma regressão● Tem que aprender a lidar com código escrito por

outros !

Page 30: Formando Desenvolvedores Efetivos

30 / 36www.4linux.com.brCapítulo 1

Tem Que Priorizar Nas Tem Que Priorizar Nas Faculdades e FormaçõesFaculdades e Formações

● O desenvolvedor pode aprender novas linguagens, APIs e frameworks com o Google, estudando exemplos pontuais ou cursos livres ...

... Mas ele não vai aprender a lidar com complexidade e manutenção se isto não for apresentado a ele DESDE O INÍCIO

Page 31: Formando Desenvolvedores Efetivos

31 / 36www.4linux.com.brCapítulo 1

Tem Que Priorizar Nas Tem Que Priorizar Nas Faculdades e FormaçõesFaculdades e Formações

● O desenvolvedor pode aprender novas linguagens, APIs e frameworks com o Google, estudando exemplos pontuais ou cursos livres ...

... Mas ele não vai aprender a lidar com complexidade, manutenção e equipes se isto não for apresentado a ele DESDE O INÍCIO

● Se a formação inicial fugir destas questões, o desenvolvedor fica com o “vício” de fugir delas pelo resto da sua carreira :-(

● Aí Metodologias, Processos, IDEs, etc não vão fazer diferença real

Page 32: Formando Desenvolvedores Efetivos

32 / 36www.4linux.com.brCapítulo 1

Desenvolvedores EfetivosDesenvolvedores Efetivos

● O mercado hoje forma desenvolvedores “de curto prazo”, pensando em entregar apenas a versão 1.0 da aplicação

Page 33: Formando Desenvolvedores Efetivos

33 / 36www.4linux.com.brCapítulo 1

Desenvolvedores EfetivosDesenvolvedores Efetivos

● O mercado hoje forma desenvolvedores “de curto prazo”, pensando em entregar apenas a versão 1.0 da aplicação

● Mas a maior parte do esforço, tempo e dinheiro está em manter as aplicações funcionando pelos próximos anos

Page 34: Formando Desenvolvedores Efetivos

34 / 36www.4linux.com.brCapítulo 1

Desenvolvedores EfetivosDesenvolvedores Efetivos

● O mercado hoje forma desenvolvedores “de curto prazo”, pensando em entregar apenas a versão 1.0 da aplicação

● Mas a maior parte do esforço, tempo e dinheiro está em manter as aplicações funcionando pelos próximos anos

● Tudo que ajuda a manter a aplicação funcionando no futuro acaba ajudando a entregar mais cedo e com mais qualidade a primeira versão

Page 35: Formando Desenvolvedores Efetivos

35 / 36www.4linux.com.brCapítulo 1

Formando Desenvolvedores Formando Desenvolvedores EfetivosEfetivos

● A formação dos profissionais deve ser baseada em atividades práticas envolvendo:

● Escrever partes de uma aplicação, que devem ser integradas a outras partes que já estão prontas

● Identificar e corrigir bugs em uma aplicação que normalmente funciona

● Implementar nova funcionalidade que envolve modificar funcionalidade já existente

● Lidar com regras de negócios complexas● Retornar depois de um tempo a uma aplicação /

módulo escrito previamente, em vez de abandonar depois de apresentar ao professor

Page 36: Formando Desenvolvedores Efetivos

36 / 36www.4linux.com.brCapítulo 1

Perguntas ?Perguntas ?

Fernando [email protected]

www.4linux.com.brwww.hackerteen.comtwitter.com/4LinuxBR

Tel: 55-11-2125-4747