Warning: Declaration of thesis_comment::start_lvl(&$output, $depth, $args) should be compatible with Walker::start_lvl(&$output, $depth = 0, $args = Array) in /nfs/c10/h13/mnt/143652/domains/knowhrplus.com/html/wp-content/themes/thesis_185/lib/classes/comments.php on line 0

Warning: Declaration of thesis_comment::end_lvl(&$output, $depth, $args) should be compatible with Walker::end_lvl(&$output, $depth = 0, $args = Array) in /nfs/c10/h13/mnt/143652/domains/knowhrplus.com/html/wp-content/themes/thesis_185/lib/classes/comments.php on line 0

Warning: Declaration of thesis_comment::start_el(&$output, $comment, $depth, $args) should be compatible with Walker::start_el(&$output, $object, $depth = 0, $args = Array, $current_object_id = 0) in /nfs/c10/h13/mnt/143652/domains/knowhrplus.com/html/wp-content/themes/thesis_185/lib/classes/comments.php on line 0

Warning: Declaration of thesis_comment::end_el(&$output, $comment, $depth, $args) should be compatible with Walker::end_el(&$output, $object, $depth = 0, $args = Array) in /nfs/c10/h13/mnt/143652/domains/knowhrplus.com/html/wp-content/themes/thesis_185/lib/classes/comments.php on line 0
Tech Tuesday – Technical Errors are the Worst Advertisements

Tech Tuesday – Technical Errors are the Worst Advertisements

by Frank Roche on July 20, 2010

in KnowHR

Many years ago I was introduced to a blog called The Daily WTF–made by geeks, for geeks–that highlights everyday issues for techies.  They write a great series showcasing technical errors in high-profile locations.  Which brings us to this blog post.  Here’s one of the worst ways for you to be known to your audience:

next line of info goes here

There are near-daily news articles about serious security issues with customer data and other types of major crashes.  As a society we’ve come to expect software crashes as a normal part of our lives.  But they shouldn’t be.  And for the most part these types of flaws are easily flushed out via basic testing processes.  If your company does software, you should understand that the best way to get cheap, *good* advertising is to provide software that advertises itself.

So you want to know what you need to do to make great software.  Frankly, it’s both harder and easier than it sounds.  Harder, in that it requires a good amount of company-wide discipline, and easier, in that there are a few simple steps that will save you time and money.

Technical Solutions

  1. Use an issue-tracking system. Issue tracking allows you to create new “tickets” associated with any type of bugs or new features you may be working on.  You can easily track the process as the ticket gets worked on, is tested, rolled out, and eventually closed.  Giving customers the ability to submit requests is great, too, as they like having concrete evidence that their issues have not fallen into a black hole.  There are literally hundreds of off-the-shelf products that do this.  We love Assembla.
  2. Use good version control software.  Subversion and Git are popular ones.  We have Assembla tied in to Subversion in such a way that whenever one of our team members makes a change, the ticket being addressed gets updated and the rest of the team is notified instantly about the change.  Everyone knows what’s being worked on, and when to make sure they have the most up-to-date files.
  3. Do automated unit testing.  Automated unit testing allows your developers to know immediately when an individual piece of code breaks.  Often it is hard to know how pieces of your code tie in to other pieces.  The magic of this is that programmers don’t have to worry so much that a small change in one place will break something in another.

Organizational Solutions

  1. Use a specific development process.  Even if your team has to be flexible and responsive to quick changes in the requirements, using a process will make it easier to track all changes that could potentially cause problems.   A great methodology that has proven effective for a lot of small organizations is Agile.  Agile development is based on the idea that short, small iterations with regular customer input will create a better work flow.  The customer gets what they want, and the developers get frequent testing periods which prevent serious bugs from going out.
  2. Have at least two people look at everything before it leaves the house.  Seriously.  I’m not suggesting you have these people editorialize your work, but a basic sanity check is a lifesaver.  With this idea in effect, there’s very little excuse for typos in your company’s official documents.  This works just as well for software.  Once basic testing is done, we hand random people in our company UAT booklets and have them go through every step in the booklet.  This ensures that the booklet makes sense to non-programmers, and that the software is performing as expected for the user.  Of course, 99% of bugs should be gone by this point anyway, but that’s a good thing.

With these simple ideas in place, it will be a piece of cake to prevent your company from being in the next antenna failure or credit card data loss news article.  We know it works, because this is how we do high-quality work that speaks for itself.

{ 1 comment… read it below or add one }

Fatal error: Uncaught Error: Cannot assign by reference to overloaded object in /nfs/c10/h13/mnt/143652/domains/knowhrplus.com/html/wp-content/themes/thesis_185/lib/classes/comments.php:187 Stack trace: #0 /nfs/c10/h13/mnt/143652/domains/knowhrplus.com/html/wp-content/themes/thesis_185/lib/classes/comments.php(47): thesis_list_comments() #1 /nfs/c10/h13/mnt/143652/domains/knowhrplus.com/html/wp-content/themes/thesis_185/lib/classes/comments.php(31): thesis_comments->comments(Array, 4) #2 /nfs/c10/h13/mnt/143652/domains/knowhrplus.com/html/wp-content/themes/thesis_185/comments.php(25): thesis_comments->output_comments(Array, Array) #3 /nfs/c10/h13/mnt/143652/domains/knowhrplus.com/html/wp-includes/comment-template.php(1161): require('/nfs/c10/h13/mn...') #4 /nfs/c10/h13/mnt/143652/domains/knowhrplus.com/html/wp-content/themes/thesis_185/lib/classes/loop.php(102): comments_template() #5 /nfs/c10/h13/mnt/143652/domains/knowhrplus.com/html/wp-content/themes/thesis_185/lib/classes/loop.php(18): thesis_loop->single() #6 /nfs/c1 in /nfs/c10/h13/mnt/143652/domains/knowhrplus.com/html/wp-content/themes/thesis_185/lib/classes/comments.php on line 187