deborah: the Library of Congress cataloging numbers for children's literature, technology, and library science (Default)
[personal profile] deborah
I have finally started identifying as "I have all these huge posts in draft, but I really want to boil them down into something smarter before I post them. But I have one very simple thought just occurred to me.

I have finally started identifying myself as "a programmer" and not just "a person who writes a lot of code" or "an archivist who hacks a lot." I don't think it's actually because I now have a job title of "programmer." It's because I've been doing code reviews.

My code reviews are still very junior. In many ways, I'm too trusting of the code that I read; I sometimes read it as pseudocode and so don't see errors. But I forced myself to start doing it, and I started with just asking for more comments any place where the code wasn't self-explanatory -- which is really valuable, and I should not understate that with "just."

The obvious next step from there was to ask people to clarify their coding style to make it more self-documenting. If it took me too long to figure out what was going on, then either it's a complex bit of algorithm and needs better comments, or there's a fair chance the code is not as clearly written as it could be. I will admit this is an easier task than it could be because I am almost always code reviewing Python programmers, not Perl programmers. Python programmers don't have so much of the cultural machismo attached to writing WORN (write once, read never) code. (For what it's worth, I don't think that has anything to do with structures inherent in the languages. You can write unreadable Python just fine, and Perl Best Practices-compliant code is plenty readable. It's a cultural problem.)

From asking people to clarify their coding style it was actually a surprisingly short jump to pointing out ways code could be more efficient. Once you start looking at ways the code is not written very clearly, you start noticing inefficiencies. Before you post a comment you say to yourself, "that generator is kind of hard to read, I wonder why they used it? Before I critique it maybe I should check to see if that's the best way to do this thing." And then you find it's not; it's too slow, or too memory intensive, or the like.

Of course, I need to remember to comment on the elements of the code where I do have strengths, and I need to remember that those strengths, while they are not the same as those of senior engineers, are relevant skill sets which actually need to be addressed in the product by more people. In my case, that's accessibility along with usability and user experience.

Everyone doing a code review needs to check for security and accessibility issues, and don't worry if you don't know the details. All you have to do is say things like "I see you are taking user input here; did you verify all of the security issues were resolved?" Or "I see you have added a new interaction mode to the front page; did you do an accessibility review?"

Just make sure the person for whom your code reviewing those your limitations. If you are not particularly skilled with knowing performance tuning, then you probably shouldn't be the only person code reviewing a rewrite the database ORM. If you aren't sure, talk to the developer.

You can code review for developers who are far more experienced than you! You can code review even if you aren't doing a lot of programming yourself.

So give it a try.

Date: 2015-12-08 04:33 pm (UTC)
kareila: "PERL!" (perl)
From: [personal profile] kareila

Date: 2015-12-09 12:06 pm (UTC)
in_parentheses: (Default)
From: [personal profile] in_parentheses
Re: reminding people about security and accessibility issues, I want a word for that role. Those of us with particular axes to grind tend to take it up a lot. I used to joke at my old job that they didn't need *me* in planning meetings; they needed a cardboard cut-out of me with a sign that said, "Remember sustainability?" At my current job it's, "Remember citation?"*

Let's coin a term for Official Reminder About [Thing That's Critical to You But No One Else Ever Thinks of]!

*Not because they have sustainability in the bag, to be clear, but because I'm already doing 3 jobs and don't have the mental capacity to add Sustainability Harridan. :P
Edited Date: 2015-12-09 12:08 pm (UTC)

Date: 2015-12-09 08:45 pm (UTC)
From: [personal profile] jazzyjj
Funny I am just reading this now, because this morning I got an email from the new director of a social group where I used to hang out a lot. Actually I do still go there, but I haven't been in awhile due to travel limitations. But that's besides the point. The purpose of her email was to announce a new website for the group which she has set up. I'm going to test it for accessibility and try and give her feedback accordingly. The only screen reader I'm using at this time is VoiceOver, but at some point I sort of want to install Windows on my MacBook for testing purposes, if nothing else. Their old website basically only contained a bunch of images, and was therefore not very accessible. The images were not labeled at all. That's just 1 thing I like about Dreamwidth: all images which I've come across thus far on here are perfectly labeled.

Date: 2015-12-10 02:14 am (UTC)
rantingnerd: Earth-Moon (Default)
From: [personal profile] rantingnerd

Date: 2016-02-28 10:49 pm (UTC)
jesse_the_k: Due South's Ray Kowalski and Benton Fraser both rubbing their foreheads (dS F/K headache)
From: [personal profile] jesse_the_k
Today I learned what "code review" means.

"WORN" is horrifying, but not surprising, sadly.
Page generated Oct. 23rd, 2017 01:08 pm
Powered by Dreamwidth Studios