RFP Anti AI

Prompt

Como evitar que as consultorias de software utilizem Inteligência Artificial, para responder um questionário de RFP, com foco em Desenvolvimento de Software?

Abacus

Você não consegue impedir 100% que uma consultoria use IA para redigir respostas de RFP (é fácil e barato de ocultar). O que dá para fazer é reduzir o incentivo, aumentar a chance de detecção e, principalmente, mudar o RFP para medir capacidade real (e não qualidade de texto).

Abaixo vão estratégias práticas, organizadas por objetivo.

1) Troque “perguntas genéricas” por “perguntas que exigem evidência”

IA responde muito bem a perguntas amplas (“descreva sua metodologia ágil”). Ela responde muito pior quando você pede provas verificáveis e detalhes específicos.

Como fazer no questionário:

  • Exigir exemplos reais com:
    • arquitetura (diagrama + rationale),
    • trade-offs assumidos,
    • principais incidentes/bugs e como foram resolvidos,
    • métricas (lead time, frequência de deploy, MTTR, cobertura de testes, taxa de falha em mudança).
  • Pedir artefatos (com dados sensíveis anonimizados):
    • Definition of Done, templates de histórias, checklist de PR, política de branching,
    • exemplo de plano de testes, estratégia de observabilidade, runbook.
  • Pedir nomes e papéis (e exigir que essas pessoas participem das próximas etapas):
    • tech lead, arquiteto, security champion, devops/SRE, QA.
  • Pedir estimativas com premissas:
    • “estime X” + “liste 10 premissas e riscos” + “o que invalidaria sua estimativa”.

2) Inclua “provas ao vivo” (onde IA não salva)

Se a sua decisão depende do que vai acontecer no projeto, faça o fornecedor demonstrar competência em tempo real.

Etapas recomendadas:

  • Entrevista técnica com o time que vai entregar (não só pré-vendas).
  • Workshop de arquitetura (60–120 min) em cima de um caso seu:
    • modelagem de domínio, decisões de integração, estratégia de dados, escalabilidade, segurança, LGPD.
  • Sessão de “debug/incident review”:
    • dê um cenário de produção (latência, fila travando, erro intermitente) e peça abordagem.
  • Code review simulado:
    • entregue um PR fictício e peça para identificar riscos e sugerir melhorias.
  • Mini case (time-boxed):
    • entregáveis pequenos: desenho + backlog inicial + plano de releases + critérios de aceite.

Essas dinâmicas tornam irrelevante se o texto do RFP foi “polido” por IA.

3) Use perguntas “anti-clichê” (contextuais e específicas)

Evite perguntas que geram respostas “de manual”. Prefira cenários.

Exemplos de perguntas melhores:

  • “Como vocês lidam com requisitos que mudam semanalmente sem destruir previsibilidade? Mostre como ficam ritos, métricas e contrato.”
  • “Em um monólito legado com deploy mensal, qual seria seu plano de 90 dias para aumentar frequência de deploy? Detalhe marcos e riscos.”
  • “Como vocês definem limites de domínio e ownership quando há múltiplos squads e dependências?”
  • “Mostre um exemplo de política de logs/PII e como garantem conformidade LGPD no ciclo de dev.”

4) Coloque cláusulas de divulgação (mais eficaz que “proibir”)

Proibir “uso de IA” é difícil de fiscalizar e pode virar guerra de gato e rato. Muitas empresas hoje aceitam IA, mas exigem transparência e responsabilidade.

Opções de política:

  • Opção A — Permitir com disclosure: fornecedor declara se usou IA generativa, quais ferramentas e quais controles (não envio de dados do cliente, revisão humana, etc.).
  • Opção B — Proibir para conteúdos do RFP: exige atestado, mas é menos realista.
  • Opção C — Proibir inserir dados do cliente em ferramentas públicas: costuma ser o mais importante (risco de confidencialidade).

Cláusulas úteis no RFP (rascunho):

  • Declaração/atestado de que:
    • (i) não foram inseridas informações confidenciais do cliente em ferramentas de IA externas,
    • (ii) as respostas foram revisadas por responsável técnico humano,
    • (iii) o fornecedor mantém trilha de auditoria interna (quando aplicável).
  • Direito de auditoria (limitado e razoável) para verificar processo, se houver suspeita.
  • Vinculação ao time: “as pessoas apresentadas/entrevistadas deverão compor o time mínimo; troca exige aprovação”.

