Parte fundamental de Resolver Problemas son los datos a los que ese problema debe enfrentarse, las condiciones en que lo hace, la procedencia de esos datos, la relación que guardan con datos almacenados previamente, el tener que almacenar datos permanentemente, etc. Y todos y cada uno de lo anteriormente planteado generan a su vez problemas a resolver y condiciones a tener en cuenta. En otras palabras, los datos "toman vida" por sí mismos cuando el Programador resuelve problemas.