I think lots of us are trying to solve this problem. I haven't played with the job-dsl plugin, yet; it sounds like it's on the right path, but as I understand it needs to be extended to support specific plugins.
I've got a pretty simple set of Python scripts that I use to build jobs. We've got about a dozen projects, each with one or more downstream deploy jobs, and another set of parallel regression and automation test jobs. So we're deep into the tens of jobs that need to be maintained. My script has a templatized XML file for each type of job and a config file for each project (which could probably be done away with if the projects were named consistently). It uses Jinja to generate the concrete job config.xml from the template and per-project config. It can both generate new jobs and update existing jobs with the new config. All I'm missing now is the ability to keep people from modifying these templatized jobs!