5) Faça checagens que expõem “resposta bonita, mas vazia”

  • Consistência cruzada: crie perguntas que se referem a respostas anteriores (“com base na sua estratégia de testes descrita acima, como isso se aplica ao caso X?”).
  • Pequenas contradições intencionais: uma pergunta com restrição (“sem Kubernetes”, por exemplo). Respostas genéricas frequentemente ignoram.
  • Janela curta + perguntas customizadas: reduz tempo para “montar narrativa perfeita”.

6) Dê peso maior para evidências do que para texto

No scoring do RFP, aumente peso de:

  • demonstrações e workshops,
  • referências checadas (ligação com clientes, perguntas técnicas),
  • amostras de entregáveis,
  • capacidade do time (currículo + entrevista) e estabilidade (turnover).

E reduza peso de “metodologia”, “valores”, “visão”, etc. (onde IA brilha).


Recomendações finais (pragmáticas)

  • Se o seu medo é “IA mentir/embelezar”: o antídoto é evidência verificável + prova ao vivo.
  • Se o medo é “vazamento de dados”: foque em proibir inserir dados do cliente em IA pública e exigir controles.
  • Se você realmente quer “zero IA”: aceite que será difícil de fiscalizar; compense com entrevistas/workshops obrigatórios e cláusulas de responsabilização.

Se você quiser, eu posso:

  • reescrever um conjunto de 20–30 perguntas de RFP “anti-genéricas” para desenvolvimento de software, baseado no seu contexto (stack, tipo de produto, criticidade, integração, compliance),
  • e montar um modelo de matriz de avaliação (pesos + critérios) para minimizar respostas “de marketing”.

Prompt

Sim, pode montar o conjunto de perguntas “anti-genéricas” para desenvolvimento de software

Abacus

Para criar um questionário de RFP que neutralize respostas genéricas de IA, o segredo é sair do “O que você faz?” e entrar no “Como você resolveu isso especificamente?” e “Como você prova que sabe fazer?“.

Abaixo, organizei as perguntas em blocos temáticos. Elas foram desenhadas para exigir que um especialista humano (Tech Lead ou Arquiteto) pare para pensar e buscar evidências internas.

Bloco 1: Engenharia e Qualidade de Código

O objetivo aqui é fugir do “seguimos Clean Code” e focar em processos reais de governança.

  1. Gestão de Débito Técnico: Descreva o processo de identificação, priorização e pagamento de débito técnico em seus projetos atuais. Como vocês negociam com o Product Owner (PO) a alocação de tempo para refatoração vs. novas funcionalidades?
  2. Code Review e Padrões: Anexe um exemplo (anonimizado) de um checklist de Code Review utilizado por seus times. Como vocês garantem que os padrões de arquitetura definidos no início do projeto estão sendo seguidos após 6 meses de desenvolvimento?
  3. Estratégia de Testes: Em vez de citar a “Pirâmide de Testes”, detalhe: qual a sua política para testes de integração em ambientes com muitas dependências externas? Como vocês lidam com flaky tests (testes que falham intermitentemente)?
  4. Métricas de Engenharia: Quais métricas de performance de time (ex: DORA Metrics ou SPACE) vocês coletam nativamente? Apresente um dashboard real (com dados ofuscados) de um projeto similar ao nosso.

Bloco 2: Arquitetura e Decisões Técnicas

IA é ótima em teoria, mas ruim em explicar o “porquê” de escolhas difíceis.

  1. Trade-offs de Arquitetura: Descreva uma situação em que o time teve que escolher entre duas tecnologias ou padrões (ex: Microserviços vs. Monólito Modular). Quais foram os critérios de decisão e, olhando para trás, o que fariam diferente?
  2. Segurança por Design: Como vocês garantem que segredos (chaves de API, senhas) não sejam commitados no repositório? Descreva o fluxo de remediação caso uma vulnerabilidade crítica seja detectada em uma biblioteca de terceiros em produção.
  3. Observabilidade: Descreva a estratégia de logs e rastreamento (tracing) que vocês implementam. Como o time diferencia um “alerta crítico” de um “ruído” para evitar a fadiga de alertas?
  4. Escalabilidade: Explique como vocês testam o limite de carga da aplicação antes de um evento de pico (ex: Black Friday ou lançamento). Quais ferramentas usam e como interpretam os resultados?

Bloco 3: Agilidade e Gestão de Produto

