Of course, these are not the only factors that determine success or failure: in
particular, if you have a great software team working on a product that nobody
wants, well, people aren't going to want it. And it's possible to imagine a
team of "gunslingers" that doesn't do any of this stuff that still manages to
produce incredible software that changes the world. But, all else being equal,
if you get these 12 things right, you'll have a disciplined team that can
Joel Spolsky, "The Joel Test: 12 Steps for Better Code"