Arquitetura de software e agilidade combinam !!!

Eu penso que é muito importante antes de iniciarmos o desenvolvimento de qualquer sistema, que se elabore um desenho de solução, não importa o tamanho do sistema a ser construído. O que tenho visto nos últimos anos são times que simplesmente abdicam deste importante artefato ou ao contrário, tentam prever todos os detalhes de forma prematura, acredito que o custo das duas abordagens é alto.

Precisamos encontrar um meio termo, o manifesto agíl diz “responder a mudanças ao longo de um plano” deve haver um plano inicial e conforme as necessidades vão surgindo, ajustamos o plano. Precisamos criar um desenho de solução arquitetural inicial para servir como ponto de partida, um direcionamento para o time, isso pode nos livrar de muitos problemas futuros.

Muitas vezes arquitetura e a agilidade são considerados fatores conflitantes, entretanto quando ambas são tocadas corretamente a colaboração entre as duas se torna natural.

Precisamos tentar garantir que as decisões importantes tenham sido tomadas, dependendo do tipo de arquitetura selecionada, algumas decisões podem ser mais importantes que outras, em um cenário de baixo acoplamento a escolha da linguagem de programação não é tão crítica por exemplo.

Um bom desenho de solução colabora com a agilidade pois nos permite executar mudanças de forma mais flexível, quem nunca enfrentou a situação da impossibilidade de realizar mudanças específicas em um sistema sem quebrar outras coisas que não tem haver com o que foi alterado ?! Claro que é mais simples falar do que fazer, entretanto não podemos deixar de fazer o melhor que pudermos dado o cenário para cada situação.

Para me conhecer melhor acesse meu site e meu perfil no LinkedIn, fique a vontade para entrar em contato, vamos conversar !!! 

Você sabe o que é OpenAPI !?

A OpenAPI Specification, é uma iniciativa para a criação de interfaces usadas ​​para descrever, produzir, consumir e exibir serviços RESTful, existem também ferramentas para gerar código, casos de testes e outros recursos necessários fornecidos pela iniciativa.

O principal argumento para a adoção da OpenAPI Specification é o histórico fundamentado no Swagger que existe a muito tempo dando a credibilidade e a estabilidade necessárias garantida pela grande comunidade e suporte existentes.

Com cenários cada vez mais complexos fazendo uso de APIs, há uma forte demanda por garantir as aplicações em relação a padronização.

Com cenários cada vez mais complexos fazendo uso de APIs, há uma forte demanda por garantir as aplicações em relação a padronização, é a peça que estava faltando para iniciativas como a de Open Banking por exemplo.

Grandes players apoiam diretamente a iniciativa e a OpenAPI pelo que tudo indica veio para ficar, entretanto é sempre importante analisar os possíveis impactos em sistemas existentes, a OpenAPI dá suporte a uma grande quantidade de linguagens, isso significa que sistemas implementados com linguagens específicas podem sofrer grandes impactos, vale uma detida análise antes de qualquer ação mais radical.

A OpenAPI oferece um rico framework entretanto é importante que se atente as boas práticas existentes e destacadas pela iniciativa, para que se possa construir melhores APIs, para mais informações visite www.openapis.org.

Para me conhecer melhor acesse meu site e meu perfil no LinkedIn, fique a vontade para entrar em contato, vamos conversar !!! 

Não se engane, uma boa arquitetura de sistema é fundamental !!!

Como sabemos existem algumas fases no desenvolvimento de software que precisam ser consideradas para a construção de sistemas de forma organizada não importando se estamos falando de ágil ou cascata.

Uma das questões contidas no planejamento de desenvolvimento de um sistema é a arquitetura, tem a missão de linkar uma ideia (requisitos) a um plano de alto nível de como um sistema deverá ser implementado.

No momento de determinar como será a solução temos que levar em consideração os requisitos não funcionais como por exemplo a manutenabilidade, que determina facilitar as intervenções futuras no produto, é necessário considerar todos os requisitos envolvidos para que se planeje uma solução equilibrada, itens como segurança e performance por exemplo que podem conflitar.

Seja previdente, antes de iniciar os trabalhos de implementação verifique a solução de arquitetura elaborada inicialmente com o time e evite sofrimentos futuros.

Divida um sistema grande em sistemas menores (sub-sistemas e módulos) isso simplifica as tarefas de desenhar e dar manutenção, fica mais fácil encontrar problemas e escalar a solução.

Veja que a arquitetura de um sistema não é algo que se pode corrigir depois de implementada, ou seja, boa programação não resolve os problemas proporcionados por uma arquitetura inadequada.

Imagine construir um prédio e após levantar alguns andares descobrir que existe um problema na fundação, ai já era, precisa derrubar tudo e construir de novo, então sempre valide a solução de arquitetura sugerida com os envolvidos e seja mais feliz.

Para me conhecer melhor acesse meu site e meu perfil no LinkedIn, fique a vontade para entrar em contato, vamos conversar !!!