Foco em como a consultoria lida com o caos e a incerteza, não apenas no Scrum Guide.

  1. Gestão de Dependências: Em um cenário onde o seu squad depende de uma API de outro fornecedor que está atrasada, qual é o protocolo de escalonamento e como vocês mitigam o impacto no cronograma?
  2. Definition of Done (DoD): Forneça o DoD real de um projeto atual. Como vocês garantem que “Done” inclua documentação, segurança e critérios de acessibilidade?
  3. Refinamento Técnico: Como o time técnico participa da escrita das histórias de usuário? Descreva o processo de quebra de uma funcionalidade complexa em entregas menores e testáveis.
  4. Turnover e Conhecimento: Qual foi a taxa de turnover técnico nos últimos 12 meses nos times de desenvolvimento? Como vocês garantem que a saída de um desenvolvedor sênior não resulte em perda de conhecimento crítico do nosso negócio?

Bloco 4: DevOps e Cultura de Entrega

Perguntas que exigem detalhes de infraestrutura e automação.

  1. Pipeline de CI/CD: Descreva o fluxo completo de um commit desde a máquina do desenvolvedor até a produção. Quais são os “gates” automáticos e manuais? Quanto tempo dura esse ciclo em média?
  2. Gestão de Ambientes: Como vocês garantem a paridade entre os ambientes de Desenvolvimento, Homologação e Produção? Vocês utilizam Infraestrutura como Código (IaC)? Se sim, quais ferramentas?
  3. Post-Mortem: Anexe um exemplo de um relatório de Post-Mortem (análise de causa raiz) de um incidente real ocorrido em um de seus clientes. Como a cultura de “não culpabilização” (blameless) é aplicada na prática?

Bloco 5: Desafio Prático (O “Pulo do Gato”)

Este bloco deve ser respondido em um formato específico para dificultar o uso de prompts simples.

  1. Cenário de Conflito: “Temos um requisito legal que precisa entrar em produção em 15 dias, mas o time técnico afirma que a arquitetura atual precisa de 30 dias de refatoração para suportar isso com segurança.” Peça para o Tech Lead que será alocado ao projeto gravar um vídeo de 3 minutos ou escrever uma nota técnica explicando a estratégia de contorno.
  2. Análise de Repositório: “Se abrirmos o repositório de um projeto atual de vocês agora, o que encontraríamos em termos de documentação técnica (README, ADRs, Swagger)?” (Peça prints de tela).

Dicas para a Avaliação:

  • O “Cheiro” da IA: Respostas que usam muitos adjetivos (“robusto”, “escalável”, “sinergia”, “ponta a ponta”) sem citar nomes de ferramentas, versões ou exemplos de problemas reais são fortes candidatas a terem sido geradas por IA.
  • A Prova Real: No edital, deixe claro que qualquer afirmação feita no questionário poderá ser objeto de demonstração ao vivo na etapa de Shortlist. Se eles disserem que usam “TDD com 90% de cobertura”, peça para ver o relatório de cobertura de um projeto no dia da entrevista.
  • Penalização: Estabeleça que respostas puramente teóricas (que apenas explicam o conceito da tecnologia em vez da aplicação dela) receberão nota zero.

Você gostaria que eu elaborasse uma tabela de pesos para essas perguntas, definindo o que seria uma “Resposta Nota 10” vs. uma “Resposta Gerada por IA”?

Prompt

Sim

Abacus

Para diferenciar uma resposta técnica real de uma “alucinação” ou texto genérico de IA, você deve avaliar a densidade de evidências e a especificidade.

Abaixo, apresento uma matriz de avaliação com os critérios de pontuação e exemplos comparativos para o seu comitê de seleção.

Matriz de Avaliação: Humano Especialista vs. IA Generativa

Critério Resposta Nota 0 a 3 (Provável IA / Comercial) Resposta Nota 8 a 10 (Especialista Real)
Nível de Abstração Teórica e conceitual. Explica “o que é” a metodologia (ex: “O TDD garante qualidade”). Prática e aplicada. Explica “como fazemos aqui” (ex: “Usamos Jest e impomos um gate de 80% no CI”).
Uso de Ferramentas Cita categorias de ferramentas ou nomes muito óbvios (ex: “Usamos nuvem e CI/CD”). Cita a stack específica, versões e integrações (ex: “Terraform com módulos customizados no Azure DevOps”).
Trade-offs Apresenta apenas o lado positivo. Tudo é “perfeito”, “ágil” e “escalável”. Admite dificuldades, riscos e escolhas difíceis (ex: “Optamos por NoSQL, mas sofremos com a consistência eventual”).
Evidências Promessas de que “seguem as melhores práticas do mercado”. Anexos, prints, nomes de métricas reais e exemplos de projetos passados.
Vocabulário Adjetivos vagos: “robusto”, “sinergia”, “ponta a ponta”, “disrupção”, “alinhamento”. Verbos de ação e termos técnicos: “provisionar”, “refatorar”, “mockar”, “latência de p99”, “dead-letter queue”.

