Sunday, March 10, 2013

Software 101: What I have learned through the school of hard knocks

As many of you know, I'm (unfortunately) not a full time writer.  One day, maybe, but my day job is a software developer.  I write software for a small joint in the great state of Minnesota.  We are the best company in our niche market, growing at a pace upwards of 20% a year, and, well, I could go on and tell you all the wonderful things about who we are and how we function, but that's not really the point of this post.

On May 11, 2013, I will have worked at this company for four years.  I came here directly out of college, having gone back to school for Computer Science after spending almost a decade in sales.  I needed to have a good career to support my burgeoning family and, quite frankly, I loved writing code - especially if I saw it affect people in a wonderful way.

As I learned on the job in the first few years, I became intimately aware of a fundamental principle of incremental improvements in a piece of software. 

Do not change anything that will affect the current settings of current users!  And if this is not possible, due to necessary and critical issues like security, make sure you cogently and coherently delineate all manner of changes and how it affects the customer immediately (and preferably prior to distribution) upon construction of the new feature set.

I have failed at this rule a few times and have paid dearly for it.  Over time, if you repeatedly fall on your face in this manner, you lose the best currency for creating a sticky customer - trust.  Although, I must point out, if you provide excellent customer service or have a niche product that a customer is reasonably forced to continue with, despite your failings, they may grumble and stay with you out of necessity.  But good luck keeping them around when a competitor inevitably rears their angelic head.

Exhibit A for how NOT to follow this rule is the venerable social networking site, Facebook.  And no, I'm not talking about their Timeline feature or adding a Cover picture, or other items that they copiously advertised in the marketplace.  I'm speaking of their security settings.

Yes!  Security settings!  You don't mess with those - ever.  If a customer desires to not have another user view certain elements of the system, that should be honored at all costs.

More than once, I have noticed strange things happening on my Facebook account and went into my security settings, only to notice that it had all been completely revamped and everything was turned to "publicly viewable" or even the exact opposite, changing all my posts to "private or exclusive".  This is not good, especially for those people who desire to keep their private lives, well...private.  Or those who have online stalkers or abusers.  Facebook, with the nature of their international status, has to be more concerned about the dangers of changing user settings than me - a two bit programmer that affects about 2000 clients.

One of these days, someone is going to be severely negatively affected by these errors and Facebook programmers will be at fault.  It causes my mind to wander to the software development contractor who created a bug in an ambulatory oxygen system, causing the red light to not illuminate, notifying the operators that the oxygen tank needed to be changed.  The patient died.

Yes.  This is that important.

Facebook....get better at what you do.  Just because you own the space does not mean you are immune to the consequences your changes inflict on others' lives.

No comments:

Post a Comment