Monday, March 10, 2008

Fear Mongering

This shit has to stop. Seriously.

All the pharmaceutical commercials. The outrageous media coverage that turns ordinary risk into sensationalism that you'd only find in a horror movie. The guy next door is a killer. Your kid's teacher is a pedophile. Computer games, Marylin Manson, and TV are going to single-handedly turn your kid into Columbine killers, only less successful. The list goes on.

I remember when the Nintendo DS came out, I saw a piece on how the networking and chat capability of the DS would be used by child predators to attract children, I can't remember what network it was, but it surely wasn't what I would consider 'news'. It was like this would be some sort of widespread problem, as if there was some sort of predator lurking on every escalator, of every mall, of every city, just itching to ensnare your hapless child by luring them using the DS. The best part of the of the whole piece was that some idiot mom admitted that she hadn't bothered to read the manual for the DS, and it went on to say that most parents don't educate themselves about the toys they buy for their little bundles of joy. Yeah, real mother of the year candidate right there; you'd think that with all the lead in toys these days, parents would care what their kids play with - guess not. This is a fucking parenting issue, if you're really worried about it, then know where you're goddamn kid is! This shit just fuels paranoia.

And if your kid is a teenager, for the love of Jesus, Mary, and Joseph, do not give them a cell phone. That's just a bullshit excuse for not actually parenting, and it tells your kid that you don't trust them. Yeah, I said it: you're a shitty parent. Don't start bitching, my parents raised me just fine without attaching an electronic umbilical cord. Slacker.

The best TV commercials for fear mongering are drug commercials. Here's a list of symptoms! If you are feeling (choose one): alive or dead, then this drug is for you! The range of symptoms is absolutely ridiculous, drugs these days can cure anything from rabies to leukemia to the common cold... and that's all in just one tiny pill!

Another example of fear mongering are these new stroke commercials from Government of Canada. These are fantastic - they go through a series of symptoms with white block letters on a black background. They blur the words, shake them, spin them, mess with the music, and the commercial finishes off with: "if you experience any of these symptoms, then you may be having a stroke." This is just cause for you to misdiagnose yourself. You know when you stand up really quickly, and you feel dizzy? Yup, that's a stroke. You know when you've been working really hard after a day in the sun, and you didn't have enough to drink, and you feel tired and your vision is a little blurred? Yup, stroke number two. You know when you're underwater and you start speaking, the people around you don't understand what you're saying? Get to a doctor! You're having another stroke! By the standards of what I watch on television, I've had dozens of strokes! Still kicking though... weird.

This is just what we need: whole bunch of idiots diagnosing their own illnesses by watching television and surfing the Internet and trusting Wikipedia as if it were the New England Journal of Medicine. You want to know why you aren't allowed to prescribe yourself pills, even though you Googled all your symptoms and your certain that it's necrotizing fasciitis? It's because you don't have a fucking degree in goddamned medicine! All those years of a doctor's education are totally meaningless now that patients have access to the Internet, I guess this is fantastic news... now that patients are doctors, there isn't a shortage of physicians! Hurray for the Internet!

Governments in general don't help with the fear mongering. They cry: You're not protected! Somebody is gonna getcha! You know who's gonna getcha? Osama! Who can't protect you? Hillary! Run! The Russians are coming! This is bullshit of the highest order. It's not a contest about who is going to make better decisions for the country, it's about scaring more people into voting for you.

When did the human race become a bunch of pussies? Humans built the chunnel... an fucking underwater tunnel! We connected the globe with telecommunications, be it phone or Internet or whatever! We built a space shuttle and space stations! Did you hear that? We went to space! We went to the motherfucking moon! Those sonsabitches had balls! People died in the pursuit of that great endeavour, and we still achieved a feat that has yet to be repeated since 1972. Since when do we live in fear? No, the real question is: why do we live in fear?

Monday, March 3, 2008

Responsibility

I am upset with the business of software.


Software is engineering, no matter what a sneering mechanical or chemical engineer might tell you. Software is vital to many systems today, and it plays a critical role in the design of engineering projects in any discipline - for example, using software to model an engine or a bridge. But here's what most civil engineers, or your average electrical engineer ignore: in order for me (a software engineer) to build you a program so you can design a bridge or design testing software for your complex electrical circuits, I need to learn your job. I have no time for your holier than thou attitude - I need to learn fundamental bridge construction engineering principles in order for you to get your modeling software, you cannot deny that. Obviously, I will never be as skilled as you in your ability or have the firmest grasp of your discipline's principles, but you can't tell me that I don't have to learn about mechanical engineering if I am designing a 3D CAD modeling system that you are going to use to design pistons and crankshafts for Honda, Ford, or Delorean.