Exemplos Comparativos para Treinar seu Avaliador

Para ilustrar, veja como as duas inteligências (a humana e a artificial) responderiam à mesma pergunta do seu RFP:

Pergunta: “Como vocês garantem a qualidade do código e lidam com débito técnico?”

  • Resposta Típica de IA (Nota 2):

    “Nossa consultoria preza pela excelência técnica. Utilizamos as melhores práticas de Clean Code e revisões de pares para garantir um código robusto e escalável. O débito técnico é monitorado constantemente e priorizado em nossos backlogs de sprint, garantindo que a dívida técnica não comprometa a agilidade do projeto a longo prazo. Focamos em entregar valor com alta qualidade.”

    • Por que é nota baixa? Não disse como monitora, qual ferramenta usa, quem decide a prioridade e não deu nenhum exemplo de um débito real que resolveu.
  • Resposta de um Tech Lead Real (Nota 10):

    “Utilizamos o SonarQube integrado ao pipeline do GitHub Actions, com um Quality Gate que bloqueia o merge se a cobertura de testes novos for inferior a 80% ou se houver Security Hotspots. Sobre o débito técnico: reservamos 20% da capacidade de cada sprint para ‘Enabling Tasks’. Um exemplo real: no projeto [Cliente X], identificamos que a latência estava subindo devido a consultas N+1 no ORM. Registramos isso no Jira como débito técnico, apresentamos o impacto de custo de infraestrutura ao PO e realizamos a refatoração na Sprint 4, reduzindo o tempo de resposta em 300ms.”

    • Por que é nota alta? Citou ferramentas específicas, deu uma métrica clara (20%), explicou um problema técnico real (consultas N+1) e o resultado obtido.

Tabela de Pesos Sugerida para o Score Final

Se você estiver usando uma planilha de avaliação, recomendo esta distribuição de pesos para garantir que a capacidade técnica sobressaia ao “marketing”:

Categoria Peso O que observar no Score
Bloco 1: Engenharia e Qualidade 25% Rigor técnico e automação (provas de CI/CD e Testes).
Bloco 2: Arquitetura e Decisões 20% Capacidade analítica (justificativa de escolhas e trade-offs).
Bloco 3: Agilidade e Gestão 15% Realismo operacional (como lidam com atrasos e turnover).
Bloco 4: Provas Vivas / Workshops 30% Eliminatório. Performance em tempo real sem auxílio externo.
Bloco 5: Referências de Clientes 10% Validação com terceiros sobre o que foi escrito no papel.

Dica de Ouro: O “Campo de Controle”

Adicione uma pergunta propositalmente estranha ou muito específica ao seu negócio no meio do questionário, como: “Como sua estratégia de branching (Gitflow/Trunk-based) se adaptaria caso nosso ambiente de homologação fique indisponível por 48h devido a uma migração de legado?”

A IA tentará dar uma resposta genérica de “manter a calma e comunicar”. Um humano técnico dirá: “Nesse caso, teríamos que criar mocks para as APIs do legado ou usar flags de funcionalidade (Feature Toggles) para não travar o desenvolvimento, mas o deploy ficaria retido na branch de integração.”

Próximo passo: Você quer que eu gere um modelo de cláusula contratual que vincule as respostas técnicas do RFP ao contrato final, para que eles possam ser penalizados se a entrega não seguir o que foi “prometido” (ou gerado por IA)?

Prompt

Sim

Abacus

Para garantir que o “brilho” das respostas do RFP (sejam elas geradas por IA ou por um time de pré-vendas de elite) se traduza em realidade na execução, você precisa de ancoragem jurídica.

Abaixo, apresento uma sugestão de cláusulas para incluir no seu Contrato de Prestação de Serviços de Software. O objetivo é transformar o questionário de RFP em um anexo técnico vinculante.


Cláusulas de Vinculação Técnica e Responsabilidade

