I would say your right on point about everything except high performers.<p>- I think things can get over-architected which is just as bad as spaghetti code.<p>- Made sure design and code is reviewed early in the process nothing like getting code done and unit tested then finding out the day before codes is supposed to move you need to redo everything(even if it works.) And treated like you screwed up. People don't know what they don't know.<p>- I'm a "quick developer" here are good short cuts in my opinion.<p>1. I worked on lots of easy stuff because most developers like to work on the challenging stuff. But it still needs done. Although, I do my share of hard stuff too.<p>2. I test as I go. I don't trust my own code. Test every 5-10 lines of code. the better the developer the more they think that one line of logging code doesn't need unit tested.<p>3. It's easy to change a doc than code. A lot of times there is ambiguity in a spec. Analyst and QA don't want to change stuff just as much as developers. If the business is ok with the code then change the doc.<p>4. I try to follow convention and talk users out of stuff that will take a long time to develop but add little value.<p>- watch TDD. A big part of QA is 2 eyes are better than 1. You lose a lot from having the same person code and code tests.
Thank you for writing this essay, Bill. I've been wanting to write a post like this for a long time, but you've stated my thoughts so clearly, I will just send this link.