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 12 of By the [run]Book, Mendy and Connor continue their deep dive into HaloPSA release v2.204, covering the second half of this massive update. They break down critical enhancements across SLAs, custom fields, assets, chat, Google Workspace, billing, documentation, and integration workflows. This episode is ideal for MSP operators, service managers, and Halo administrators looking to understand not just what changed—but how those changes impact real-world processes.
Here's a few Key impactful updates featured in this episode:
· ATimezone option has been added to Agent details (998146)
Ensures holiday/PTO allowances calculate correctly based on each agent’s actualtimezone—preventing mid-day rollovers for distributed teams.
· Improvementsto the Google Workspace integration (987605)Updated user-matching options to now allow the use of both username and email.
· Restrictedasset relationship types (897671)
Allows admins to control which relationship types can be used between differentasset classes, preventing illogical or messy asset mappings.
· Separatepermission for impersonating users (747369)Impersonation no longer requires full admin rights, enabling safertroubleshooting and testing by leads, onboarding teams, or QA staff.
· Optionto select different email templates when sending invoices (574826)
Staff can now choose from multiple invoice email templates—helpful for voided,corrected, or specialized billing communications.
· NewSLA setting: user replies reset the response target even when on hold (920093)
Fixes unpredictable SLA behavior by ensuring user updates always reset theresponse timer, eliminating false breaches.
· Ticketlist filters now support Client, Site, and User custom fields (965190)
A major visibility upgrade that allows filtering by Client, Site, User customfields, and other options.
· Pre-paybalance type can now be set per contract (758980)
MSPs can now choose hours or currency on a per-contract basis—ideal for clientswith mixed prepay models like retainer hours and project funds.
Watch Now: By the [run]Book: Episode 12
For easier tracking, check out haloreleases.remmy.dev to filter and search HaloPSA updates by ID, version, and keyword.
Full Feature review:
A Timezone option has been added to Agent details which initially will only be used to ensure that the Holiday allowance calculations are correct | v2.204 #998146 | 2:04
Ensures holiday allowance calculations respect each agent’s timezone.
Various Embeddable Chat Widget API improvements | v2.204 #993194 | 7:42
Adds more customization and event capabilities to Halo’s external chat widget.
Various improvements to SAF management | v2.204 #987889 | 9:23
Enhances the Service Architecture Framework.
Improvements to the Google Workspace integration | v2.204 #987605 | 13:02
Adjusts Google user matching behavior.
Added a ticket setting to show the department a team belongs to when assigning/re-assigning | v2.204 #983485 | 15:29
Displays department context during ticket assignment.
The FAQ list now shows in the portal URL when navigating through the Knowledge Base | v2.204 #983353 | 16:02
Improves navigation clarity when browsing FAQs.
Slack notifications can now be triggered by CRM Note updates, Site updates and specific Agent Actions | v2.204 #982479 | 16:27
Expands Slack integration coverage.
Added Agent Team Mappings to Microsoft Entra ID | v2.204 #979667 | 16:36
Allows syncing team membership from Entra ID.
The change management fields ‘Impact’ and ‘Risk’ can now be used in Risk Score calculations | v2.204 #975163 | 19:31
Improves accuracy of Change Management scoring.
Added a general Ticket setting that when enabled, the Can Edit Advanced Ticket Details permission is required to bulk change Ticket Priority | v2.204 #971319 | 21:58
Adds protection against mass-priority edits.
Charge Rates/Types can now be ordered by a sequence number set on the Charge Rate/Type setup | v2.204 #969791 | 22:33
Enables custom sorting of charge rates.
Minor report Chart filtering UX improvements | v2.204 #969514 | 23:20
Improves visual continuity when filtering dashboard charts.
You can now use Client, Site and User Custom Fields as criteria for Ticket List filters | v2.204 #965190 | 24:58
Significantly expands filter capabilities.
Added option to send an Email to a specified Agent when a Runbook fails | v2.204 #957580 | 27:45
New notification option for automation failures.
Added a notification trigger for when a User uploads a document to a specific folder | v2.204 #955651 | 27:53
Useful for client-upload workflows.
Added Access Control to Folders when using Document Management | v2.204 #955650 | 28:09
Brings permissioning to folder-level document storage.
‘Top Level’ field now available when creating an Account/Prospect from the new Opportunity screen | v2.204 #923428 | 30:08
Allows proper top-level assignment for accounts/prospects.
Customer & Site level custom fields now have the option to be displayed under the customer record when logging a ticket | v2.204 #920539 | 32:06
Surfaces client metadata during ticket creation.
Added a global SLA setting to allow user updates to reset the response target regardless of whether the ticket is on hold | v2.204 #920093 | 34:13
Fixes a major SLA limitation.
Added the ability to restrict the allowed relationship types when relating assets | v2.204 #897671 | 39:30
Prevents invalid asset relationship mappings.
You can now import Service Level Agreements (SLAs) & Priorities using an XLS spreadsheet | v2.204 #841750 | 40:34
Enables bulk-import of SLA structures.
Added asset and service business and technical owners as notification recipients | v2.204 #801201 | 41:42
Provides more targeted asset/service notifications.
Improvements to the Jira Software integration | v2.204 #796046 | 43:04
Enhances mapping, syncing, and mention handling.
Unapproved holidays now show with a dotted border | v2.204 #795392 | 44:59
Better visibility in calendars.
You can now save emails from Mail Campaigns as email templates | v2.204 #762793 | 45:06
Allows reuse of campaign email layouts.
Pre-pay balance type can now be set per contract | v2.204 #758980 | 46:33
Adds contract-specific prepay logic.
You can now view the amount of hours invoiced so far on the billing tab of a ticket | v2.204 #749755 | 48:13
Adds visibility into billed time totals.
Added a separate permission for impersonating users | v2.204 #747369 | 48:37
Impersonation no longer requires full admin.
Added option to select different email templates when sending out invoices | v2.204 #574826 | 49:02
Choose among different invoice email templates.
Creating a Purchase Order from a Sales Order line will now set the Sales Order line Supplier field and updating the Purchase Order line price will update the Sales Order line cost | v2.204 #417125 | 50:38
Fixes cost/supplier syncing between SO → PO.

This discussion guide is part of Rising Tide’s Fall 2025 book club, where we’re reading The Go-Giver by Bob Burg and John David Mann.
If you’re just joining us, here are a few pages you’ll likely benefit from:
In Chapter 11, Joe learns more about “Gus,” who he is, and why he does what he does!
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 Fall/Winter 2025, we’re walking through The Go-Giver, chapter by chapter.
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 Fall 2025 book club, where we’re reading The Go-Giver by Bob Burg and John David Mann.
If you’re just joining us, here are a few pages you’ll likely benefit from:
In Chapter 10, Joe learns the Fourth Law of Stratospheric Success — “The Law of Authenticity” — from a now-successful saleswoman who found this truth when she was at her lowest.
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 Fall/Winter 2025, we’re walking through The Go-Giver, chapter by chapter.
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.