People are dumb (like me)... A person is smart (like me).

In the 1997 summer blockbuster "Men in Black" the two main characters, played by Will Smith and Tommy Lee Jones, discussed the capabilities of groups of people and individuals.

Will Smith's character suggested that it would be safe to tell the entire earth about Aliens, saying "people are smart..." they can handle it. Tommy Lee's character responds "a person is smart, people are dumb..." which implies that while a person is capable, but as a whole people are not.

In general I tend to disagree with the idea that the majority of people are dumb, stupid or some other negative quality. I strongly believe that the vast majority of people are very capable and given the right circumstance they are able to surprise, delight and in general exceed most expectations. However, keeping in mind that the "squeaky wheel gets the oil" or in other words the most vocal people get the attention, it seems for some reason that the most vocal people also tend to be the "less" capable.

I've noticed in my day job that often, with respect to software development, users who complain/list issues the most are often the lest capable of diagnosing an actual problem versus "user error" (a.ka. "it's their own fault).

In my mind it would be simple to resolve this issue if I could simple get all users to learn the one principle that I always turn to when troubleshooting problems. "It's my fault" (meaning I probably caused this issue myself and not some other person/thing).

Often when resolving problems in my software I first assume that it's something I did. Unfortunately, depending on how you look at it, I'm typically correct. I might fat finger an entry, produce an off-by-one error, or some other trivial mistake. Because this seems to be the case so often with developers they have devised a brilliant process to resolve these issues, it's called TESTING. This amazing, revolutionary and ground breaking process helps to eliminate most bugs/issues. So when a user (of an already TESTED system) reports a bug, most troubleshooting begins with attempting to recreate the issue reported, when this can't be accomplished it can indicate that the user who reported the bug/issue did something "different" than expected. While this could be considered an edge case (a topic for a different post) most often it comes down to basic user error.

If only all users could be taught how first think "it's my fault" but then, people are dumb.

K.I.S.S.

One principle in development that can NEVER be stated enough is "Keep It Stupid Simple" (or Keep It Simple Stupid or Keep It Super Simple). In any case, this development principle can be used in many aspects of life, but obviously it can be used when working with every day computer tasks.

One task that most people perform is keeping notes about various "things". Sometimes when people start to get lots of notes they think they should try and get some fancy program or a spreadsheet or even specialized software for keeping track of all these notes.

However, I've found that the simplest solution is still the best, Notepad.

Notepad has been around since the days of Windows 3.x and I'm sure that even in the DOS days people would keep notes using EDIT (a dos command to edit a file). Even as I being moving more and more of my electronic tasks onto my smartphone I've found that the simple "notepad" like app that came with my phone has become extremely valuable.

Some might say that notepad lacks features; however, the "lack of features" ensures that you stay on task. Instead of spending a lot of time formatting and inserting clip art you have to capture the important information with... TEXT.

At first a simple text app might seem "too simple" but with a few tips and ticks you can capture and convey a lot with these simple little notes.

A few tips I've found helpful:
- A healthy amount of white space will ensure that various sections stand apart.
- You can use any NONE alpha numeric character to indicate bullet/lists.
- You can "underline" with the use of the underscore.
(i.e. this is a title)
------------
- You can "double underline" with the use of the equal sign.
(i.e. this is important)
============
- You can use a tab space to create a point, sub-point.
Main Point One
Sub-Point One
Sub-Point Two
Main Point Two
Sub-Point One

After you start to use simple text notes, you'll also enjoy the fact that almost without exception they are transferable to almost any device with a modern OS, including many smart phones.

So as I've learned, KISS as much as possible.

The "Really Big" problem


I had the opportunity to attend a meeting wherein the presenter discussed all of the amazing ways that SharePoint 2010 was going to solve all the problems of the company I work for.

I work at a company that is made up of 1,000s of employees across most of the globe, and as I listed to how facet search and managed metadata where going to resolve communication and collaboration problems I begin asking myself what is the underlying problem that plagues the company I work at and how is SharePoint going to resolve this problem.

Thinking of how most problems boil down to communication issues I realized that while the company I work at (a middle of the road financial institution) is not the "biggest" company by any means it does the the "big" problem, that is, the company is made up of a lot of people.

When ever you have an organization, be it government, company or even a family, as the organization grows the issues it faces in keeping everyone in the group "on the same page" also grows.

This can actually be expressed mathematically (n2-n)/2. This equation, which I discovered from Joel Spolsky's article in Inc. Magazine (http://www.inc.com/magazine/20100201/a-little-less-conversation.html) shows how every time you add another person to a group it becomes harder to keep the entire group on the same page. The table below (also borrowed from the Inc. Magazine article) helps to illustrate this very well.

PeopleConnections
10
21
33
46
510
615
721
828
936
1045

As it shows once you get to around 5 people the issue of keeping everyone up to speed get's very complicated. You might be inclined to think that if only one person makes any decisions that this helps limit the issue; however, would you want to work at a place where out of 5 people only 1 person has any real input? I know I wouldn't part of the reason to work in a group is so you can benefit from other people's ideas.

