I've always done something similar, but less structured and probably with less intent.
Most of the problems we software developers encounter, we've solved before. So it's usually a case of recognizing the pattern of problems this is, and matching it to one you've solved before, and quickly being able to reference that previous solution. That's 95% of getting it done.