In this regard, I have all the time in the world to argue with a stubborn mechie who thinks that the conduct of creating and building a piece of software is much like a marijuana grow op in some high school flunkie's basement. Most people figure you just need the right tools (grow lamps and some water or a text editor and a compiler) and you poke around with it or tend to your plants every once in a while, and voila, a home grown software project! Yes, I will admit any idiot can write software; and yes, any idiot can buy the right tools; and yes, even an idiot can build an interesting and useful software project, whether it be homegrown or not.


But there are at least hundreds upon thousands of failed software projects. Hell, there are more than thousands of failed engineering projects. But failure isn't simple enough, no, some of these failures are catastrophic. And no engineering discipline is exempt from catastrophic failure.

You know which one's I'm talking about: http://www.matscieng.sunysb.edu/disaster/ how about the software realm? http://en.wikipedia.org/wiki/Category:Software_engineering_disasters


Check out Therac-25 if you've never heard about it. Let me sum it up for you: people fucking died. If that isn't reason enough to convince people that designing a piece of software is actually a form of engineering, then I have no idea. Ariane 5? Mars Polar Lander? Millions of dollars anyone, if not billions?


But, that's not the point of this article... no... the title reads: "Responsibility"


You've probably noticed the License Agreements you agree to when you install a new progam on your computer. Those basically say this: "don't sue us now or ever, no matter what damage our software may cause." And that, my simple-minded friend, does not fly in engineering.


Yeah, I agree that buddy's home grown text editor software should probably have a license like that. But take for example, a small business owner buys my software package for his point of sale computer, let's say it's a word processor. But because I'm a shitty software engineer, I leave bugs all over the place, and they overwrite all his data on his point of sale computer, costing him let's say tens of thousands of dollars that day, because his server only backs up to tape every midnight. But because he agreed that I am not responsible for anything that happens, even if my shoddy code attracts a meteor and kills all his employees, or that the bugs I left behind are not responsible for erasing all his data, I am off the hook.

For some reason, this sickens me to no end. Primarily, we (as a society) should not allow engineers, to get off the hook when it comes to botching a project. At the same time, we can't hold Joe Programmer accountable because he has a diploma in computer science from his community college. However, Joe Programmer is trying to make money, so there should be some responsibility that lies with a company that sells a product/services, whether it be software or whatever. So there is this sort of imbalance: on one hand, we can hold engineers (engineers specifically, because of their professional obligation) responsible, but on the other, we can't hold this guy responsible, even though the services he renders suck.

The other end of the spectrum is users, and the things that they do with software that an engineer does not control. Let's say for example, Joe writes some software to control a little robotic arm. Fred Nonprogrammer decides this is ideal and cost effective for some project he's working on. So Fred decides to use the control chip and the software for his project, which happens to be a robotic arm for some space station. Should this software have a glitch, who would be held responsible? Fred of course, for using the software that wasn't originally intended for the application in which he used it. Now this makes sense, however, I find it is still a touchy subject, because I'm sure some lawyer could wiggle Fred's way out of responsibility for the failure. So let's say for example, that Joe Programmer is in fact an engineer this time, and he now has a professional obligation to do his duty as an engineer, does he then become responsible because he sold his crappy software to Fred?

I hope you see the dilemma(s) here. Where does the responsibility lie with software engineers? Where do we draw the line? If we (as softies) don't tackle this issue, then we will be doomed to ridicule from other engineers until we do. There need to be some pretty clear guidelines put in place for the profession of software engineering, if we want to be referred to as a profession.

Here's what I propose: companies that want to sell software must scrutinize their product before it hits the shelves. They must have a software engineer sign off on the product such that responsibility lies with the company, should the product fail in a disastrous fashion. This protects the consumer from buying crappy goods, and would also improve the overall industry by forcing them to meet standards and quality quidelines. However, I don't think the game industry should have to face the same scrutiny as car manufacturers, because no one is going to die if your computer game crashes and you lose your savegames. The same goes with unintended consequences, if Freddy Nonprogrammer uses your software for some purpose for which it was not meant, or changes the configuration to something that is unreasonable, then the company/engineer cannot be held responsible.

Maybe this is unrealistic, as this would probably triple the cost of your average computer program, and the lines that I have drawn inside my head on what the regulations would be, and how you would regulate and enforce such a system, are still pretty blurry. But if software engineers want to be taken seriously, then the business of engineering software must start taking itself seriously and accept the responsibility that goes along with engineering.