(input > your contribution > output) generally costs more. It takes time to take requirements and come up with feasible specifications.
If specifications are there then you just code away without caring about any of the design issues.
Edit: As for the preference, I prefer the first option because there's more creativity involved... but it would cost more for the client of course
