Tudo que vou citar aqui não passa de uma dura e árdua realidade de um #soudev, um amigo meu que pediu para não citar o seu nome por vergonha{termina com son e começa com jander..rs } [só vou contar histórias que acredito que valem você saber e meditar]
Será um pouco extenso, a mente está a mil e não paro de tomar café[senta que lá vem a história]
Nada melhor que ter mesmo que pouco tempo uma experiência de trabalhar em vários códigos fontes e com diferentes ou nenhuma Arquitetura, ver coisas que até Deus dúvida, e mais, funciona! se muda uma vírgula para tudo :@ [acho que tem um if escondido em algum lugar do tipo if (refactoring==true) sefu;]
Então vamos fazer um retrospecto, entender um pouco da história para entender onde eu quero chegar com esse postão{post de itu}.
[VISUAL BASIC 6]
Comecei minha carreira oficialmente em uma empresa pequena, com 4 desenvolvedores e desenvolviamos em vb6. Fiquei super empolgado quando comecei a ver o código e entendê-lo. [minha primeira tarefa foi criar em vb6 um formluário que as informações alimentadas ali alimentavam um contrato feito no word]
Depois de um tempo estudando o código comecei a perceber no campo minado que estava pisando, cada alteração exigia muita atenção e a demora em fazer pequenos ajustes me assustava, então depois de um tempo na empresa junto com o Dono definimos um culpado, o gerente técnico, que deixou o código chegar naquele nível e não aceitava que poderia ser diferente [me lembrei dessa aqui agora http://www.guj.com.br/posts/list/212287.java] .
Assumi vamos dizer assim a responsabilidade do gerente técnico na sua saída e batiamos na tecla de migrar para o .net mas não foi na minha época que isso aconteceu[boas notícias ontem em saber que estão conseguindo migrar e sumir com aquele código sujo
].
PERGUNTA: Migrar, será essa solução? pelo trabalho que foi tentar migrar acho que fazer do zero será mais legível, porém inviável financeiramente creio eu.
LIÇÃO 1: Seu código tem que ser limpo e legível e sempre ter a preocupação de crescer saúdavel, não importa se foi feito em Objective-C [peguei pesado hein..rs] , a falta do mesmo pode fazer uma empresa e soudev's estagnar e por mais que tenha sinergia alta entre elas o crescimento da mesma será lento ou como já disse, sensação de estagnado. Porém nessa empresa pequena aprendi a ter responsabilidades além do código e vi de perto como é fácil criar sinergia, coisas que até hoje não presenciei igual, o lado positivo de se trabahar com equipe pequena creio que é essa, espero um dia trabalhar com um grupo menor e de qualidade incomparável, criar sinergia com uma equipe ninja
.
[JAVA + FLEX]
aqui a brincadeira começou a tomar proporções maiores, ainda uma pequena empresa com 12 desenvolvedores, e eu fazia parte de um grupo de 4 devs que estava criando do zero sistemas para Órgão público usando Java + Flex [ baseado no programa já existente em vb6 ].
Não fiquei muito tempo nessa empresa mas o sufuciente para melhorar meu desempenho e paixão pelo flex, o que mais me dá orgulho foi um gerador de relatórios que fiz em flex [hilário, usei muito drag drop, ObjectHandler 2, ItemRenderer em datagrid sinistro] esse gerador gerava um xml compatível com o que o ireport gera e a biblioteca JaperReport entende... então foi um aprimoramento ótimo e muitas dozes de café para segurar o ritmo insano que dei nesse projeto.
PERGUNTA: Criar do zero, será essa a solução? sempre fico na dúvida em relação a isso.
LIÇÃO 2: Nível técnico não foi um aprendizado vamos dizer assim novo.. e sim aprimoramento como falei, a nível de pessoas aprendi muito a não ter preconceito, pessoas que aparentemente você olha ou é avisado "com ele vc não vai se dar bem" e é exatamente ao contrário, e aprendemos a respeitar profissionais que passam em nossas vidas e nos ensinam muito. O lado negativo foi ver uma empresa pequena querendo ter comportamentos de empresa grande, proxy bloqueando twitter ou blogs, clima de desconfiança e questão de 10min no horário diário realmente fez eu não ficar muito tempo por lá, esse tipo de liderança limita qualquer ambiente criativo, sinergia da equipe e vontade de vestir a camisa pelo líder.
[JAVA]
Atualmente em uma empresa de médio porte que presta serviços para b2w(Americanas, Shoptime e Submarino) e com mais de 100 #soudev's. Tenho aprendido coisas novas todos os dias e em uma velocidade alucinante, e é aqui que quero compartilhar com vocês algumas experiências.
Atualmente na equipe de integração tenho me deparado com um novo mundo[novo pra mim que isso é mais antigo que minha vó
] projetos que na verdade são pequenos pedaços de um quebra cabeça, vc nunca vê um todo[muitas das vezes nem sei se tem um todo, da pra viajar legal com isso aqui
]. A cada momento que vou aprendendo como funciona na prática a arquitetura SOA fico impressionado e preocupado.
Impressionado - imagina os meus trampos anteriores...
- de vez de migrar eu iria integrar, ou seja, o que fosse novo faria em outra ferramenta mais atual que através de SOA se e comunicaria com o que tenho em vb6 através de serviços, quando fosse necessário implementar algo novo e/ou refactoring poderia usar outra técnologia e refazer ou simplesmente alterar aquela parte do negócio. SOA faz com que eu não perca tempo reescrevendo tudo de novo outra vez{um bom uso de pleonasmo nesse caso faz bem}
- De vez de criar do zero o que já tenho, eu iria integrar... ou seja, tanto no if e no else a implementação é a mesma tirando a necessidade dessa estrutura de condição
.
Arquitetura SOA nos dá a mesma solução para esses 2 casos, INTEGRAÇÂO. acho que essa é a palavra que você deve gravar nesse momento quando ouvir falar em SOA.
Preocupado - SOA está morrendo?(assim como o flash player{cara... esse pessoal que matar tudo, bando de assasino!}) MENTIRA. Sério, Estou preocupado com essa fama que SOA ganhou que só serve para aplicações de grande porte... não vejo assim... trabalhei em sistema pequenos como Automação comercial, Financeiro, Compras..etc e vi em todos eles hoje a necessidade de se usar SOA.
Além disso SOA também me faz pensar no serviço em si... onde a responsabilidade de quem presta serviço(#soudev) tendem a ser maior e muitas das vezes responsáveis por uma arquitetura de infraestrutura e/ou Cloud Computing disponibilizando a seus clientes esse serviços de uma forma unificada[sei...isso vai contra em pensar no Domínio de negócio em si, mas infelizmente o domínio tem uma grande possibilidade de sofrer grandes alterções durante seu ciclo... e nem todos podem negar as alterações pedidas no decorrer do projeto... pense em serviço..pense sempre em serviço e tente abstrair o máximo que pode do negócio{não concordou né..eu sabia..mas isso é tópico para outro Post} ]... ainda não é uma realidade mas acho que é uma tendência.
talvez esteja na hora de desmistificar um pouco a Arquitetura SOA e mostrar para todos de uma forma prática que SOA pode sim, ser a Arquitetura que vai te ajudar em um futuro próximo.
Cumps.
#SOUDEV #GOGOGO