Monday, July 20, 2015
why can't programmers...resolve program defects?
From my personal experience, why can't programmers...resolve program defects? strikes more of a chord than the question asked in Why Can't Programmers..Program.
I've worked with both BEA's AquaLogic Service Bus (ALSB) and with Oracle's Service Bus (OSB). I also have the teensiest-weensiest bit of exposure to Software AG's webMethods. So, for a long time I'd been intending to look into the buzz around Mule ESB. I finally had enough spare time on my hands recently to read up on it. In the process, I came across Can Programmer's Program? in a MuleSoft blog.
In summary, what the MuleSoft guy's saying is, "You're not a real programmer unless you can solve FizzBuzz". That's not only the height of arrogance, but from my own personal experience, a programmer's programming-puzzle-solving ability is orthogonal to their real-world software-development-solution-providing ability. I say that as a person who himself enjoys solving programming puzzles — as a kind of workout for the brain.
I base my opinion on my own first-hand true Coding Horror story. I joined a project, once, where my primary responsibility was what is euphemistically called "Software Maintenance". More precisely: "Bug Fixing"/"Defect Resolution". People who have been in the industry for any length of time will already know that the Maintenance phase of any software development life cycle is the most costly. So I won't belabor that well-known fact.
There was a guy on this project who had been there for six months at the point I joined. And like myself, his primary objective on that project was to resolve defects. The amazing thing is, this guy had not resolved a single defect in six months! I kid you not!
A couple months into my stint on that project, and this same guy still had not resolved a single defect. Though not for want of trying – trust me. That was his eight month mark at that point. I swear to God I am not exaggerating. It was somewhere around that time that – just in the course of conversation — I started talking about a particularly hard [for me] programming puzzle that I came across once. I wrote down the puzzle on a piece of paper, and shared it with this teammate. He solved it pretty much immediately — way quicker than I did when I originally discovered it some time back. Fast-forward a month ahead. The guy's been there nine months at that point, and he was still struggling with the same defect he'd started working on more than a month previously! I swear to God I'm not making this up.
What's my point? That guy was a genius at solving programming puzzles. But he struggles at everyday bread-and-butter software development skills. The skills that pay the real bills.
Although the kinds of people who can whack off Codility solutions in their sleep, are interesting as freaks of nature, I personally am not impressed by such ultimately meaningless skills. As a revealing example of another such ultimately meaningless skill, consider the guy who can look at a shuffled deck of cards and then tell you by memory where each individual card is in the deck. Fascinating trick and everything. Except, the guy's been collecting unemployment for the last several years. So at the end of the day, his feats of memory, though remarkable—no question— are ultimately worthless for solving any real-world problems.
Similarly, there are millions of people around the world who have an uncanny knack for solving crossword puzzles in seconds flat. According to the Mule ESB guy's logic, and the Why Can't Programmers..Program school of thought, such people who are extraordinarily adept at word games should therefore all be Pulitzer Prize-winning authors. Or with a crossword puzzle guru's awesome command of the etymology, syntax, grammar and vocabulary of their native language, the Mule ESB guy would expect they should all be in great demand as highly-paid speech-writers for Heads of State and Captains of Commerce world-wide. But the reason that they all aren't is: just because a person excels at certain game-play, it does not necessarily follow that they will excel at a related discipline as a career. The converse is also true. Just because somebody is not so hot at solving programming puzzles...
Now, if you can show me how an Equilibrium Index, a FizzBuzz or a Palindromic String detection algorithm could solve any of the 8,300 bugs (and counting) in any of MuleSofts products, only then will the parlour skills of people like the Mule ESB guy impress me.
Show me that, and then I will expend the effort to master whatever it takes to solve every puzzle that your Top Coder, your Codility and that ilk want to throw at me.
Until then, I got real problems to solve. Puzzles will have to wait.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment