←back to thread

466 points 0x63_Problems | 4 comments | | HN request time: 0s | source
Show context
vander_elst ◴[] No.42138032[source]
"Companies with relatively young, high-quality codebases"

I thought that at the beginning the code might be a bit messy because there is the need to iterate fast and quality comes with time, what's the experience of the crowd on this?

replies(9): >>42138075 #>>42138094 #>>42138186 #>>42138274 #>>42138314 #>>42138387 #>>42138735 #>>42139575 #>>42144797 #
randomdata ◴[] No.42139575[source]
In my experience you need a high quality codebase to be able to iterate at maximum speed. Any time someone, myself included, thought they could cut corners to speed up iteration, it ended up slowing things down dramatically in the end.

Coding haphazardly can be a lot more thrilling, though! I certainly don't enjoy the process of maintaining high quality code. It is lovely in hindsight, but an awful slog in the moment. I suspect that is why startups often need to sacrifice quality: The aforementioned thrill is the motivation to build something that has a high probability of being a complete waste of time. It doesn't matter how fast you can theoretically iterate if you can't compel yourself to work on it.

replies(1): >>42140206 #
1. RangerScience ◴[] No.42140206[source]
> thought they could cut corners to speed up iteration

Anecdotally, I find you can get about 3 days of speed from cutting corners - after that, as you say, you get slowed down more than you got sped up. First day, you get massive speed from going haphazard; second day, you're running out of corners to cut, and on the third day you start running into problems you created for yourself on the first day.

replies(1): >>42140494 #
2. stahorn ◴[] No.42140494[source]
A piece of advice I heard many years ago was to not be afraid to throw away code. I've actually used that advice from time to time. It's not really a waste of time to do a `git reset --hard master` if you wrote shit code, but while writing it, you figured out how you should have written the code.
replies(1): >>42143040 #
3. Groxx ◴[] No.42143040[source]
Very much yes.

There's little reason to try to go straight for the final product when you don't know exactly how to get there, and that's frequently the case. Build toys to learn what you need efficiently, toss them, and then build the real thing. Trying to shoot for the final product while also changing direction multiple times along the way tends to create code with multiple conflicting goals subtly encoded in it, and it'll just confuse you and others later.

replies(1): >>42150295 #
4. RangerScience ◴[] No.42150295{3}[source]
Came across the idea of "probe" (awhile ago) as a name for this.