Matriz de decisão para navegar nas opções de tecnologia
Os requisitos de negócios estão alinhados com as metas, cronogramas e escopo do produto. – Essa escolha resolve o problema dos negócios de maneira eficaz? – Esse recurso vai agregar valor mensurável aos usuários ou ao produto? – O que são os KPIs para o sucesso? – Novo recurso com um claro impacto nos negócios – Corrigir crítica de correção necessária para a complexidade técnica da satisfação do cliente, quão complexa é a solução, tanto em termos de desenvolvimento quanto de manutenção? – Quão difícil é implementar? – Existem incógnitas ou riscos potenciais nesse projeto/solução? – Isso exigirá muito tempo ou esforço para manter? – Implementando uma nova camada de armazenamento em cache – integrando com um serviço de terceiros ou desempenho da API Qual o desempenho da solução em termos de latência, taxa de transferência, manuseio de carga e escalabilidade? – Esta solução atende às nossas necessidades de carga atual e projetada? – Podemos lidar com o crescimento futuro do tráfego/dados? – Ele está alinhado com os SLAs para desempenho (por exemplo, requisitos de latência)? – Lidando com milhares de usuários simultâneos – processamento de dados em tempo real com baixa capacidade de escalabilidade de latência para lidar com o aumento da carga ao longo do tempo. O sistema escala horizontal e verticalmente? Ele tem limites para o crescimento futuro? – Como o sistema lida com um aumento de usuários/dados? – Escalará sem esforço ou exigirá mudanças significativas à medida que crescemos? – Podemos particionar dados ou lidar com o aumento do tráfego facilmente? – Migrando para uma arquitetura de microsserviços – Fazendo a transição do monólito para a manutenção nativa da nuvem de quão fácil é manter, depurar e monitorar o sistema após a implantação? O sistema requer monitoramento pesado ou fornece diagnósticos claros? – Quão fácil é testar e depurar esse recurso/sistema? – Os desenvolvedores podem entender e trabalhar rapidamente com o sistema? – Qual é a curva de aprendizado para novos engenheiros? – Escolher uma estrutura simples e bem documentada – o código legado que precisa de confiabilidade da modernização e tolerância a falhas garante que o sistema tenha resiliência e possa se recuperar da falha. – Esta solução fornece alta disponibilidade e tolerância a falhas? – Existem mecanismos de failover em vigor? – Qual é o plano de recuperação de desastres? – Ele atende ao SLA de disponibilidade? – Usando um banco de dados distribuído com replicação – Serviços redundantes para garantir a segurança do tempo de uptime quão seguro é a solução? Segue as melhores práticas para autenticação, autorização, proteção de dados e controle de acesso? – A solução atende aos requisitos de conformidade de segurança? – Existem vulnerabilidades ou riscos conhecidos? – Como o sistema lida com a criptografia e controle de acesso? – Usando o OAuth 2.0 para autenticação do usuário – criptografar dados confidenciais em repouso e no tempo de desenvolvimento de trânsito tempo necessário para implementar a solução. A solução se encaixa nos cronogramas de liberação desejada? – Com que rapidez esta solução pode ser desenvolvida e entregue? – Ele atende aos objetivos do prazo ou do sprint? – Existe tempo suficiente para testar e controle de qualidade antes do lançamento? – Usando bibliotecas ou estruturas existentes para prototipagem rápida – o desenvolvimento rápido do MVP usando a experiência em equipe de microsserviços que a equipe tem experiência suficiente com a tecnologia? Qual é a curva de aprendizado? – Temos desenvolvedores com experiência com essa tecnologia? – A equipe precisará de treinamento adicional ou tempo de aceleração? – Esta tecnologia é bem apoiada na comunidade? – Usando o Node.js Quando a equipe está familiarizada com o JavaScript – selecionando uma tecnologia de banco de dados que sua equipe tem experiência com custos financeiros, custos de infraestrutura e recursos (pessoal, ferramentas) necessários para implementar a solução. – Esta solução se encaixa no orçamento? – Existem custos ocultos (por exemplo, custos de infraestrutura em nuvem, treinamento)? – Quais são os custos operacionais em andamento? – Escolhendo entre serviços gerenciados ou auto -hospedados – Custos do provedor de nuvem para armazenamento e flexibilidade e extensibilidade da largura de banda A solução pode se adaptar facilmente a mudanças futuras no ambiente comercial ou técnico? – Quão adaptável é essa tecnologia a necessidades ou mudanças futuras? – A arquitetura permite fácil integração com outros serviços ou ferramentas? – Podemos estendê -lo, se necessário? – Usando APIs RESTful para fácil integração futura – projetar um sistema com bloqueio de fornecedor de arquitetura de plugin A solução cria uma dependência de um fornecedor específico ou pode ser facilmente migrado? – A tecnologia está vinculada a um fornecedor ou serviço específico em nuvem? – Quão difícil é mudar para outro provedor, se necessário? – Quais são as estratégias de saída se o fornecedor mudar de termos ou preços? – Escolher um banco de dados de código aberto versus um proprietário- usando um serviço nativo em nuvem com alta dependência de uma única experiência do usuário do fornecedor (UX) a solução atende aos requisitos de UX em termos de velocidade, usabilidade e funcionalidade? – Como isso afetará a experiência do usuário final? – Esta solução suporta interações intuitivas, rápidas e responsivas? – Fornecerá uma experiência consistente entre dispositivos e plataformas? -Construindo um aplicativo da Web Mobile-primeiro-Projetando uma conformidade e regulamentos interativos e em tempo real do painel em tempo real a solução atende aos regulamentos e padrões de conformidade específicos do setor? – Esta solução cumpre os regulamentos legais ou específicos do setor (por exemplo, GDPR, HIPAA)? – Ele possui mecanismos de auditoria, log e retenção de dados em vigor? – Implementando armazenamento de dados seguro para dados de saúde – garantindo a conformidade do GDPR para dados do usuário
Fonte