paint-brush
Decisões de arquitetura de software: concentre-se nos fatos e não faça suposiçõespor@inovak
408 leituras
408 leituras

Decisões de arquitetura de software: concentre-se nos fatos e não faça suposições

por Ivan Novak4m2023/07/28
Read on Terminal Reader

Muito longo; Para ler

YAGNI é um princípio nascido da Programação Extrema. É essencialmente um lembrete amigável para não adicionar funcionalidade até que seja necessário. Não seja como o Smitty. Construa o que for necessário quando for necessário. Seja como o Slack; deixe que as necessidades de seus usuários orientem suas decisões de arquitetura de software.
featured image - Decisões de arquitetura de software: concentre-se nos fatos e não faça suposições
Ivan Novak HackerNoon profile picture
0-item

Você provavelmente está neste jogo porque deseja criar um software que não apenas funcione, mas também encante os usuários, certo?


Boas notícias! Este não é um jogo de adivinhação. Trata-se de decisões informadas com base em um entendimento profundo. É sobre fatos sobre suposições.


"Na arquitetura de software, os fatos são aliados confiáveis, mas suposições? Eles podem apenas construir um castelo de cartas digital."


O caminho pode estar repleto de escolhas difíceis, mas equipe-se com o conhecimento certo e você construirá com confiança a próxima coisa certa , em vez de uma dúzia (ou mais) de palpites!

O poder de Yagni

YAGNI? Você não vai precisar . É um princípio nascido da Programação Extrema. YAGNI é essencialmente um lembrete amigável para não adicionar funcionalidade até que seja necessário. E acredite em mim, é muito necessário.


A superengenharia é tão comum quanto as sessões de codificação noturnas movidas a café. Nenhum dos dois deveria acontecer, mas você sabe como é...


Permita-me compartilhar uma história. Uma vez trabalhei com um cara, vamos chamá-lo de Smitty. Agora, Smitty era um desenvolvedor extraordinariamente entusiasmado. Ele era do tipo que arquitetava uma nave inteira quando o cliente pedia apenas uma bicicleta. Foi inspirador, mas muitas vezes, era apenas desnecessário.


Um dia, Smitty passou semanas desenvolvendo um recurso complicado que, adivinhe, os clientes nunca usaram! Todo aquele tempo, energia e café - desperdiçados.


Esta é a armadilha que YAGNI ajuda a evitar. Não seja como o Smitty. Construa o que for necessário quando for necessário.

Sua estrela-guia: necessidades dos usuários

Mas como você sabe o que é necessário? Seu software não é para exibir suas proezas tecnológicas. Trata-se de resolver problemas para seus usuários. Sua estrela guia? As necessidades de seus usuários, não os caprichos e desejos seus ou de sua equipe.


Trata-se de criar uma solução tão perfeita que se encaixe na vida dos usuários como a peça que falta em um quebra-cabeça.


A arquitetura de software deve ser considerada deliberadamente e com o produto inteiro em mente, não algo herdado acidentalmente de uma sequência de projetos. Vamos evitar o "design por acidente".


Considere o Slack, a adorada plataforma de mensagens. O que diferencia o Slack é seu foco a laser nos desejos do cliente. Não estava destinado a ser apenas outro aplicativo de mensagens; ele foi projetado para ser um centro de colaboração onde o trabalho se desenrola perfeitamente.


Eles observaram, questionaram, coletaram dados e transformaram essas percepções no aplicativo que não podemos prescindir. Seja como o Slack; deixe que as necessidades de seus usuários orientem suas decisões de arquitetura de software.

A essência das decisões baseadas em dados

Agora, para tomar decisões informadas, você precisa de dados - fatos frios e concretos. A adivinhação é um inimigo que você não precisa em sua vida. É como tentar acertar o alvo com uma venda - na maioria das vezes, você errará.


Decisões tomadas com base em palpites são tão boas quanto jogar uma moeda, não é assim que um software de sucesso é construído.


Considere a Amazon, uma empresa que praticamente adora dados. Cada decisão arquitetônica, cada recurso adicionado e cada alteração feita é baseada em uma análise exaustiva dos dados do cliente. O resultado? Uma experiência de compra hiperpersonalizada que mantém os clientes voltando.

Mecanismos de construção para coleta de dados

"Onde obtenho esses dados?" Boa pergunta! Você constrói mecanismos para coletá-lo! Isso pode ser tão simples quanto o feedback direto do usuário ou tão complexo quanto pipelines de análise de dados automatizados. Pense nisso como armar armadilhas para insights - quanto mais você definir, mais você vai pegar.


Dito isso, é crucial lembrar que não se trata de coletar dados apenas por coletar. Trata-se de coletar insights acionáveis que ajudam você a fornecer recursos melhores e mais úteis para seus usuários. Vá em frente, abrace seu cientista de dados interior!

A jornada rumo a uma abordagem orientada a dados e centrada no usuário

Pivotar para uma abordagem centrada no usuário e orientada a dados pode parecer difícil, mas os resultados valem a pena. Adotar novas metodologias, cultivar a alfabetização de dados e promover uma cultura que prioriza o usuário são mudanças em toda a equipe.


Sim, pode parecer desafiador, mas a recompensa é um processo de desenvolvimento de software mais enxuto, eficiente e orientado a valor. Quando nos concentramos nas coisas certas com mais frequência, podemos realizar mais com menos!

Defendendo a mudança

Olha, pode haver resistência. Pode haver aqueles que se apegam aos velhos hábitos, aos modos confortáveis. Mas esta é sua chance de defender uma nova era. Sua chance de liderar sua equipe em direção a um futuro onde as decisões são guiadas por fatos, não por suposições.


Onde o software é construído para resolver problemas reais, não para satisfazer a coceira de um desenvolvedor.

Sua chamada para ação

Aqui está o seu primeiro passo. Comece pequeno. Na próxima vez que você estiver prestes a adicionar um recurso ou tomar uma decisão arquitetônica, pergunte: "Temos dados para respaldar essa decisão? Ela atende aos usuários ou é apenas uma novidade brilhante?"


Um bom software não é construído com base em caprichos ou palpites; é construído sobre decisões informadas.


Em última análise, trata-se de entregar um valor enorme para seus usuários - sobre a criação de software que as pessoas usam, amam e não conseguem imaginar suas vidas sem. E você é mais do que capaz de fazer isso.


Então, vá lá, reúna seus fatos, coloque seus usuários em primeiro lugar e comece a criar um software incrível. Seus usuários estão esperando.