Autora: Abigail Walker.

Publicação: 11 de Abril 2022.

Link para o artigo: Software Architecture Decisions: Culture Consideration.

Atualmente, no cenário da tecnologia, temos muitos exemplos de aplicativos e códigos que no passado foram considerados modernos, mas hoje não têm mais utilidade. Neste contexto, com o passar dos anos e com a rápida evolução da área computacional, vemos como isso tem afetado tanto os clientes, impactando o tempo de lançamento de novos recursos no mercado, quanto também a taxa de defeitos e a experiência geral do usuário. Assim, mostra-se a importância do tema em que a resenha abordará, que visa ajudar os desenvolvedores a evitarem esse problema do código se tornar obsoleto.

A priori, o ponto que o artigo de Walker começa a tratar é a receptividade. Certamente, é notável que este é um fator fundamental na empresa e que afeta diretamente o modo em que ela opera e permanece no mercado. Desta forma, foram considerados três fatores de receptividade, os quais incluem: o contexto da pilha de tecnologia atual, a dificuldade e a atratividade externa.

Sobre o contexto da pilha de tecnologia atual, ao realizar mudanças na escolha tecnológica é de suma importância refletir se a escolha tem um propósito e se foi planejada e tomada de maneira correta. Deve-se pensar nas consequências e também considerar de forma bastante cuidadosa a estratégia de comunicação que será passada a nova decisão, garantindo em sua fala, o diálogo aberto e otimista. Pois, como cita Abigail, a comunicação, se usada de maneira eficaz, desempenha um papel importante em incluir de fato a equipe e mostra a melhor aceitação das ideias propostas.

Por analogia, a dificuldade também é importante pensando se a tecnologia é fácil para os desenvolvedores assimilarem e se tem recursos disponíveis para melhorar o seu aprendizado. Inegavelmente, é um fato hoje que existem inúmeros sites e fóruns que ajudam os desenvolvedores a manejar melhor as novas tecnologias e respondem muitas dúvidas que os programadores podem vir a ter, mas ainda temos diversos equipamentos que possuem pouca documentação, o que pode se tornar um problema tanto para absorver quanto implementar o recurso.

Agora, o terceiro fator, a atratividade externa, é fundamental para a contratação de novos talentos. A maioria dos desenvolvedores ao entrarem no mercado, tomam em consideração as tecnologias que estão ligadas aos seus objetivos e interesses na carreira, assim se mostra a importância de considerar a perspectiva de um novo contratado ao fazer escolhas de estrutura tecnológica. Outro ponto a ser notado é a comunicação positiva na descrição do trabalho e durante o processo da entrevista de emprego e também, ter em mente em garantir a atratividade externa, preocupando a garantir o crescimento do desenvolvedor e o uso de tecnologias competitivas no mercado.

Assim como a receptividade, a velocidade para o mercado e a manutenção de longo prazo também influenciam na decisão de manter seu código e projeto funcionando com o passar dos anos. Sobre esses aspectos, sobretudo é válido considerar a rapidez com que é permitido fornecer valor tangível aos clientes, porque neste cenário é importante levar em consideração o tempo adicional que será usado para desenvolver recursos para o cliente, por exemplo relacionado a estrutura back-end e também considerar se vale a pena demorar mais no projeto, ou acelerar visando mostrar melhor solução no contexto geral que a arquitetura se encaixa.

Além disso, percebe-se que sobre a manutenção, também é notável ver que este processo inclui presciência de quaisquer dificuldades de teste, desgaste de funcionários e futuras mudanças no setor de tecnologia e influência dos tipos de decisões de design. Quando se trata de perda de funcionários, você precisa considerar os riscos e custos das opções de tecnologia se um de seus funcionários deixar a empresa, pois em casos de tecnologia feita sob medida, fabricada pelos próprios desenvolvedores, a porcentagem da quantidade de risco aumenta.

Finalmente sobre a criação do design, tem-se a opção de torná-lo flexível para permitir modificações para o futuro, pensar com antecedência se o design do seu software o fará ficar preso a uma tecnologia também é necessário perceber para evitar e assim fazer o seu código ser melhor aproveitável.

Portanto, é visto que as implicações consideradas podem afetar a empresa por anos, podendo impactar tanto os desenvolvedores quanto os clientes, assim se mostra fundamental considerar as implicações do plano de arquitetura de software ao escrever o software.