Formando Formando DesenvolvedoresDesenvolvedores
EfetivosEfetivos
Fernando LozanoArquiteto de Soluções – 4Linux
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 ;-)
3 / 36www.4linux.com.brCapítulo 1
Temos um Novo Projeto... Temos um Novo Projeto...
● Precisamos contratar mais desenvolvedores !
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 ?
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 ?
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...
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 :-(
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...
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 ?
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 ?
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” ?
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:
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)
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)
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)
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)
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)
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 !
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 ?
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
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...
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 ?)
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
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
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!
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 ?
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
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
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 !
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
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
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
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
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
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
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
Top Related