I believe there are certain personalities drawn to software development, who are very detail-oriented and love technical challenges, to the detriment of the end result - forest vs trees. Just look at people who want to make games and end up writing a game engine, vs people who jump into Flash and make do with the tools available.
Personally, I would much prefer to just feed in a specification, or set of constraints, to a program, and have it spit out a working program. Program synthesis seems like an interesting area of research, but fairly basic at the moment. I imagine any useful synthesis will be domain-specific - generating a JSON web service/API will be quite different to writing a music visualizer.