One of my favorite shows when I was a kid growing up was “The Nature of Things” with David Suzuki.  Having a keen interest in science and technology, I was naturally drawn to this documentary that aimed to educate those on environmental issues and the impacts of humans on nature.

Web applications, like Intranet Connections, exist in their own sophisticated ecosystem comprised of hardware (desktops, mobile devices, and servers), software (application servers, browser clients), runtime environments, and the data these things manage, which all interact and spawn code bugs of various types.

Top 5 Errors/Issues Caused By Code Bugs

Here are a few of the most common errors/issues caused by the nature of code bugs:

Compilation Errors

Typically these are glaring, in your face error messages with particularly nasty appearance.  Perhaps the most egregious of all, compilation errors occur when invalid programming code is committed into a software’s codebase.  These really should never occur in any respectable software shop as software applications should be run through a compiler regularly (continuous integration build, daily routine, or at least before being packaged for deployment).

Bad Logic or Coverage

These usually creep in when written code hasn’t been run through all of the valid test scenarios presented by a given feature requirement.  Programmers don’t always think of all the possible edge cases or scenarios in which their code could be run.  To eradicate these as much as possible, quality assurance testing software and automated unit tests can be built to cover the code that is written, but this can become a very time consuming endeavor and require a lot of maintenance.

Performance or Resource Issues

Stack/buffer overflows, software crashes and slow running programs come to mind here.  Building modern applications with rich user interfaces can sometimes require using programming APIs that don’t perform well in older client environments.  For Intranet Connections, we face a constant struggle to maintain support for older web browsers (e.g. Internet Explorer 8), yet build rich JavaScript web applications that are powerful and easy to use.

Timing

In apps that use multi-threading or queued events (e.g. JavaScript), care needs to be taken to make sure the order of execution of dependent pieces of code is correct.  These types of issues can often be difficult to replicate consistently and can be time consuming to debug.  JavaScript heavy web applications that make use of AJAX and perform a lot of document HTML manipulation without refreshing a browser can be problematic when run on older, less-performant JavaScript engines.

Bad Data

Even well written, feature complete software can run into problems when unexpected data enters the system.  These can be as simple as not properly escaping invalid characters for a specific data type (e.g. High ASCII chars in XML) or as complicated as having an unexpected combination of data records that leads to strange results (e.g. calculation errors, UI corruption, etc).

Code Bugs of Varying Severity & Sort

Bugs occur because of the nature of human factors when programming software.  Check out Wired Magazine’s – History of The World’s Worst Code Bugs to see the havoc these bugs have wreaked. Our inability to account for all possibilities or foresee every possible use case leaves our programs vulnerable.

The best we can do is to implement appropriate quality assurance procedures in our software development to minimize the introduction of these various bug types in our products and be vigilant in following them.  Read more about our agile development practices at Intranet Connections on how we combat the nature of code bugs.

Related Content: