I've wondered about this. Anecdotally, the place I've worked with the best quality didn't do code review (maybe three "serious" user-visible bugs during the 8 years I was there, one of which was a fab issue that couldn't have been caught with any amount of code review).https://twitter.com/skamille/status/1169765800829435904 …
-
Show this thread
-
Replying to @danluu
I believe code reviews, done well, are primarily about training and team building, not reducing bugs.
2 replies 4 retweets 44 likes -
Replying to @davidcrawshaw @danluu
That said, it is still worth questioning their cost/benefit! The modern code review consensus has been promoted by tech companies with enough revenue to hide any costs. The problem is what I think of as the value of code reviews is hard to measure.
1 reply 0 retweets 4 likes -
Replying to @davidcrawshaw
My feeling (just a feeling, I don't have evidence for this either way) is that pair programming works better for training than code reviews. I suspect actual training also works better, but since no one does that it's hard to compare.
2 replies 1 retweet 11 likes -
Replying to @danluu @davidcrawshaw
I've worked at two companies that are probably P99+ in how much explicit training they offer, but they're not even in the same league as what you get if you walk down to your local go/chess/bridge club, let alone what you get if you're a serious amateur athlete or go player.
3 replies 1 retweet 12 likes -
Replying to @danluu
Given it is hard to measure costs and near impossible to quantify benefits, it would be nice if major tech companies were significantly different so we could at least compare macro outcomes. Instead there is surprising amounts of groupthink.
1 reply 0 retweets 5 likes -
Replying to @davidcrawshaw
One thing I find funny about programming is the slow diffusion of practices. Fuzzing/randomized testing has been standard practice in hardware for my entire life and there are papers applying this to software that are decades old, I that doubt even 5% of devs use fuzzing today.
2 replies 3 retweets 11 likes -
Could it be that ~95% of devs today are using memory-safe languages? I like fuzzing, but it takes some rearchitecture to set up for, and I don't know that I'd believe it's worth it for something like JS, Java, Rust, or even Golang.
1 reply 0 retweets 0 likes -
I don't see why fuzzing or randomized testing should only be used for memory-unsafe languages? The vast majority of bugs I've found with these techniques aren't memory safety bugs.
1 reply 0 retweets 2 likes -
If we're talking about bug rates like in the original tweet (well under 1 a year for the entire product), you're probably not going to get there just by using a safe mainstream language or using standard-for-software testing techniques.
1 reply 0 retweets 2 likes
You might argue that you don't need bug rates that low for most software (and I'd agree), but that company also moved faster than all but one big tech company team I've been on, so the testing overhead couldn't have been too high relative to normal big tech company overhead.
-
-
Most software is also much more heavily state-dependent, and correctness is often much more difficult to analyze, than in processors. Imagine trying to fuzz test git...
1 reply 0 retweets 0 likes -
Replying to @NovalisDMT @cjbprime and
I'm pretty sure I've seen multiple papers where people test git and that it's very easy to turn up bugs in git? The limiting factor there seems to be the git developers wanting to spend time on bug fixes, not the difficulty of writing something that will point out a lot of bugs?
2 replies 0 retweets 0 likes - 3 more replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.