O que é um problema complexo?
Existem coisas como SOLID, TDD e Design Patterns, exatamente porque muitos problemas "complexos", vem pela falta de cuidado com problemas "simples".
Eu costumo prestar muita atenção a arquitetura do projeto e os padrões de código que colocamos, porque quando aparece um problema, dificilmente ele vai ser algo grande, pois já montamos em código formas de achar mais rápido os problemas e resolve-los.
E a área de QA e Produto, junto com os Devs, ta aí pra pensar e encontrar os possíveis gargalos que pode ter um projeto. Por isso acho bastante necessário ter conhecimentos de outras áreas ao trabalhar em um projeto.