Cláusula 1: Da Natureza Vinculante das Respostas do RFP

1.1. O Questionário de Resposta Técnica (Anexo X), preenchido pela CONTRATADA durante a fase de seleção (RFP), é parte integrante e indissociável deste Contrato. 1.2. A CONTRATADA declara que todas as capacidades técnicas, metodologias, ferramentas e níveis de automação descritos no Anexo X estão disponíveis e serão aplicados integralmente na execução do projeto. 1.3. Qualquer divergência entre a prática observada na execução e as respostas fornecidas no RFP será considerada descumprimento contratual, sujeitando a CONTRATADA às sanções previstas na Cláusula de Penalidades.

Cláusula 2: Da Autoria e Veracidade das Informações

2.1. A CONTRATADA garante que as respostas técnicas fornecidas foram validadas por profissionais de nível Sênior ou Especialista que compõem seu quadro efetivo. 2.2. Caso tenha sido utilizada Inteligência Artificial Generativa para a redação das respostas, a CONTRATADA assume total responsabilidade técnica e civil pelo conteúdo, garantindo que as afirmações não são “alucinações” ou promessas desprovidas de capacidade operacional real. 2.3. A inserção de dados confidenciais da CONTRATANTE em ferramentas de IA públicas durante o processo de resposta ou execução do projeto é terminantemente proibida, configurando violação grave de sigilo.

Cláusula 3: Da Garantia de Qualidade e “Gate” de Saída

3.1. A CONTRATADA obriga-se a manter os padrões de engenharia declarados (ex: cobertura de testes de X%, análise estática de código sem vulnerabilidades críticas, etc.). 3.2. A CONTRATANTE reserva-se o direito de realizar auditorias técnicas (Code Reviews e Security Scans) a qualquer tempo. Caso os padrões entregues sejam inferiores aos prometidos no RFP, a CONTRATADA deverá remediar o código em até [X] dias, sem ônus adicional para a CONTRATANTE e sem impacto no cronograma.

Cláusula 4: Da Substituição de Pessoal Chave

4.1. Os profissionais apresentados como “Lideranças Técnicas” ou “Arquitetos” durante o processo de RFP e entrevistas devem atuar efetivamente no projeto por, no mínimo, [90] dias. 4.2. A substituição desses profissionais só poderá ocorrer por motivo de força maior e o novo profissional deverá possuir qualificação técnica igual ou superior, sujeita à aprovação prévia e entrevista técnica por parte da CONTRATANTE.


Estratégia de Penalização (SLA Técnico)

Além das cláusulas, você pode vincular uma parte do pagamento (ex: 10% da fee mensal ou do milestone) ao cumprimento de SLAs de Engenharia baseados no que eles prometeram no RFP:

  • Exemplo de Gatilho de Multa: “Se a CONTRATADA afirmou no RFP que entrega 80% de cobertura de testes, e a auditoria mensal detectar que a cobertura real é de 50%, haverá uma retenção de 5% do valor da fatura do mês corrente até a regularização.”

Como apresentar isso no RFP?

Para afastar consultorias que estão apenas “usando o ChatGPT para ganhar o bid”, adicione este aviso logo na primeira página do questionário:

“Atenção: Todas as respostas técnicas deste questionário serão anexadas ao contrato final. A incapacidade de demonstrar na prática as metodologias e ferramentas aqui descritas será considerada quebra de contrato. Não responda com capacidades que seu time não possa sustentar tecnicamente em uma sessão de live-coding ou auditoria de código.”

Isso geralmente faz com que o time comercial da consultoria chame o time técnico para revisar o texto antes de enviar, o que já resolve 80% do problema do uso indevido de IA.

Você gostaria que eu gerasse um checklist de auditoria para você usar no primeiro mês de projeto e validar se eles estão cumprindo o que escreveram?

Prompt

Sim

Abacus

Este checklist foi desenhado para ser aplicado na “Sprint 0” ou no final do primeiro mês de contrato. Ele serve para confrontar as promessas do RFP com a realidade do repositório e do dia a dia do time.

Se a consultoria usou IA para “enfeitar” as respostas, as lacunas aparecerão aqui.

Checklist de Auditoria Técnica (Pós-RFP)

