Geek Logbook

Tech sea log book

Being a better reviewer and a good architect by Peter Norvig

Seibel: So what makes the better reviewers better?

Norvig: Well, that they catch more things. Some of it is the trivial stuff of you indented the wrong number of spaces or whatever but some of it is, “I think this design would be cleaner if you moved this from here over to there.” So some people will do more of that and others won’t bother.

Seibel: Sort of related to that, does every good programmer turn into a good architect when they grow up? Or are there some people who are brilliant coders but only at a certain level and they should never be allowed to do bigger designs?

Norvig: I think different people have different skills. One of our best search people is by no means our best programmer, in terms of how the code looks. But if you say, “Here’s this new factor that we have—you know, how many times people click on this page after they’ve done such and such—
how do we fold that into our search results?” He’ll say, “Oh, on line 427 there’s this variable alpha and you should take this new factor and raise it to the second power and multiply it by 1.5 and add it to alpha.” Then you experiment for a couple months trying different things and you find out he
was right except it should have been 1.3 instead of 1.5.

Seibel: So that suggests he just has this very good mental model of how the
software works.

Norvig: He understands the code perfectly. Other people can write code
better but he understands all the implications of what goes where.


Seibel: Do you think those are related? It often seems that people who
write the worst spaghetti code are the ones who can hold the most in their
head—that’s the only way they could possibly write code like that.


Norvig: Yeah, I think that may be.

Coders at Work – Page 311 – Peter Norvig

Leave a Reply

Your email address will not be published. Required fields are marked *.

*
*
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>