I would concur with all the points above. It depends greatly on scale of project, number of people working on the project, and how things operate within the project. There are positives and negatives to each scenario. One thing to bear in mind is that nowadays there is a big shift towards programs which are easy to read and maintain rather than compressed, complicated code due the obvious reasons that storage is no longer such an issue and speed of execution for most people also not too much of a problem. However coming to a project 6 months after all the developers have left and then trying to work out what that funky bit of code does can be resource intensive, and can also be quite complex to validate.
... View more