Generative programming is a software engineering paradigm that aims to automate the production of highly customized products using reusable components. It emphasizes configuration knowledge to enhance component reusability, improve software quality, and optimize systems. Key strategies include incremental implementation, team assembly with domain and language experts, and utilizing technologies like C++ templates and metadata for effective component management.