Formando Desenvolvedores Efetivos

949 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
949
On SlideShare
0
From Embeds
0
Number of Embeds
73
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Formando Desenvolvedores Efetivos

  1. 1. FormandoDesenvolvedores Efetivos Fernando LozanoArquiteto de Soluções – 4Linux lozano@4linux.com.br
  2. 2. 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 ;-) Capítulo 1 www.4linux.com.br 2 / 36
  3. 3. Temos um Novo Projeto...● Precisamos contratar mais desenvolvedores ! Capítulo 1 www.4linux.com.br 3 / 36
  4. 4. Temos um Novo Projeto...● Precisamos contratar mais desenvolvedores ! ● Será fácil conseguir BONS desenvolvedores ? Capítulo 1 www.4linux.com.br 4 / 36
  5. 5. Temos um Novo Projeto...● Precisamos contratar mais desenvolvedores ! ● Será fácil conseguir BONS desenvolvedores ? ● Será fácil conseguir desenvolvedores RAZOÁVEIS ? Capítulo 1 www.4linux.com.br 5 / 36
  6. 6. 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... Capítulo 1 www.4linux.com.br 6 / 36
  7. 7. 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 :-( Capítulo 1 www.4linux.com.br 7 / 36
  8. 8. Precisamos Formar MAISDesenvolvedores● As faculdades não atendem o mercado● Treinamento in-house demora... Capítulo 1 www.4linux.com.br 8 / 36
  9. 9. Precisamos Formar MAISDesenvolvedores● As faculdades não atendem o mercado● Treinamento in-house demora...● A solução é: ● Certificação Profissional ? Capítulo 1 www.4linux.com.br 9 / 36
  10. 10. Precisamos Formar MAISDesenvolvedores● As faculdades não atendem o mercado● Treinamento in-house demora...● A solução é: ● Certificação Profissional ? ● Graduações Tecnológicas ? Capítulo 1 www.4linux.com.br 10 / 36
  11. 11. Precisamos Formar MAISDesenvolvedores● 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” ? Capítulo 1 www.4linux.com.br 11 / 36
  12. 12. Precisamos FormarMELHORES Desenvolvedores● Vamos aumentar a produtividade dos desenvolvedores que já temos usando: Capítulo 1 www.4linux.com.br 12 / 36
  13. 13. Precisamos FormarMELHORES Desenvolvedores● Vamos aumentar a produtividade dos desenvolvedores que já temos usando: ● Melhores IDEs ? (RAD) Capítulo 1 www.4linux.com.br 13 / 36
  14. 14. Precisamos FormarMELHORES Desenvolvedores● Vamos aumentar a produtividade dos desenvolvedores que já temos usando: ● Melhores IDEs ? (RAD) ● Melhor Modelagem ? (UML) Capítulo 1 www.4linux.com.br 14 / 36
  15. 15. Precisamos FormarMELHORES Desenvolvedores● Vamos aumentar a produtividade dos desenvolvedores que já temos usando: ● Melhores IDEs ? (RAD) ● Melhor Modelagem ? (UML) ● Melhores Metodologias ? (RUP) Capítulo 1 www.4linux.com.br 15 / 36
  16. 16. Precisamos FormarMELHORES Desenvolvedores● Vamos aumentar a produtividade dos desenvolvedores que já temos usando: ● Melhores IDEs ? (RAD) ● Melhor Modelagem ? (UML) ● Melhores Metodologias ? (RUP) ● Melhores Frameworks ? (Spring) Capítulo 1 www.4linux.com.br 16 / 36
  17. 17. Precisamos FormarMELHORES 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) Capítulo 1 www.4linux.com.br 17 / 36
  18. 18. Você 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 ! Capítulo 1 www.4linux.com.br 18 / 36
  19. 19. Você 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 ? Capítulo 1 www.4linux.com.br 19 / 36
  20. 20. Desenvolver Software ÉComplicado● 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 Capítulo 1 www.4linux.com.br 20 / 36
  21. 21. Desenvolver Software ÉComplicado● 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... Capítulo 1 www.4linux.com.br 21 / 36
  22. 22. Nós Temos Uma GRANDEParcela 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 ?) Capítulo 1 www.4linux.com.br 22 / 36
  23. 23. Tem Que Resolver NAORIGEM● Como “todo mundo” aprende a desenvolver software ? ● Olhando exemplos “hello world” ● E daí partindo para escrever aplicações completas Capítulo 1 www.4linux.com.br 23 / 36
  24. 24. Tem Que Resolver NAORIGEM● Como “todo mundo” aprende a desenvolver software ? ● Olhando exemplos “hello world” ● E daí partindo para escrever aplicações completas ● SOZINHO Capítulo 1 www.4linux.com.br 24 / 36
  25. 25. Tem Que Resolver NAORIGEM● 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! Capítulo 1 www.4linux.com.br 25 / 36
  26. 26. Tem Que Expor o (Futuro)Profissional à 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 ? Capítulo 1 www.4linux.com.br 26 / 36
  27. 27. Tem Que Ensinar a FazerManutenção / Evolução● Em vez de criar aplicações do zero... ... Entender uma (parte) de uma aplicação bem-escrita Capítulo 1 www.4linux.com.br 27 / 36
  28. 28. Tem Que Ensinar a FazerManutençã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 Capítulo 1 www.4linux.com.br 28 / 36
  29. 29. Tem Que Ensinar a FazerManutençã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 ! Capítulo 1 www.4linux.com.br 29 / 36
  30. 30. Tem Que Priorizar NasFaculdades 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 Capítulo 1 www.4linux.com.br 30 / 36
  31. 31. Tem Que Priorizar NasFaculdades 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 Capítulo 1 www.4linux.com.br 31 / 36
  32. 32. Desenvolvedores Efetivos● O mercado hoje forma desenvolvedores “de curto prazo”, pensando em entregar apenas a versão 1.0 da aplicação Capítulo 1 www.4linux.com.br 32 / 36
  33. 33. Desenvolvedores 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 Capítulo 1 www.4linux.com.br 33 / 36
  34. 34. Desenvolvedores 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 Capítulo 1 www.4linux.com.br 34 / 36
  35. 35. Formando DesenvolvedoresEfetivos● 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 Capítulo 1 www.4linux.com.br 35 / 36
  36. 36. Perguntas ? Fernando Lozano lozano@4linux.com.br www.4linux.com.br www.hackerteen.com twitter.com/4LinuxBR Tel: 55-11-2125-4747 Capítulo 1 www.4linux.com.br 36 / 36

×