Random Developer Rant
I have to say, one of my big pet peeves in terms of software development is evangelizing by “senior architects” who haven’t written code in years.
I’m not against evangelizing a product or technology in general, but it seems so much less like bullshit when it comes from people who are in the trenches, dog fooding the technology they are evangelizing.
The real problem arises when some developer who’s been out of the loop evangelizes without having used the product in a real world development environment. Or even worse, sometimes, you get guys that evangelize about practices, architecture, and design. Bleh! These guys are the absolute worst! Lots of things make sense in an ideal world where software deadlines are always met ahead of time 🙂 (I love those Walgreen’s commercial) but the reality is, no one lives in that world.
But in any case, one of our codebases at Zorch recently underwent a code review. As a part of this code review, the team at our counterpart ran some code analysis tools against our codebase. Of course, I have no objection to this in principle, but what did bother me was that they didn’t really even analyze the results of the code analysis output. They skimmed for “reds” and basically just took a look at the count of warnings. To make matters even more asinine, the individuals performing the code review took at least 3 minutes trying to find out where the code analysis utility was located.
Okay, I must at least give a disclaimer: in general, I like the idea of code analysis and good practices. I like the idea of general guidelines in terms of coding conventions. But I’m not a Nazi when it comes to policing code – I was at one point in my career, but these days, I figure that as long as it’s not terrible (i.e. lots of misspellings, inconsistent patterns, well known bad practices like massive string concatenation), I’m not one to harp on these small details.
Just as each writer has a different style, just as directors have different styles, and just as a painters have different styles, I realize that developers have different styles as well. I try to point out obvious bad mistakes when I see them (like using DataSets without really using DataSets), but I think otherwise being too anal about this stuff is counter productive because, you know, this stuff can always be cleaned up later – it’s way more important to get the product to work first.
Now with that out of the way, what kind of bothered me the most about this whole event was that after the output of the code analysis was generated, we didn’t review a single warning that was generated to validate whether there were flaws with our codebase. I suspect that even if we did, these guys wouldn’t have known what half of the warnings meant. What a waste of time. I could have ran the review and emailed it to them if that was it.
So, that’s my rant for the week 🙂