Reasons for code generation

listed with increasing importance:

  1. Save time by avoiding repetitious work

  2. Improve quality by automating error-prone tasks

  3. Further inprove quality by tracking dependencies automatically (e.g. the multi-tier problem)

  4. Save and re-use know-how by using descriptive technologies to capture domain knowledge. This conserves know-how across changes in programming languages and technologies and at the same time lets business users use their own language.

Where light is there is shadow as well: increased complexity is one price to pay. Participating developers need to understand and accept the value of abstractions and descriptions. Management needs to understand that progress will take time. For the reasons see also: Jack Herrington, Code-Generation techniques in Java (Resources)