Aprendendo direito desde a faculdade…

Muitos desenvolvedores  tem  preocupações com o ensino superior da área de TI\Computação, achando que nem sempre o que é ensinado é o que praticado na realidade do mercado de trabalho brasileiro.  Alguns acham que os professores dizem já não se aplica á realidade a muito tempo ou então é algo meramente acadêmico, sem valor pro mercado de trabalho. Essa preocupação é extremamente compreensível, afinal, quem esta estudando hoje já esta trabalhando ou em pouco tempo estará trabalhando nos projetos de softwares pelo mundo a fora e os desenvolvedores que já estão no mercado há algum tempo vão ter que trabalhar com quem esta cursando ou acabei de sair de uma faculdade.

Recentemente conversei com um ex-colega do colégio técnico, que é um excepcional desenvolvedor e que esta cursando o quarto ano do curso de Engenharia de Computação numa das faculdades de maior renome do hemisfério sul.  Ele comentou que, na materia Engenharia de Software que ele teve no semestre passado, a professora resolveu desenvolver um projeto de software completo, passando por todas as fases, desde a análise de requisitos, passando por projeto e modelagem e até a implementação (sentiu a falta de algo ai?). Achei o relato dele muito interessante e pedi autorização dele para colocar a nossa conversa aqui no meu blog, pois o que ele passou se parece muito com a realidade do dia-a-dia de um desenvolvedor brasileiro…

Segue abaixo o que ele me disse no GTalk (com algumas pequenas alterações esteticas e removendo algumas interrupções minhas):

colega: Ela passou um projetomonstro pra gente fazer durante o semestre. A gente ficou 1 mês fazendo levantamento de requisitos.  O projeto começou como uma coisa pra administrar as agremiações.
rubem:  (censurado)! Quer dizer que ensinam errado na faculdade??? (Um mês para levantar os requisitos de uma aplicação simples)

colega:  Depois ele ganhou todo o tipo de funcionalidade que você pode imaginar…  De avaliar professor até loja virtual. Depois a gente passou mais um mês fazendo projeto de interface, estimativas de custo e besteiras acessórias. 

colega:  Tinha dado uns 80 casos de uso… Daí ela falou “É, acho que tem muita coisa mesmo… Vocês podem cortar umas funcionalidades”. Daí a gente foi pra fazer o projeto .Como tinha muita coisa, ele deixou cortar mais uns 20 casos.

rubem:  aí acabou o semestre!
colega: Calma….
Daí a gente fez o projeto, com dezenas de camadas,  igual ela ensinou pra gente.  De um módulo que passa pro outro que passa pro outro….
E a gente fez o projeto numa ferramenta X que ela inventou que iria gerar os stubs pra gente programar depois e assim foi, até 2 semanas antes do fim do semestre.
Começou a parte de implementação…
Sobraram 5 casos de uso (Fazer login, fazer logoff, e coisas desse gênero)
O raio da ferramenta gerou centenas de classes de stub que, aliás, não compilavam. Passamos uns dias pra fazer as classes que não fazem nada compilar, daí a gente fez um módulo chamar o outro que chama o outro, etc, etc… centenas de classes que só terceirizavam o trabalho.
E, por fim, sobrou 1 semana pra fazer funcionar. Colocamos um módulo megazord embaixo pra fazer a interface com o Hibernate em cima pra acessar o banco e ficamos com centenas de classes inúteis no meio por que a professora queria!
Diz aí… Isso sim é engenharia de software, né?
rubem:  é… e você sabe o que é pior?
colega: ?
me: você descreveu um típico projeto de software produzido no mercado de trabalho🙂

 

E aí, parece ou não parece um típico projeto de software?🙂

Primeira, utilizaram a famosa pattern: faz análise de requisitos, modelagem, implementa, ops… não dá tempo de fazer tudo, gastei meses antes de começar uma única linha de código e entregar algo de valor para o cliente.

Segundo, não houve nenhuma preocupação com a qualidade. Nem sequer a famosa fase de testes, com as suas planilhas de testes e tudo mais.

Terceiro, tentaram utilizar uma ferramenta monstra para gerar código e automizatizar a implementação do projeto que mais atrapalhou do que ajudou.

Quarto, inventaram uma super arquitetura ambiciosa que não trouxe benefício algum ao projeto, bolado por um arquiteto da torre de marfim que não ia meter a mão no código.

Quinto, acabaram inventando muitas funcionalidades e, depois que viram que não ia dar tempo de entregar tudo, tiraram muitas funcionalidades e o produto final foi algo que realmente não trouxe muito valor para o usuário.

Felizmente, muito se fala hoje sobre desenvolvimento ágil e suas metodologias (como Scrum e XP). Mas pelo visto, ainda é uma raridade nas salas de aula. Tive uma experiência similar em algumas aulas de engenharia de software do meu curso. Muito blá-blá-blá, mostrando sempre o desenvolvimento waterfall e falando que é RUP, nada de desenvolvimento ágil.

Bom, pelo menos não podemos negar que esses estudantes passaram por uma experiência muito próxima da realidade no mercado de trabalho🙂

4 comments so far

  1. ASOBrasil on

    Esse relato do seu colega é muito engraçado! E você tem razão em dizer que pelo menos eles passaram por uma experiência próxima da realidade do mercado! Infelizmente é assim mesmo em muitos lugares

  2. Diego Carrion on

    Ainda bem teu amigo conseguiu entender os erros, tem alguns que saem da faculdade com a mente corrompida.

  3. Marco on

    Kra, eu acho q TDD é o canal … vc ve o q precisa (requisitos) escreve o teste para atender os requisitos e depois só escreve a lógica d negócio para passar nos teste … simples assim … resumidamente, simples assim … claro q tem mais coisa no meio disso td … mas o pko q sei sobre TDD, penso q eh uma forma mto boa para codificarmos apenas o necessário … depois refatora para deixar o código flexível e reutilizável …

  4. Zinho on

    E o pior. Sabe quando isso irá mudar?
    Quando já tivermos aprendido com as Metodologias Ágeis o suficiente para evoluir para algo ainda melhor.
    E os professores sempre 1(?) passo atrás!
    É f$#@


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: