Eu me deparei com essa técnica de programação enquanto fazia programação em pares em uma entrevista e não conseguia encontrar o nome dela no google.
A idéia é que você primeiro escreva a expressão que usa as variáveis e depois escreva o código que calcula as variáveis posteriormente.
Para usar algum código de exemplo aqui:
private bool ValidPolicyNumber(string policyNumber)
{
var hasExpectedPrefix = policyNumber.Substring(0,5) == "POLIC";
var followedBy7Digits = Regex.IsMatch(policyNumber.Substring(6,7), "^[0-9]{7}$");
var hasLengthOf12 = policyNumber.Length == 12;
return hasExpectedPrefix && followedBy7Digits && hasLengthOf12;
}
Ao escrever esta função usando a técnica que eu mencionei, você primeiro escreveria a última linha return hasExpectedPrefix && followedBy7Digits && hasLengthOf12;
e depois as 3 linhas que a precedem.
A técnica mais próxima que pude encontrar é o "pensamento positivo", que é do SICP, mas está relacionado à chamada de funções que você implementará mais tarde, em vez de usar variáveis que você inicializará mais tarde.