SOA é umas das palavras que mais aparecem na boca dos executivos das grandes empresas nos dias de hoje, uma palavra que sempre vem acompanhada de aumento de produtividade, melhoria na governança, redução de custos… o que, convenhamos, tem tudo a ver com a Arquitetura Orientada a Serviços quando essa é bem aplicada!
Porém, entretanto, todavia e contudo existe um assunto que não é muito explorado quando falamos sobre isso: uma vez definida que a Arquitetura a ser utilizada daqui em diante será Orientada a Serviços, como serão desenvolvidos os próximos projetos, os próximos produtos, e como serão criados esses serviços para que depois possamos reutilizá-los?
Arquitetura vs. Metodologia
Bom, definimos nossa Arquitetura: ela será Orientada a Serviços, certo? Ótimo, maravilha! Mas e agora? Que metodologia iremos utilizar para implementar essa arquitetura, para implementar esses novos serviços?
Quando falamos de Metodologia me vem à cabeça as tradicionais e já muito bem conhecidas metodologias burocráticas, formais, cheias de papéis, documentos, artefatos… bom, não sei vocês, mas a imagem de sistemas demorando meses para serem concluídos, com aquela documentação gigantesca, diagramas e mais diagramas não me sai da cabeça. E, na grande maioria das vezes, no final temos apenas um sistema que não é mais o que o nosso cliente precisa, além é claro de uma linda e completa documentação.
Então, já que teremos uma grande mudança, porque não mudar também a forma como desenvolvemos nossos produtos e projetos, ou ao menos mudar a metodologia para o desenvolvimento desses novos serviços? Pois, se continuarmos trabalhando como sempre, possivelmente teremos os mesmos problemas, só que eles agora estarão distribuídos em serviços e gerenciados por ESBs.
Então, que tal experimentarmos os Métodos Ágeis (conhecidos, também como Agile)!?!
Dentre os principais objetivos de SOA, temos a governança dos serviços para facilitar o reúso, evitar o retrabalho, aumentar a produtividade e reagir rapidamente às mudanças organizacionais e operacionais. E os principais objetivos das metodologias ágeis são a agilidade (jura?!?), a facilidade de responder às mudanças rapidamente, numa forma muito mais iterativa.
Ora, percebam que muitos dos objetivos de SOA e Agile são os mesmos: ambos reconhecem que mudanças são comuns, e que precisam responder a elas rapidamente. Se vocês perguntarem ao Google sobre SOA e Agile, verão algumas páginas que dizem que eles são como “Maçãs e Laranjas”, numa analogia de que não devem ser comparados entre si.
Mas, na minha opinião podemos utilizar uma analogia muito melhor, comparando-os como duas frutas conhecidas por todos como frutas que se completam: Guaraná e Laranja!
Na próxima semana vou tentar mostra um pouco das vantagens e desvantagens (sim, elas existem) de se utilizar Agile para implementar SOA.
Até lá!
Abraços,
- Jonas Galli

LinkTo