People don't code [comment???] because they are lazy.
Sometimes yes, sometimes it's because overcommenting is just as bad as not commenting at all. Again, a good design with good coding standards substantially reduces the need to comment. The exception is when you're bound to a shitty design/implementation that can't be refactored with a reasonable effort, but in my 15 years in the biz, I've never come across a situation where refactoring was needed but couldn't be justified. You just have to break it down into small projects that can be bundled in with larger efforts so you don't have to go to a budgeting committee and tell them you need $x to fix code. Now, if your system is so fucked that you can't break it down to that level, your problem has shit to do with people who are "too lazy to comment."
Software engineers, programmers, whomever should comment their code unless it is painfully obvious what is going on.
Again, with good design and implementation (read: team experience), you'll inherently produce "painfully obvious" code. If you're not producing such code, someone is doing something wrong. Comments littered throughout code are nothing but duct tape and bubble gum trying to conceal a much more profound problem... or a programmer(s) who lacks confidence and feels he has to justify his approach to anyone who might stumble across his code. The latter has usually been the case in my experience... most comment abuse I've seen is what I call "defensive commenting." "Someone might see this and disagree with me and think I'm stupid, so I'm going to have that argument right here right now - IN THE CODE!"
People act all "self documenting" and shit. Well, if it took you 5 minutes to write 10 SLOC and a comment would take 20 seconds, is it really the end of the world.
Some of these people have architected/maintained enormous systems that generate millions of dollars per year and which are maintained by support groups in entirely separate business entities... yet very few comments beyond the standard autodoc comments are needed to keep it all running smoothly.
And yes, commenting the crap out of your code IS the end of the world (in the sense you used the phrase, that is), because now you need to maintain the code AND the comments, and there's nothing worse than stumbling across code that says one thing and comments that say another, and you're left wondering which one is wrong. Now you have to go on a version control scavenger hunt trying to piece it all together, looking at 50 versions of the stupid thing trying to figure out where the comment and code diverged. 99% of the time, the comment is what's borked and it needlessly sent someone on a wild goose chase.
Do everything you can to reduce, as much as possible, the need to write and maintain inline comments.
Wow. I wish I wrote college level code for a living.
I can only dream of the code I have to deal with being that trivial.
No offense, but you must work in a pretty amateurish shop if this is your attitude toward what's otherwise fairly sound logic. Maybe you just don't know better. Frankly, good code
should look like college level code. That's what you get when you write single-responsibility methods with no black box functionality, maintain separation of concerns, and adhere to the basics you learned the first time you wrote college level code. But hey, we're not REALLY writing code unless it's super creative and needs a few paragraphs to explain to the next guy wtf is really going on, right?
If you find yourself having to deal with spaghetti code that needs a 1:1 code:comment relationship, and you can't get anyone to buy in to spending a few manhours/week tidying it up, maybe you should consider going to another company, because an environment like that will SEVERELY stunt your professional growth. I don't mean that in a derogatory manner at all - I've been there. I worked for a shop that employed one hit & run consultant after another and the code turned into a mess right quick. No shop is perfect, but there are situations that are just utterly hopeless. You can't get through a weekend without getting called, you can't explore good practices, etc. You're always stressed out and you're not growing professionally. Recognize a bad situation for what it is, rather than confusing it for what all shops should be doing.