Some great ‘things’ in there; some not so great. Overall, a good short read.
Good programming is not born from mere technical competence. I’ve seen highly intellectual programmers who can produce intense and impressive algorithms, who know their language standard by heart, but who write the most awful code. It’s painful to read, painful to use, and painful to modify. I’ve seen more humble programmers who stick to very simple code, but who write elegant and expressive programs that are a joy to work with.
Don’t be afraid of your code. Who cares if something gets temporarily broken while you move things around? A paralyzing fear of change is what got your project into this state to begin with. Investing the time to refactor will pay for itself several times over the life cycle of your project. An added benefit is that your team’s experience dealing with the sick system makes you all experts in knowing how it should work. Apply this knowledge rather than resent it. Working on a system you hate is not how anybody should have to spend their time.
If we accept that code is design — a creative process rather than a mechanical one — the software crisis is explained. We now have a design crisis: The demand for quality, validated designs exceeds our capacity to create them. The pressure to use incomplete design is strong.
Technical debt is like a loan: You benefit from it in the short-term, but you have to pay interest on it until it is fully paid off. Shortcuts in the code make it harder to add features or refactor your code. They are breeding grounds for defects and brittle test cases. The longer you leave it, the worse it gets. By the time you get around to undertaking the original fix there may be a whole stack of not-quite-right design choices layered on top of the original problem making the code much harder to refactor and correct. In fact, it is often only when things have got so bad that you must fix it, that you actually do go back to fix it. And by then it is often so hard to fix that you really can’t afford the time or the risk.
You want everything to be just like the stories that you read, but never write
@commondream and I had a brief discussion about the merits of comments.
I have a serious problem with the statement that “good code doesn’t need comments.” It seems to me that this is mostly used as a crutch for laziness - after all, I already know what the code does and why it does it, so it’s boring for me to go behind myself and write documentation for it. If I say that it’s good code, though, and that good code doesn’t need comments, then I spare myself of all that work!

Personally, I think comments are pretty much always useful. That’s not to say that comments should be ubiquitous, just that there is a time and place for them (and the fact that you might want to use some doesn’t mean your code is bad).
Good code is a lot like good writing, for a lot of reasons. The one that I want to focus on, though, is that good code knows its audience in the same way that good writing does - it makes reasonable assumptions about the people who will be reading it.

Examples: if I’m writing a bit of code that a bunch of beginners might look at - a Rails plugin, for example, is going to be seen by a bunch of people new to Rails, perhaps, if it becomes popular - I should keep that in mind when writing the code. In this example, I’ll probably comment the code pretty heavily to make it easy for a newbie to follow why the code does what it does.
On the other hand, if I’m writing some niche mathematics library that’s only ever going to be used by people who are already fairly familiar with the subject matter, I probably don’t need to explain why I’m having to cross-multiply the beta matrices; at the very least, I shouldn’t need to explain the basics of the operation.

In short, there’s no universally right answer for whether you should use comments on any particular part of your code, just like there’s no universally right answer on when you should use SAT words in your novel or make Battlestar Galactica references in your blog posts - it depends on your target audience.