Generality creep
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Fri Mar 29 16:26:06 UTC 2019
On 3/29/19 11:12 AM, FeepingCreature wrote:
> On Friday, 29 March 2019 at 13:57:57 UTC, Andrei Alexandrescu wrote:
>> Here, my reviews were more often than not met with hostility.
>>
>> As a pattern, a reviewer would be more willing to write the code once
>> and then defend it in its current state, rather than improve it
>> through review. In a few extreme cases, people flat out told me
>> they'll abandon the PR if I don't take it as it is.
>
> Where I work, we're trying our best to do design reviews before starting
> large implementations and to seek reviewer feedback throughout the
> process. We do this because it seems clear that after the code is
> already written and after several days' to weeks' worth of effort has
> gone into a feature, the cost to making fundamental design changes is as
> great as it's going to get, and developer attachment to the existing
> code as well as frustration with the reviewer is high, especially when
> the reviewer asks for fundamental design changes.
There are few more productive moments at Facebook than those when five
solid engineers get in a room and pound out a design.
Keywords being "five", "solid", and "room". The moral equivalent for us
would be a virtual room - a forum or a discussion around a github pull
request. The problem is access and numbers.
Consider a Gedankenexperiment whereby Facebook opened a room to the
public, capacity 12, and offered it to any passer-by willing to discuss
design with a couple of Facebook engineers.
Now, one of two things may happen. One is, the notion is very successful
and people would clamor to get into the room. Natural dynamics would
lead to some form of selection at the door that would allow only the
best of the best enter.
Another is, the notion is only mildly intriguing. So there's a few folks
inside, and nobody waiting outside. People come and go because they
don't see a huge emulation at the door creating incentive to prove their
worth inside. Now there would be competition, but just against the two
Facebook engineers who are perceived as the benchmark against which
everyone needs to compare. (Remember, nobody is at the door to put
pressure.) Anyone can enter and stay for any period of time, and their
voice will be as loud as anyone else's in the room. So they'd want to
outdo the Facebook engineers, and if they riposte, anyone can throw
their hands in the air and leave.
Look at what happens in Rust. People get over each other to add quality
to the language, because if they don't, the next guy has a better
proposal, idea, or code. There's a crowd at the door, putting pressure
on the folks within. Folks don't go around telling Niko Matsakis he's a
chowderhead who could learn a thing or two.
It's most interesting what happens with Walter. He is one of the best
hackers (in the Paul Graham sense) I've ever known, and that says a lot;
I know quite a few, and I could also hack my way out of a paper bag.
Walter is literally the guy who could write a line of code where most
others would need one hundred. Yet he is hardly revered in our
community, and his views on doing software are routinely debated and
often derided. His inability to debate is part of it (he's a hacker, not
a politician), but I think the lion's share goes to the "Facebook room"
thought experiment above. Not enough people at the door.
> And this, to pivot to another debate we had recently, is exactly why
> it's a counterproductive approach to do DIP reviews only at the end.
Yes, that would be helpful. One problem we have there is proposals that
cannot be improved via review.
Years ago, I had the hots for a girl so I did what many silly guys do -
I friended her. She confessed she had aspirations for writing. Being
likely inclined as well and wanting to please, I enthusiastically
proffered interest in her endeavor. So she gave me a manuscript to read.
It was... bad. Not just bad, fractally bad - from the overall arc down
to grammar and punctuation. Wanting to say something nice about it, I
went for advice to my uncle, a published author (his obituary is online
- Nicuta Tanase). He said, kid, just mention a couple of things that are
objective and would improve things.
And so I did, not realizing I was creating a larger problem for myself.
Because a week later, she came with another draft in hand, saying: "I
fixed it! Now it's good for publishing... right?"
Needless to say, that didn't go well for my dating life.
More information about the Digitalmars-d
mailing list