Everything is Custom
From Zanecorpwiki
I recently was accused[notes 1] of using too much "home grown code" by two two people in relatively short order. I've heard this before, and indeed, it's a rather common complaint of developers. "I used to work at this place, and they had all this terrible code they developed in house..."
I've certainly complained about code, but never because it was "home grown". I really don't care for the criticism because it doesn't mean anything. In both cases, the bottom line was, "There's a lot of code here that I'm unfamiliar with and I don't do well with unfamiliar code." Which is perfectly fine and acceptable. Dealing with large amounts of foreign code is tough and being able to quickly acclimate to a non-trivial code base is a rare skill. Indeed, I'm not entirely opposed to the idea that it's not a very valuable skill despite it's rarity.
So, to make the observation as a fact is perfectly understandable, but to offer it as a complaint against the code is another thing altogether. The problem is that it just doesn't hold water. It's a logically inconsistent observation.
I've never used the same framework twice. Pick any two technology stacks I've ever worked with, and you'll find significant differences between them. I'll grant that this kind of radical polyglot experience is rare, but it's pretty clear that as far as web development goes, there very few instances of a lingua franca. On the contrary, we seem caught in a radical Babel event. I myself am unable to come up with a single example on the development side of something where you could say, "Well, that's just what people use!" The closest thing I can think of is Photoshop, which is squarely on the graphic/web design side of things.
Hell, there's not even a common operating system. In terms of "running iron", you've probably got *nix with a majority, maybe even Linux variants, but even there I would be surprised if a single distro held anything near a majority on it's own. Cutting it up by platform targets, and throwing in the fact that most clients are one of three flavors of windows and four flavors of IE, but if you cut it by version, then FF tends to hold the largest plurality, and you've got a very complicated picture indeed.
So I just don't know where this idea that you can expect code to be something comes from. I mean... what wouldn't be custom code? What if instead of my "home grown" code, I'd been using some well supported framework which you'd never used. That code is just as custom as mine.
This may be unworthy, but I do take a bit of umbrage at this because I feel there's an undertone of judgment regarding the quality of the code. This upsets mostly because I'm someone who's actually used and dug into dozens of frameworks as well as many homegrown affairs, and I can say that like most divisions there's a lot that's good and a lot that's shitty on both sides. I may hold some romantic notions regarding homegrown systems, but I'd be the last to argue for their fundamental superiority. But the same thing applies to the "manufactured" code. You just can't judge quality on that basis.
Practically, stuff like documentation and knowledge base, and all that are a factor, and these are the dimensions which coders reasonably rely when they form judgments about what "home grown" code implies. But here again I've seen many examples where the documentation is just terrible. The Hibernate docs come to mind. They ramble on and on about the most banal topics while glossing over anything complicated. The technology is fundamentally complicated, yet the examples are exceedingly trivial. The signal to noise ratio is horrible to the point where it can seem like the docs are just as likely to confuse as they are to elucidate.
So when people say, "Oh, this is custom code!" I really don't get what they mean. It's true statement, but it doesn't convey anything useful. It's like a mechanic begging off repairs by observing that your car has been repainted.
Notes
- ↑ It wasn't acrimonious, but I couldn't think of a better word.


