Reality… Expectations

I think one of the hardest lessons a child must learn is how to deal with disappointment.  How we feel throughout the day is largely function of how we deal with the difference between reality and expectations.

FrustrationWe can’t change reality, so we only have two variables that can be controlled.  There is nothing wrong with having expectations.  And there is nothing wrong with having ideals.  Those things give us hope!  The first thing is that we can re-frame our expectations to be more realistic.  This is where the power of critical thinking can really help.  I’m not advocating we lower our expectations to a point where we become despondent or apathetic.  Apathy is a dark corner that no one should be forced to find refuge. 

The remaining piece of the triangle that we can do is to manage our disappointment.  This takes practice, and is a life-long endeavor.  Things will always frustrate us!

All software has bugs.  This is true of all of things in life.

It’s aggravating when the software you use and depend on doesn’t work the way you want.  Anyone that’s used a computer probably has countless stories of lost data or crashes, or any number of annoyances.  There’s a large divide between reality and our expectations.  “It should just work”.  I agree.  It should.  But as someone that has spent the past 13 years writing software, I know all too well that writing software that works flawlessly is an unreachable goal. There are just too many agendas and forces that work against that goal.  We can approach it asymptotically, but we will never be able to quite reach it. 

We should always strive for improvement.  Improvement is something that is easily achievable. Each year, cars get better, phones get better, computers get better, etc. 

Do our personalities get better?  Am I wiser and kinder this year?  Have I improved how I manage disappointment?  Has the man inside the box learned the hardest lesson?  :)

Tags: ,

The meaning of your software

The true software experience is really about not experiencing it at all. It’s about getting out of the way.

The goal of any application should be as much transparency as possible. This includes things most people don’t think about. If the icons cause the user to pause and think to themselves that the icons don’t look very good, or this icon doesn’t make sense, then the application has stopped being transparent.

The application should strive to behave exactly as the user expects. User interface design usually is not deemed important by an alarming majority of people. In my experience, it’s often viewed as a waste of time. Nothing could be further from the truth.

Example of annoying application

Perception is everything, and your customers judge you by what they see and experience. Little things like good icons, aligned controls, streamlined flow, uniform text, clear messages, fewer options, more courtesy code, seem to be overlooked and ignored. Those things take time to get right, and they take passion and expertise as well.

Generally, anything that causes the user to read less, click less, type less, and still accomplish their work, is good for your product. The less we make users think, the better. They’ve got enough things on their mind.  I invite you to read an excellent post entitled How to design a great user experience.

Why MBO can be bad for business

Have you ever worked in an office environment and asked for help from a colleague on a task?

If you work in an environment dominated by MBOs (managed by objectives), then there’s a good chance you didn’t get much help from your co-worker.  They too have tasks that they need to get done, and their performance reviews are based primarily on whether they achieved their objectives or not.  “If I help you, I run the risk of not completing my tasks which is how my value is measured.”

It can potentially lead to a more perverse scenario of cut-throat:  Team members profiting from your failure.  Some might say, “Hey that’s good, competition is the American way, it brings out the best results.”   In my opinion, yes and no.  It works great for about 2 weeks, and then everyone ends up hating it, hating each other, and hating their job, and there’s no quicker path to implosion.

Managers live by the creed, “If it can’t be measured, it can’t be managed.”  Yes, I agree, goals and milestones are a good way to measure the progression of something.

Unfortunately, the corporate darling of this measurement system is MBO.  It’s a primitive and ineffectual motivational scheme.  The idea is that the typical employee will slack off if not monitored.  It’s a pretty condescending way to operate.  It’s equivalent to starting a new relationship with someone and saying, “You’re probably going to cheat on me, so I need to monitor your phone calls and emails.”  It’s not the best way to start.

Just be aware of any collateral damage of your management strategy.  If everyone is being forced to “look out for myself”, then you end up with what I characterize as a corporate traffic jam.  People who need help or input can’t get important tasks done, which could potentially logjam other team members and cause quality issues, problems with customers, lower employee morale (which kills productivity more than anything else), and a list of other issues that aren’t so obvious.

But what if you rewarded your employees for helping other people?  How about going one step further and fostering an environment where working in pairs in not only encouraged, but rewarded?  Most established professions already do it, so when do we start?

Think outside the box.