By
Mendy Green
July 5, 2024
•
20 min read
Fundamental Skills
Professional Development

Over the years of training and assisting various technicians, I've formed a set of guidelines that I've been known to drill constantly. The other day while talking to a newer technician and working with them I realized that I now have the time I didn't have before to actually write down what I've been ranting about for 14 years. I've dubbed them as the Laws for the Practical Technician.
There's a lot of nuance in each "law" so now that we got the TLDR version out of the way let's dive into the specifics. Note for the purposes of this post, each law has been given a title.
If you run around with your eyes closed expecting nothing to get in your way, you're bound to smack into a wall (or something) and fall down. If you keep your eyes open and aware of your surroundings you can navigate the obstacles and overcome them.
End users typically expect systems to work seamlessly and view issues as problems needing external help. Technicians, on the other hand, approach systems with the expectation that things might not work and are prepared to "figure it out" each time.
Key Points:
Example: When dealing with a software bug, an end user might see it as "broken" and wait for a fix. A technician, however, will explore various angles—checking logs, considering recent changes, and testing different scenarios to identify the root cause, or find a viable workaround
Computers and software are designed to be used, (it's actually the only way they make money!). Therefore, the information needed to operate or troubleshoot them is generally available on the screen or in logs, (although the language can be context-specific for the industry). To effectively identify and solve issues, it's crucial to explore the interface and ask questions. Thoroughly reading on-screen messages and prompts can provide insights into what might be wrong and how to address it.
When encountering an error message or unexpected behavior, don’t rush to conclusions, AND DO NOT SKIP IT!
Instead, read all the details provided. Error codes, system messages, and even seemingly minor details can offer significant clues. For instance, a message that seems obscure at first glance might make sense when considered within the context of the application or system you're working on. Even comparing against a computer that is working, looking for differences in behavior, or order of operations, screen activity, and so on, can provide clues (for example an error that takes a while to appear is likely caused by a timeout, vs an error that appears immediately is likely caused by an immediate rejection).
Example: If a user reports an issue with a software application crashing, instead of just noting "application crashes," you should read any error messages, logs, or system prompts that appear when the crash occurs. These details can guide you towards understanding the root cause and potential fixes.
To effectively troubleshoot, ensure you can recreate the problem and understand its significance. Start by asking the person reporting the issue why it's a problem and why it's important to solve it. Gather as much information as possible to understand all sides of the issue. You should be able to understand the problem at least as well as the person reporting it to you, otherwise how do you expect to fix it? Or even explain it to the next escalation point if you have to reach out for help?
Here are some ways you can work to understand the problem.
Example: If a user cannot access a shared network drive, ask them about any recent changes to their system, any specific error messages they receive, and how critical this access is to their work. Look at what the shared drive is mapped to, and if other people have access to it that are working. Identify the network the user who is complaining about is on and if it has connectivity to the shared drive host. This comprehensive understanding allows you to troubleshoot more effectively and escalate if needed.
Being intentional in your actions means making deliberate, thoughtful decisions rather than taking random stabs at fixing an issue. This approach prevents exacerbating the problem and leads to more efficient troubleshooting. Most technicians below Tier 3 will perform troubleshooting by way of "trying different thing to see what works", this is essentially closing your eyes and trying to pin the tail on the donkey, make sure you understand what is going on, and the logical reason why what you're attempting will affect (either negatively or positively) the current outcome so that you can make progress with every step.
Expand on This:
Example: If a printer isn’t working, don’t randomly try different fixes like restarting the printer, reinstalling drivers, or changing settings. Instead, follow a logical sequence—check for error messages to help point you towards a connection issue or a driver issue.
Always be prepared to reassess what you know. Technology and systems evolve, and what was true yesterday might not hold today. Keeping an open mind and questioning assumptions can lead to discovering the true cause of an issue.
Expand on This:
Example: If a network issue arises, don’t assume it’s due to the same cause as last time. Reevaluate the situation - start the troubleshooting process from scratch everytime until you've identified the root cause to the be the same as last time.
Always have a contingency plan before making changes. Ensure that any action you take can be reversed if it doesn’t resolve the issue or causes new problems.
Expand on This:
Example: Before modifying a system registry, backup the registry or export the key in question. Rename something instead of deleting it, or cut/paste it somewhere else. This way, if the change has unintended consequences, you can easily revert to the previous state.
----
Edit 2024/11/13 | This article has been presented and recorded at The IT Nation Connect 2024 in Orlando, Florida! You can watch it here: https://youtu.be/ZJqhT48pnLU

In Episode 14 of By the [run]Book, Mendy and Robbie wrap up v2.206 and dive into v2.208. Join us while they unpack a dense set of workflow, billing, automation, and self-service portal enhancements. Highlights include conditional workflow steps, improved qualification matching, project–contract alignment, and powerful new portal customization options. This episode is ideal for MSPs who want tighter operational control, cleaner billing, and more flexible automation inside HaloPSA.
The following features stand out as a few of the impactful changes:
On-call Notification Enhancements #422926
Halo introduced various enhancements to notifications to better support on-call workflows, and Mendy called out that this release note quietly included a massive underlying change. The key takeaway was that important platform-impacting updates can be buried in “notification” notes, so MSPs running on-call should review notification behavior closely after updating.
Assign Contract to Projects & Tasks Created from Sales Orders #1027598
Projects and tasks created from sales orders can now automatically inherit the contract created from that sales order, tightening the link between quoting, delivery, and billing. The hosts emphasized this as a practical fix for MSPs who see project time accidentally hitting the wrong agreement (and wrecking profitability reporting), especially when doing fixed-fee or prepaid project work.
Workflow Automations Using Client/Site/User Custom Fields #1022399
Workflow automations can now use client, site, or user custom fields directly as criteria, reducing the need for workaround runbooks that copy those values onto tickets. The hosts positioned this as a meaningful automation upgrade because it makes routing and logic cleaner, easier to maintain, and more scalable for MSPs with account-specific processes.
Watch Now: By the [run]Book: Episode 14
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword.
Full Feature List:
Added the ability to add Azure/Entra distribution groups as followers | v2.206 #770320 | 1:52
Added an option in AI settings to generate an AI summary of the article based on the title, description and resolution Added an option in AI settings to use the AI-generated summary of an article to identify and flag potential duplicate articles before submission | v2.206 #767579 | 2:58
When tickets have a Teams chat open, if the ticket is closed, a closure message will be sent to all chats | v2.206 #635732 | 3:29
Various enhancements to notifications to support on-call notifications | v2.206 #422926 | 4:02
A setting has been added to Sales Order Configuration so that a specific Status can be set once all Items on the Sales Order are consigned | v2.208 #1034330 | 10:24
The setting "Tickets with the default Organisation/Site must be moved before working on the Ticket" can now be overridden at Ticket Type level | v2.208 #1033540 | 12:51
"Do not disturb" mode for Halo notifications | v2.208 #1028655 | 16:04
A setting "When creating Projects and Tasks assign the Contract created from the Sales Order" has been added to Configuration > Sales Orders > Processing Sales Order Lines that allocates Projects and Tasks created from Sales Orders to the Contract created from the Sales Order | v2.208 #1027598 | 17:27
An Item property had been added to the Milestone so that the Invoice Item can be edited/set after creation of the Milestone. This Item will be used when creating an Invoice directly for the Milestone only | v2.208 #1027578 | 20:33
Added Canned Text Shortcuts for Chat | v2.208 #1024945 | 23:07
Additional data has been added to the Invoice Line object to store the Origin Sales Order Line that the associated Recurring Invoice was created from and to store the Occurrence Count for Recurring Invoices | v2.208 #1024614 | 28:23
Report display improvement when using customised table html | v2.208 #1024326 | 28:55
Added Managed Identity via Azure Arc as an authentication option to the Microsoft Entra integration and Office 365 mailboxes | v2.208 #1024317 | 29:36
It is now possible to set a Tax Exemption reason for a Halo Customer on creation that will be pushed to Quickbooks when the Customer is not taxable | v2.208 #1024297 | 29:44
A setting has been added to allow recurring invoice lines to be hidden by default when viewing the recurring invoice | v2.208 #1024067 | 29:57
Multiple changes to available $ variables | v2.208 #1023687 | 32:18
Added the setting 'Automatically create Change Advise Boards from Teams' to Approval Process settings | v2.208 #1023311 | 32:55
A setting has been added to the QuickBooks Integrations setup so that a Closed Date can be entered. | v2.208 #1022558 | 33:16
You can now use Client, Site or User Custom Fields for criteria on Workflow Automations | v2.208 #1022399 | 33:41
The variable $ SERVICEID can be used in database lookups to obtain the ID of the Service linked to the Ticket | v2.208 #1021534 | 34:21
Custom Statistics Tables added | v2.208 #1019726 | 34:32
Decimals are now allowed within the field "Tickets Opened/Closed within the last X days" in AI suggestions | v2.208 #1018082 | 37:42
Added a new Knowledge Base setting that allows you to hide FAQ tiles that have no results matching the current search in the Portal | v2.208 #1012783 | 37:50
Added a manufacturer field to the suppliers tab of assets | v2.208 #1009501 | 37:57
Improvements to Qualification matching | v2.208 #1008143 | 38:01
Various improvements to the self-service portal | v2.208 #1007918 | 40:49
You can now use Client, Site, User and Organisation level $ variables in the Self Service Portal custom HTML Headers and Footer | v2.208 #1007759 | 43:43
Enhancement to Client-Ticket Type restrictions | v2.208 #1006158 | 47:49
Added a Chat Audit Area Added a new Chat Transcript style | v2.208 #1004851 | 48:34
You can now set feedback and survey links to be single use | v2.208 #1002898 | 48:41
Added an Advanced Setting to alter the Tree menu width | v2.208 #999276 | 51:57
You can now make your custom hompage HTML in the End-User portal appear as a sticky banner across all portal pages | v2.208 #996323 | 52:48
Added option to exclude non-invoiceable time from budget calculations | v2.208 #994004 | 56:01

This discussion guide is part of Rising Tide’s Winter 2026 book club, where we’re reading Think Naked by Marco Marsan.
If you’re just joining us, here are a few pages you’ll likely benefit from:
“If you want to be more creative, stay in part a child, with the creativity and invention that characterizes children before they are deformed by adult society” - Jean Piaget
In Chapter 2, You Lost Your Marbles, Marco Marsan explores how people don’t simply “grow out” of creativity — they are systematically conditioned out of it. The chapter argues that over time, fear, rigid rules, institutional norms, and social conformity slowly strip away curiosity, playfulness, and experimentation.
Marsan frames this loss through several forces:
The chapter opens with a consulting story where a leader dismisses Marsan outright, using it as a framing device to explore how organizations often reject discomfort, challenge, and unconventional thinking — even when they claim to want innovation.
Use these open-ended prompts to guide reflection and conversation. Remember, there are no right answers!
Rising Tide helps MSPs and service-focused teams build better systems: the kind that align people with purpose.
Every Friday at 9:30 AM ET, we host Rising Tide Fridays as an open conversation for MSP owners, consultants, and service professionals who want to grow both professionally, technically, and emotionally. In Winter/Spring 2026, we’re walking through Think Naked.
If that sounds like your kind of crowd, reach out to partners@risingtidegroup.net for the Teams link. Bring your coffee and curiosity…no prep required.

This discussion guide is part of Rising Tide’s Winter 2026 book club, where we’re reading Think Naked by Marco Marsan.
If you’re just joining us, here are a few pages you’ll likely benefit from:
In the introduction and first chapter, Marco Marsan proposes to the readers that creativity is not lost as we age — it is trained out of us. He cites research suggesting that young children test at very high “genius” or creative problem-solving levels, and that this capacity sharply declines by adulthood.
To return to this childlike, “genius” mindset, Marsan introduces five “rules” that mirror how children naturally engage with problems:
Use these open-ended prompts to guide reflection and conversation. Remember, there are no right answers!
Rising Tide helps MSPs and service-focused teams build better systems: the kind that align people with purpose.
Every Friday at 9:30 AM ET, we host Rising Tide Fridays as an open conversation for MSP owners, consultants, and service professionals who want to grow both professionally, technically, and emotionally. In Winter/Spring 2026, we’re walking through Think Naked.
If that sounds like your kind of crowd, reach out to partners@risingtidegroup.net for the Teams link. Bring your coffee and curiosity…no prep required.