So how does SharePoint 2010 plan on solving this issue? Well it doesn't SharePoint 2010 is a tool just like any other tool and will only be as useful as the craftsmen who use it.

Hopefully as the rollout of SharePoint 2010 continues the "really big" problem will be on more people's mind and a focus on it will grow and less emphasis will be placed on the tools used to resolve it.

Why I HAD to install Linux

Recently I've decided to pick up a new programming language. My reasons are mostly not wanting to be hacking away at legacy code for another 5 years. I've already started to realize that in my young programming career I'm already getting behind the curve in the programming world.

In any case I decided to work with a few colleagues on a side project, not that we have a project per se, just a few general ideas and a desire to make things. Part of our goal with this project is to learn various aspects of newer technologies, Pearl, Python, GIT, Tornado, etc.

At first I was under the impression that learning these various language/technologies would not require me to change my default OS Windows (currently split between windows 7 on my desktop and windows XP on my laptop). However, even being comfortable with the command line on windows I was finding that as I read various sites discussing approach and technique for these newer tools I was feeling like a second class citizen.

When I've been searching around the inter-webs looking for various pieces of information on technologies associated with Windows I would come across mentions of "If you're looking for Linux support please see..." and there would be a paragraph or two, perhaps a page, but not really a lot of in-depth information. Meanwhile I was weeding through pages and pages of information on the WIN32 side of things.

Now as I begin learning about these amazing new tools, I'm faced with being the class of user who really isn't the primary audience. The amount of information out there for users working on a windows OS and working with Linux tools is small, very small.

At first I was thinking "what is with this community, why are they snubbing such a large group of users who could expand there market share so much?" Then I decided "No, I want to learn this stuff so I'm just going to stick with it." What I realized was Windows is NOT primarily a programming OS but Linux feels like it was "made for programmers by programmers".

Yes, you can program on a windows box and yes there are even some awesome tools (even free ones) from MS, for example Visual Web Developer 2010 (
http://www.microsoft.com/express/downloads/) which provides a very nice feature of intellisense/autocomplete for JavaScript, including functions you write yourself but, it's still an OS for the masses. As I begin my dive into the Linux world I'm seeing that even with the most "user friendly" flavor (Ubuntu, which is what I'm currently experimenting/learning with) it is really "nice" for programming on.

Right from the beginning I can see how many of the tools I need are at my fingertips ready to go out of the box. Python - installed and ready to go. SSH- installed and ready to go. VIM - installed and ready to go. Even the terminal seems to lend itself to hacking. I'm not usually one to be a fan-boy right out of the gate, but I think I might be turning into one.

It's refreshing to be expanding my horizons and finding a new reason to get excited about my computer.

Cisco Valet - Nice, very nice

I just purchased the Cisco Valet and I have to say I love it.

It took about 10 minutes to turn off my computer, unhook my current router and cable modem and then place the valet into the loop. After getting everything booted up... I was done.

The valet earns it's name. It auto-assigned a unique name (at least unique to my area) and a random password (probably not something that couldn't be determined, but unique enough). As an added bonus it includes a segment for guests.

Another added bonus is the nice little auto-config USB key that provides instant setup for any devices which you wish to connect to the non-guest segment of the wireless network. For instance the somewhat "old" laptop that I'm writing this post on (Dell Latitude D510) which has built in WiFi was connected within just a few minutes.

All in all an excellent $90 at Target and a product that I would recommend.

My "great white open page" problem

As I begin taking up writing again, for the third time (sighing a little to myself)... I've realized something about the way my head works.

When presented with a specific task my mind will race to form a solution. When I'm present with a problem I can't seem to stop coming up with ways to solve it.

When I'm given a problem at work more often than not the problem has a very small scope, often the scope of the problem at work is along the lines of accepting information/data in one area, processing/modifying said data and then saving/sending data to another area. Now when presented with a problem that can be defined with such narrow terms it is easy for me to think of quite a few different wasy of solving the problem, then when going through these various options there are often inherit sets of advantages and limitations for each solution and it becomes a simple matter of disscusing the these pros and cons with the interested parties and refining the requirements of the solution to isolate which option is best suited.

So the cycle is often:
  • Describe a problem,
  • "scope out" the problem,
  • define solutions,
  • filter solutions based on "scope"
  • execute remaining solution.

I'll complete this cycle a few times every few months depending on the various levels of complexity which range from isolated problems that impact a few dozen users to something that has the potential to impact a few thousand users; however, event with the potential of impacting ten thousand users (which is never going to happen at the company I work for) it still doesn't seem that overwhelming.

Given this type of daily gring one would assume that solving my own problems would be easier, but there in lies the issue, the "Great White Open Page" problem.

I know I need to write on a regular basis to become a better communicator as well as to improve my skills at work (which as a programmer I feel one of the most important skills is communcation). However, when I set down to write I often find that I'm just staring at a blank page and NOTHING is coming to mind.

So as I come and stair at my computer screen I hope over the next few weeks or perhaps even months to formulate some type of structure that will narrow the scope of my problem so I can at least try to solve the "great white open page" problem.