Conclusão

Encarei os estágios como oportunidades ímpares de colocar à prova todo o conhecimento adquirido durante o curso. Durante os mesmos, foi necessário relacionar conhecimentos de diversas matérias, a fim de buscar um solução para um determinado problema, o que mostrou o quanto as matérias estão relacionadas, embora sejam ministradas durante o curso sem uma preocupação maior em salientar tal.

Algumas lições que pude tirar foram:

Aprender leva tempo
Aprender uma ferramenta, tecnologia, metodologia, etc, leva um bom tempo. Com pouco tempo já é possível obter resultados mas, para que ela se torne realmente produtiva e eficiente, é necessário bastante treino. Por exemplo: no SGT o uso do XDoclet atrapalhou mais que ajudou, uma vez que encontrei muitos erros e tive que alterar alguns templates. Achei que a ferramenta me pouparia tempo mas, ao invés disso, acabou dispendendo mais ainda.
Perigo de usar ferramentas de terceiros
Usar software de terceiros sempre é arriscado. Durante os estágios precisei alterar o código de muitas ferramentas utilizadas, o que me tomou bastante tempo pois, precisava entender como elas foram desenvolvidas. Assim, ferramentas que deveriam ajudar acavaram atrapalhando.
Geradores de código
O uso deste tipo de software deve ser feito com muito cuidado e análise.
O próprio manual do XDocLet recomenda que, devemos utilizar ferramentas de geração de código, apenas par gerar codigo que, alguma vez já criamos manualmente.
Isto pode parecer óbvio mas, não é. Às vezes, nos sentimos impelidos a usar geradores de código exaustivamente, até mesmo para gerar código que nunca escrevemos antes. Este tipo de atitude pode levar a um problema sério: acaba-se gastando tempo demais no entendimento do código gerado.

Também é importante lembrar que, nem sempre o código gerado por estas ferramentas atende às necessidades. Neste caso, é preciso criar o código manualmente ou, alterar a ferramenta.
Durante o desenvolvimento do SGT houve casos em que foi necessário alterar o código da ferramenta de geração e, outros onde desistimos de utilizá-la, passando a escrever o código manualmente.

Importancia da documentação
Pude perceber, na prática, o valor que a documentação de um sistema tem. À medida que o sistema se torna mais complexo, fica cada vez mais difícil lembrar detalhes da sua implementação, do modelo utilizado, dos requerimentos, etc.
Acredito que uma maneira de prever, o sucesso ou o fracasso de um sistema, seja avaliando a qualidade da sua documentação. Isto porque, todo sistema precisa de manutenção e, a dificuldade principal em manter um sistema é entendê-lo sendo que, auxiliar no entendimento de um sistema é um dos papéis principais da documentação.
Sendo assim, se a documentacao nao for bem feita, o sistema dificilmente evoluirá e, com o tempo passará a nao ser mais útil ao cliente36.
Durante o desenvolvimento dos projetos, gastei bastante tempo documentando os sistemas. Como o trabalho foi individual, o resultado ficou aquém do esperado mas, mesmo assim já pude notar a sua importancia, principalmente quando precisava alterar ou adicionar alguma funcionalidade aos projetos.
Embora tenha criticado muito o uso de ferramentas de terceiros estou, na verdade, frisando a necessidade de tomar cuidado ao fazê-lo e, mostrando que se deve estar preparado para o caso de precisar alterar e aprendê-las mais profundamente pois, muitas vezes, isso é necessário.
Uma vez que uma ferramenta é bem aprendida e configurada, é possível obter grandes ganhos nos seus usos futuros.

... cliente36
O fracasso de sistemas por esta razao é, o que mas acontece. Razao pela qual empresas estao refazendo tantos sistemas.
Fabio Pisaruk 2004-12-07