Sunday, June 29, 2014

The dog eye for the careful programmer

Dogs, a programmers best friend or just mans? Think about it, a programmer is just a human being. Sure they may know something that most others don't (programming), but that doesn't change the fact.
Now as the phrase suggests, "dogs are mans best friend". Means that we work best and along side a dog at our side. Now this originally meant wolves. But we have since breed them into a whole bunch of breeds with each being specialised for their different tasks. This may be herding or just companionship.


So how can apply how dogs act to programming better? Well we can't directly, thats the thing. Dogs can't even talk like we can. Let alone written language which programming is based off of. But they can communicate using facial expressions, "grunts" and other general body language. We can see what they do, observe them.

An example of something my mums dog does (Bonnie), she has the tendency to watch tv with us, but instead of actually looking at it, more observes the area. Doesn't really understand what the tv thing is about, but can recognise things like dogs when they are on it.

Some dogs though can understand tv and what it encapsulates idea wise. But no where near what humans can. Considering its like watching a movie that is in a language that you don't understand and where they are using some abstract concepts to display things. Or in programming speak, try opening a pdf in a text editor and try understanding all that binary data!

This is actually quite an interesting situation, lets think of it like the dog. "The huumans have this thing that has part of it some intense light patterns that can look like other huumans and even doggies!". What this shows is a complete lack of understanding of how or why it works. Just that it does work and can be quite entertaining.

Now as programmers, do we care how a tv system works? No not really. As long as we give it a specific input, configure it the right way. We expect it to just give us what we want. But thats the thing, just because we are users of the system, doesn't mean that others are engineers who are willing to pull the damn thing apart when it doesn't work and get it running right again.

But heres the thing. There is much more technology that dogs do understand than what I've mentioned. An example of this is a cushion. Yes a cushion. A lot of animals LOVE them. Because of just how soft they are. And Bonnie is no exception. She very much believes, if its soft I sits. In other words, she understands its purpose but not so much how it works. Oh but how has she tried to work it out. She loves to rip them up (grr grr).

In other words, the general populace may not understand how a program works, they may though understand just what they expect it to do. And they are more than willing to rip it apart to work that out.
This is really two fold, first they are willing to add a billion requirements to a project (they are paying for) in an attempt to get something better suited. But that they are willingly open to judging our work. Because they have an expectation and we try to meet it.

Personally I'd love to have cushions that Bonnie can't rip up, but heres the thing. I can't. It'll either be too expensive or not very comfortable. Think about that. We can't build programs reasonably that are both to requirements and nice to use for the owner. Not to mention how willing they are to pull it to pieces the first chance they get.


So while this article hasn't talked too much about programming and I did compare users to dogs. Lets be honest here. It can really be an eye opener to what is already commonly understood.

No comments:

Post a Comment