Contents:
Previously, we’ve talked, at length about what a hotfix is, what’s it used for, and how to tell them apart from updates, patches, and other improvements-carrying packages. Today, we’re going to add even more -fix(es) to our list – coldfixes and bugfixes. So, what are they, what do they do, and when should you apply them? Stay tuned for the most expected sparring match of the season – patch vs hotfix vs coldfix vs bugfix. As always, enjoy your read, subscribe and share.
For the record. Getting Your ‘Fixes’ Right.
I feel it’s time for a back-to-basics moment. So, before leaping into comparisons, pros and cons, we’re going to powwow a bit about patches, hotfixes, coldfixes, and bugfixes.
Patch(es) in a Nutshell
What is a patch and why should one care about them? Mostly because, without them, our applications wouldn’t be able to operate properly on our machine or would simply be an easy target, ready to be cherry-picked by hackers. Patches do everything from improving the app’s overall security to fixing bugs, perking up UI/UX (i.e., looks and feels), and improving the F.U.P factor (i.e., functionality, usability, and performance). In other words, patches can be considered these all-encompassing, multi-purpose, A to Z improvement-carrying packages.
Hotfix(es) in a Nutshell
In case you’ve missed my article on hotfixes and ‘hotfixing’, here are a couple of things you need to know about them. Hotfixes are ‘live’ updates, meaning that they’re applied to running apps. While most are requested by the end-user, some can be the result of QA sniffing around. Hotfixes can quickly fix security or usability-related issues, but, if not tested properly, they can dramatically impact the app’s functionality, usability, and performance.
Coldfix(es) in a Nutshell
Coldfixes are the exact opposites of hotfixes – they need to be applied to the ‘unalive’ app. Hold the garlic and silver bullets (for now) because this means that the app must be switched off before applying the fix; usually, this means prompting the user to reboot the machine, log off, or force-restart the application. Applying coldfixes is like taking the proverbial high road – they’re not very different from their ‘hot’ kin, but, for functionality and app stability reasons, coldfixes need a clean reboot. If the app behaves erratically, it can quickly be reverted to the unpatched ‘state’.
Bugfix(es) in a Nutshell
As the name suggests, bugfixes are designed to repair coding bugs, regardless of their nature (e.g., accidental, missing or improper initialization, dyslexic, mis-copy, abused global, macro, model error, parameter mismatch, etc.). Here’s how it works.
Let’s consider the following code lines.
for (i=0; i<numrows; i++)
for (j=0; j<numcols; j++);
pixels++;
I’m aware that it doesn’t make much sense without the rest of the variables and libraries, but bear with me for just a moment. Imagine that these lines were written for a generic application. Now, if you look closely at the end of line 2, you’ll see a stray semicolon. So, what? Well, if you were to compile and run this code chuck, it will flag the extra semicolon and return an error; getting rid of that semicolon will allow you to run the program. That’s a bugfix right; granted, this is a very basic and crude example, but that’s how things would roll in a real-life scenario.
Patch vs Hotfix vs Coldfix vs Bugfix
And now comes the best part of this article – the patch vs hotfix vs cold vs bugfix showdown. So, considering all the facts, all we know about fixes, how do you go about deciding which one to apply? Shall we ditch hotfixes in favor of patches or perhaps apply cold instead of hotfixes? Aren’t patches supposed to fix bugs? Then why would we need to deploy bugfixes? All are valid questions, and, believe it or not, they share the same answer – context. How can we outline this context and figure out which fix to apply? Well, let’s define a couple of scenarios and go from there.
#1. Begrudged customer. QA Panicking. Fix or flee.
Say your Support team receives a four-lettered ticket from a customer asking for a quick fix (not that kind of fix). In addition, the customer says that the issue must be dealt with as fast as possible since any downtime can impact operations. In this case, a hotfix is warranted. However, if the hotfix will fail any performance- or usability-related test, the Support can propose a safer approach – ‘coldfixing’ the issue. The approach has minimal impact on the systems and little to no downtime. Of course, if the coding’s at stake, you could always ‘hotfix’ a bugfix
#2. Customer in distress. Dev team leaps into action. Time’s no concern.
Let’s assume for a fact that your customer has discovered a bug that prevents him from completing any number of tasks. Support takes the ticket and goes to QA. The investigation reveals that the issue can be solved, but not while the app is running because it can result in data loss. What do you do? You coldfix the issue. Now, as an alternative solution, you can have your DEVs and QAs suggest a (functional) workaround until a patch becomes available.
#3. Customer happy. QA finding bug. Going high or low?
Suppose that your QA finds a (minor) coding bug while testing out the application. You may want to contact your customer to ask him about the app’s performance. What if you were to learn that the app is performing admirably despite the coding bug? Well, the ethical thing to do here would be to inform the client and ask if wants to opt for a bugfix. If the answer is “yes”, then do what you must to deliver. If not, you can make the fix and include it in the patch.
Hope this makes things a bit clearer on the topic of Patch vs Hotfix vs Coldfix vs Bugfix. Here’s a quick sum-up of all the topics discussed here:
- All-encompassing improvements-carrying packages. Used to solve issues like software bugs, security vulnerabilities, stability issues, deploy new drivers, or update the software versions.
- Quick fixes are used to address specific issues. Little to no downtime. Live deployment.
- Quick fix. Can lead to downtime. Requires log off or restart. Necessary if ‘live’ patching impacts the app’s performance, stability or functionality.
- Quick fixes. Issued for coding bugs only. Some might require app restart.
Additional Patching Advice.
This about concludes my article on patch vs hotfix vs coldfix vs bugfix. If you’ve enjoyed it, you know what to do – like, share, and subscribe. Now, before I go, here are a couple of my favorite patching tips.
- Chatting up your customer. Please make sure that you’ve correctly informed your client about all available patching options. If necessary, perform a quick risk evaluation to determine which type of fix to recommend.
- Auto-patch deployment. Whether we’re talking patches, hotfixes, coldfixes, bugfixes, automatic patching is the way to go – Heimdal™ Security’s Patch & Asset Management can help you quickly deploy all of the above. In addition, with Infinity Management you will have gained a secure and sizable storage for all your improvement packages, whether they be patches, updates, bugfixes, cumulative updates, etc. Available now for both Windows- and Linux-running machines.
- Why patch when you can quick-fix? Patching is the way to go if you want to address one or more issues, but time may not be on your side. Sometimes it’s better to hot- or coldfix instead of rushing through patch assembly. Choose your battles carefully!
If you enjoyed this article, you can drop a comment below and let us know how you feel about it. Don’t forget to follow us on LinkedIn, Twitter, Facebook, Youtube, or Instagram to keep up to date with everything we post!
Heimdal® Patch & Asset Management Software
- Schedule updates at your convenience;
- See any software assets in inventory;
- Global deployment and LAN P2P;
- And much more than we can fit in here...