On twitter, Naresh said this (among other things):
Clearly most startups dont value clean code & basic development hygiene, when they start off. Should they? IMHO it should not be their focus
Clean code skills, from the very simplest to the most complex, do not take much time, and therefore pay off very soon.
So that I’m not talking about people here, Imma call Naresh’s approach “Quick & Dirty”, and Ron’s “Clean Code”.
Which brings me to just what I was wondering. Is Clean Code a bunch of difficult contortions that a seasoned developer would rather shed? Is it a burden, a necessary evil, kind of like the ropes and stuff that a climber wears? Someone could say “Look, if I need to climb fast, right now. I might choose not to suit up.” You might agree or disagree with the trade-off, but at least it makes sense. At least you could see how it might be faster. You can imagine a movie scene where the hero takes off and climbs really fast, with no gear, to save the boy.
Or is CC more like skill? Because to me, the Quick & Dirty approach seems like telling a gymnast that when it’s just a local demo, she should not worry so much about her posture on the balance beam, or sticking her dismount. She doesn’t actually know how to do an ugly dismount. Or, maybe she knows how, but it would take more work than doing the kind she’s good at. And neglecting posture, if she could, could result in a fall.
Can a CC-skilled and seasoned developer write QD code? As I’ve been approaching it, my intention is to develop my skill in coding, so that I can write code that takes the form that my skill produces.
Maybe I’m missing something. Maybe he just means “Write decent code, but spend less time refactoring. You can do that later.” Is that what he means?
Or does the Quick & Dirty camp mean that the practices they use to create Clean Code are a burden, and they work better without them?
The largest single term in the formula calculating how much your team will produce today is simple as this: the internal quality of the code they wrote yesterday. Only noobs can trade (internal) quality for faster performance.
(I just want to point out that the brevity of this answer is a new personal best for me.)