Formando Desenvolvedores Efetivos

Preview:

DESCRIPTION

 

Citation preview

Formando Formando DesenvolvedoresDesenvolvedores

EfetivosEfetivos

Fernando LozanoArquiteto de Soluções – 4Linux

lozano@4linux.com.br

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 Lozanolozano@4linux.com.br

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

Tel: 55-11-2125-4747