I came across this programming technique while doing pair programming in an interview and couldn't find the name of it on google. The idea is that you first write the expression which uses the variables and then you write the code that computes the variables later on. To use some example code here: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;}When writing this function using the technique I mentioned, you would first write the last line return hasExpectedPrefix && followedBy7Digits && hasLengthOf12; and then write the 3 lines that precede it. The closest technique that I could find is wishful thinking and that's from SICP but that relates to calling functions that you are going to implement later rather than using variables that you are going to initialize later. 
What's this programming technique called?
programming practices
It's just a variation on functional composition. Witness:private bool ValidPolicyNumber(string policyNumber) {    return hasExpectedPrefix(policyNumber)         && followedBy7Digits(policyNumber)         && hasLengthOf12(policyNumber);}private bool hasExpectedPrefix(string policyNumber){    return policyNumber.Substring(0,5) == POLIC;}private bool followedBy7Digits{    return Regex.IsMatch(policyNumber.Substring(6,7), ^[0-9]{7}$);}private bool hasLengthOf12{    return policyNumber.Length == 12;}The only real difference is that your version combines the calculated results of the smaller functions into a single functional scope, which is what you want unless the smaller functional expressions are intended to be re-used elsewhere.