1. Governança e Qualidade de Código

  • Análise Estática: O SonarQube (ou similar) está configurado? O Quality Gate está bloqueando o pipeline em caso de falha ou é apenas informativo?
  • Cobertura de Testes: A cobertura real bate com o percentual prometido? (Peça para rodar o relatório de cobertura na sua frente).
  • Code Review: Abra 3 Pull Requests aleatórios. Há comentários técnicos reais ou apenas “LGTM” (Looks Good To Me)? Os revisores são os seniores prometidos?
  • Documentação: Existe um arquivo README.md atualizado, um CONTRIBUTING.md e, principalmente, registros de decisões arquiteturais (ADRs)?

2. DevOps e Automação

  • Pipeline CI/CD: O deploy em homologação é 100% automatizado ou depende de alguém “rodar um script” ou “ajustar algo no console”?
  • Infraestrutura como Código (IaC): Se prometeram Terraform/CloudFormation, peça para ver onde o estado da infraestrutura está armazenado.
  • Gestão de Segredos: As chaves de API e senhas estão em um Vault (AWS Secrets Manager, HashiCorp Vault) ou estão “hardcoded” em arquivos de configuração/variáveis de ambiente do CI?

3. Segurança e Compliance

  • Análise de Dependências: Existe alguma ferramenta (Snyk, Dependabot, OWASP Dependency-Check) rodando para identificar bibliotecas vulneráveis?
  • Dados Sensíveis: No ambiente de desenvolvimento/homologação, os dados são anonimizados ou estão usando um dump da produção? (Risco grave de LGPD).

4. Gestão e Agilidade

  • Métricas DORA: O time consegue extrair agora o Deployment Frequency e o Lead Time for Changes? Se prometeram gestão por métricas, isso deve estar pronto.
  • Backlog Técnico: Existem tarefas de “Débito Técnico” ou “Refatoração” criadas no Jira/Azure DevOps, ou o backlog só tem funcionalidades de negócio?
  • Ritos: Participe de uma Daily. O time discute impedimentos técnicos ou é apenas um “status report” para o gerente?

Como conduzir a “Blitz Técnica” (A Prova Real)

Não avise com muita antecedência. Marque uma agenda de 1 hora chamada “Alinhamento de Padrões de Engenharia” e peça para o Tech Lead da consultoria compartilhar a tela e mostrar:

  1. O Pipeline de CI/CD executando.
  2. O Dashboard de Qualidade (SonarQube/Snyk).
  3. O Repositório de Código (mostrando o histórico de commits e PRs).

Sinais de Alerta (Red Flags):

  • “Ainda estamos configurando”: Se prometeram que já possuíam esses processos maduros no RFP, eles deveriam estar rodando desde o dia 1.
  • “O especialista que sabe disso não está na call”: No RFP eles garantiram que o time alocado teria esse conhecimento.
  • Respostas defensivas: Se o time técnico da consultoria parecer surpreso com as exigências, significa que o time de Vendas/IA escreveu o RFP sem consultar quem realmente está codando.

Conclusão da Estratégia

Ao unir o Questionário Anti-IA, a Cláusula Contratual e este Checklist de Auditoria, você cria um cerco onde:

  1. A consultoria tem medo de mentir (Contrato).
  2. A consultoria não consegue enrolar com termos genéricos (Questionário).
  3. A consultoria é pega na execução caso tenha prometido o que não entrega (Checklist).

Precisa de ajuda para redigir o e-mail de convocação para essa auditoria ou quer detalhar algum ponto específico de uma stack (ex: Java, React, Python)?

Prompt

Sim. A stack é Java, com Spring Boot, JPA, API RESTful, API First, Swagger, Angular como Frontend e banco de dados PostgreSQL.

Abacus

Com essa stack específica (Java/Spring Boot/Angular/Postgres), o potencial para respostas genéricas de IA é altíssimo, pois há muita documentação pública sobre isso. Para “pegar” a consultoria, precisamos de perguntas que foquem em configuração fina, performance e segurança real.

Aqui está o Checklist de Auditoria Técnica e as Perguntas de Filtro customizadas para essa stack:

