Elizeu_Santos:
convencer a usar a agilidade…
olha, eu já desisti do tópico. sinceramente, nem vale a pena.
muito legal o teste citado linhas acima… melhor ainda se ele olhasse num pedaço de papel e percebesse que já existe um método que pode ajudar na implementação de algo.
a muito tempo que muitos programadores preferem enfiar a cabeça sem raciocínio do que pensar no que fazer.
em breve vamos discutir “fazer na mão ou usar drag n’ drop” e ai vem as mesmas questões. com um você faz rápido, com outro você sabe exatamente o que tem em cada parte do projeto.
ei, você que nunca olhou um UML, sabe o que tem na classe do seu vizinho? sabe que ele pode ter implementado algo com propósito parecido com o seu e que pode te ajudar?
vou fazer o melhor para o Java, e o melhor para o Java na minha opinião é [TÓPICO RESOLVIDO].
abraço
Melhor pro Java?
Não é por nada não, mas esse topico levantou temas importantes que precisa ser conhecidos e ganhar cada vez mais visibilidade. Empresa, desenvolvedores e clientes ganham com isso.
As faculdades ainda estão completamente desatualizada com relação aos rumos que o mercado está tomando.
O problema aqui não é UML X TDD(ou BDD), mas ‘modelo cascata’ X agilidade.
A verdade é que o ‘modelo em cascata’ a muito tempo deixou de ser em cascata, mas nem por isso ganhou um impulso no sentido de aceitar as mudanças com facilidade.
É isso que o mundo agil traz e é por isso que vem crescendo e mostrando resultado.
UML assume o sinonimo de ‘modelo em cascata’ pois quando pensamos nessa documentação, pensamos em um processo em cascata e em papeis bem definidos. Claro que isso também é uma generalização pois cada empresa tem sua própria cultura.
A UML sozinha não faz nada. Ela é só uma linguagem padrao para documentação e comunicação. Mas é por essa caracteristica que ela se aproxima tanto do ‘modelo em cascata’. Na verdade, em minha opiniao, ela poderia muito bem ser vista como uma solução para os modelo com foco no processo e papeis bem definidos. Isso pq a propria manutenção desses documentos exige que os papeis sejam diferenciados e que o processo seja o foco.
Claro que essa situação é pouco viavel para empresas menores com algumas dezenas de desenvolvedores. Geralmente nessas empresas a pessoa assume vários papeis, sendo analista, programador, testador e etc. Quando sobra tempo pra documentar e para manter essa documentação enquanto as empresas estão constantemente mudando suas regras ou sendo forçada a mudar por imposição do mercado ou da legislação? Essa é a realidade da maioria dos desenvolvedores.
Em empresas maiores ( com foco no processo) as pessoas acabam assumindo menos papeis existe todo um fluxo de informação que precisa ser comunicada e documentada. É aqui que entra a UML. A UML é uma ferramenta incrivel para essas grandes empresas com foco no processo. O problema é que mesmo essas grandes empresas já estão percebendo que esse foco no processo não funciona muito para o desenvolvimento de software. Estao percebendo que desenvolver software não é como desenvolver carro e que o próprio termo ‘fabrica de software’ é contraditorio se for analisado um pouco mais a fundo. Uma fabrica serve para fazer vários produtos iguais em sequencia, diminuindo o custo de produção. Em um software se repetimos uma classe ou um bloco de código que seja, tem algo errado que pode ser melhorado.
Então surge uma nova aboradagem que é o agil. Aqui temos o foco no resultado e o processo serve somente como suporte. Os papeis não são tao importante e o processo menos ainda. A UML não tem mais o processo nem os papeis pra suportar a quantidade de esforço necessário para manter toda documentação atualizada. Os testes estão de acordo com o que prega o agil pois tem foco no resultado e não no processo.
A questão não é saber Java, saber UML ou Padrões de Projeto. A questão é como levar uma solução para o cliente de forma rapida, util e com qualidade… é sempre pensar no retorno que o cliente vai ter com aquilo que foi investido.
Um profissional de TI não tem que fazer o que é melhor pro Java, mas o que é melhor para o cliente.