Unboxed Solutions Blog The frenetic soapbox
Today I went swimming with my friend "Mort's" house. While at Mort's, Mort asked me to help him with a .NET Exception he was having trouble fixing. It was an easy fix, but in doing so I felt the need to express my frustration with Mort. Mort doesn't listen, so I'm going to blog about Mort. And so begins “The Adventures of Mort”…
Mort is not a stupid person. Mort graduated with a degree in Business Operations at an early age, speaks three different languages, and runs a successful business. I worked with Mort at my first programming job when I was in college. He seemed OK then, but I have come to the conclusion that Mort should not be a developer because Mort is not a developer…Mort is a hack in the worst sense of the word.
I’ve known this about Mort for years, but just so you have some background… Mort will write code if he has to, but his primary development technique is “copy and paste” and better yet for Mort: tools that generate Mort’s code for him. Mort does not like to read directions, manuals, or SDKs. Mort does not like compilers and Mort really hates debuggers. Mort wants to hack together a bunch of code, get it working once or twice as a test, release it, and never look at his code again. Mort’s attitude seems to be: if it works once, that means it should always work and if it doesn’t, it’s someone or something else’s fault. Reuse, style, elegance, loose coupling, and the law of leaky abstractions are all foreign concepts to Mort as is the concept of a “function” – a side-effect of selective amnesia. So, Mort copies and pastes some code and then tries to run that code and it bombs, so Mort is pissed off. Mort gets frustrated easily because Mort likes to think of himself as a developer, but he doesn’t really like developing, he just likes playing on his computer (or maybe playing “professional developer”). Of course, I’m being a little harsh on Mort because he does make money doing what he does. But Mort is floating down a river in Egypt.
Why is Mort in denial? Mort has a huge existing code-base written in VB6. Classic VB is Mort’s only exposure to OOP (if that’s possible), but he doesn’t really care about the basic concept of encapsulation for example. Mort likes technology, so he also has a code-base of VB.NET code from when he first adapted .NET. Also, Mort has recently switched to C# because Mort doesn’t want to think of himself as Mort. Mort thinks that using C# (and having Windows Avalon Beta 1 installed on his laptop) doesn’t make him a Mort. Mort thinks he understands the concepts of OOP, but he doesn’t. Example: Mort has code that publicly exposes all objects and values within an object as public fields even on Web forms (i.e. Controls). 90% of Mort’s code could be listed on the Daily WTF. A couple of years ago, Mort read a few pages of the GoF book and immediately hated it. Mort also wasn’t interested in reading Code Complete after hearing my rave review. So, in honor of Code Complete, let me say that “Mort wants to ‘write’ code, not ‘build’ code.” To him development is more of a process of just sitting down and writing a letter; not analogous to building a house where you need a plan, blueprints, appropriate tools, quality control, etc.
My friend Mort does not want to pay money to hire a developer unless it is outsourcing to cheap labor in China (or India) - an endeavor that he has tried and failed. I keep telling Mort that he is not a developer, he hates acting like a developer, and that he should either behave like a developer or hire a developer. Right now I think Mort should be banned from the IDE and focus on running his business. Mort is moving to California next year, so I would think that less time in his IDE would mean more time at the beach. But then again…Mort is Mort because he is Mort. At least he has a nice swimming pool and keeps plenty of Guinness Draught on hand for his friends when they come over on their day off.