1. Perguntas de Filtro (Para o Questionário de RFP)

  • API First & Swagger: “Como vocês garantem que o contrato do Swagger/OpenAPI está sincronizado com a implementação? Vocês utilizam geração de código a partir do contrato (Code Generation) ou a documentação é gerada a partir do código? Justifique a escolha com base na manutenção do contrato por múltiplos times.”
    • O que esperar: Uso de plugins como openapi-generator-maven-plugin ou bibliotecas como SpringDoc. Se disserem “fazemos manual”, é um sinal de alerta para erro humano.
  • JPA & Postgres Performance: “Como o time monitora e evita o problema de N+1 selects e o uso excessivo de Eager Loading em entidades complexas? Como vocês lidam com a paginação de grandes volumes de dados no Postgres para evitar consumo excessivo de memória na JVM?”
    • O que esperar: Menção a EntityGraphs, Join Fetch, DTO Projections e o uso de Pageable do Spring Data.
  • Spring Boot Security: “Descreva a estratégia de segurança para as APIs. Como é feita a validação do JWT e como vocês implementam o RBAC (Role-Based Access Control) de forma que não polua os controllers com anotações repetitivas?”
    • O que esperar: Uso de Spring Security, Method Security (@PreAuthorize), e possivelmente um GlobalExceptionHandler para tratar erros de acesso.
  • Angular State Management: “Para o frontend em Angular, em que situações vocês optam por usar NGRX/NGXS vs. BehaviorSubjects em serviços? Como garantem que a aplicação não sofra com memory leaks ao destruir componentes que possuem subscrições ativas?”
    • O que esperar: Menção a OnDestroy, takeUntil(notifier), ou o uso do async pipe no HTML.

2. Checklist de Auditoria (A “Blitz” no Código)

Marque uma call e peça para ver os seguintes arquivos/configurações:

No Backend (Java/Spring Boot):

  • pom.xml / build.gradle: Verifique se existem dependências de segurança atualizadas e se não há bibliotecas “mortas” ou vulneráveis.
  • application.yml: Veja se as credenciais do Postgres estão protegidas por variáveis de ambiente ou se estão em texto puro (erro grave).
  • Tratamento de Exceções: Peça para ver o @ControllerAdvice. Ele retorna mensagens amigáveis ou está expondo o stack trace do Java para o cliente (risco de segurança)?
  • Migrations: Eles estão usando Flyway ou Liquibase para gerenciar o esquema do Postgres? (Se alterarem o banco na mão, a consultoria é imatura).
  • Logs: Verifique se os logs estão estruturados (JSON) e se não estão logando dados sensíveis (PII) como senhas ou CPFs.

No Frontend (Angular):

  • Interceptors: Existe um HttpInterceptor centralizado para injetar o token JWT e tratar erros 401/403?
  • Guards: As rotas protegidas possuem CanActivate guards ou a segurança é apenas “esconder o botão”?
  • Lazy Loading: O app-routing.module.ts utiliza Lazy Loading para os módulos? (Essencial para performance em Angular).
  • Linting: O projeto possui ESLint configurado com regras rígidas?

3. Modelo de E-mail para Convocação da Auditoria

Este e-mail deve ser enviado ao Gestor da Consultoria com cópia para o Tech Lead deles:

Assunto: Alinhamento Técnico e Validação de Padrões de Engenharia – Projeto [Nome]

Olá [Nome do Gestor],

Conforme previsto nas cláusulas de qualidade do nosso contrato e nas respostas fornecidas no questionário de RFP, gostaríamos de realizar uma sessão de alinhamento técnico no dia [Data].

O objetivo é validar a configuração inicial da stack (Java/Spring/Angular) e garantir que os padrões de excelência prometidos (API First, Cobertura de Testes, Segurança) estão devidamente configurados no ambiente de desenvolvimento.

Agenda da sessão (60 min):

  1. Demonstração do Pipeline de CI/CD (Build, Testes e Deploy).
  2. Review da estrutura do projeto Java (Configuração de JPA, Security e Swagger).
  3. Review da arquitetura Angular (Módulos, Guards e Interceptors).
  4. Visualização do dashboard de qualidade (SonarQube/Snyk).

Pedimos que o Tech Lead responsável pelo projeto conduza a apresentação compartilhando o código real e as ferramentas de monitoramento.

Atenciosamente, [Seu Nome]


O que isso resolve?

Se a consultoria usou IA para dizer que são “especialistas em API First e alta performance com Postgres”, mas na hora da call o desenvolvedor não sabe o que é um Flyway ou não configurou o Lazy Loading no Angular, você tem a prova material de que a proposta foi enganosa.

Isso te dá poder de negociação para exigir a troca do time ou aplicar as multas contratuais que desenhamos anteriormente.

Deseja que eu detalhe algum cenário de erro comum nessa stack para você questionar durante a call? Por exemplo, como eles lidam com transações distribuídas ou cache?