Emotional Software

I watched part of Mr. Holland’s Opus tonight (Movie Night in Canada –
please bring back hockey!) and one of the things that I started
thinking about was how communication is so much more effective when
delivered with emotion.  The idea came to me when I noticed how
the animation of sign language adds another dimension to a
conversation.  We’ve all had one teacher, lecturer or professor
who delivered his/her message monotone.  We complain about these
people being boring and often our dislike for the subject they speak on
is predicated by their delivery.  Most people we work with, meet
on the streets and spend our free time with convey their messages with
adequate emotion.  We always remember those that convey their
messages in a way that evokes the most powerful emotions from you
immediately and repeatedly.

How does this all play into the software realm.  Well, for me,
software is a method of communication.  It may be that you are
directly communicating with a person or group of people (email, instant
messenger) or you may be indirectly communicating with said people
(data entry later consumed by the Sales department).  One thing we
overlook as developer is that in all software we are facilitating a
communication of information between two or more parties. 
Ultimately we (developers) must build user interfaces for our software
that enhance the communication experience.  Too often software is
that monotoned professor that puts us to sleep before they start their

How do we do it?  That is a difficult question to answer because
of the wide variety of user bases that software covers.  Some
users may become excited about skinning or theming of the
application.  Other’s may become attached to software if it
provides them with analytical business data in an automated
method.  What we as developers need to do is practice one side of
the communication process; listening.  We can’t just role into a
company or department and begin telling the users what they need and
how technology will solve their woes.  We need to understand what
drives the business, and more importantly what drives the people who
will be the daily users of the software.  If we can win over those
people the software will be successful in its use, its uptake and its
long term viability. 

Ultimately you still need to build software that does what the business
needs.  A piece of crap that wins over the end users will only do
so for a short time.  End users are much more attuned to the needs
of the business than we usually give them credit for.  In the end,
if you create a viable package and the end users buy into it whole
heartily, you and your team will be recognized as a success.