How about a definition from someone's who actually builds one.
Well, "help desk software" is a system that saves incoming customer support requests into one central database. That's it. The database usually comes with some very nice handy features and reports (like quickly checking previous requests from a client, or assigning support reps to these requests, or passing it from one rep to another)
Throw in more features like agent time tracking, escalation to higher management, file-attachments, handy automations, ticket categories and tagging, private discussions (so two technicians can exchange messages without the customer seeing it) etc. etc.
But the bottom line is always the same - it's just a process of "database-inating" (?) your email.
Well, yeah, OK, not just email. Requests can be coming in via email, social networks, live-chat widget on a website, phone, yada yada, and a helpdesk app usually has ways to import these too. This is called "omnichannel help desk" by the way.
Still, email is like 99%. We have actually measured it (after all, thousands of companies use our product, and we sometimes extract non-personal statistics to learn how can we improve it).
Simple: when you have more than 1 person answering requests. Actually, you might still need it if it's just one dedicated support engineer - so they can request quick help from the rest of the team ("hey, look at this ticket"). You obviously don't need a helpdesk app if you're just a single founder wearing all the hats, including the customer service one.
Nothing. Email software has come a long way. No, seriously. Take email "threading" for example (grouping individual messages into "conversations") - a feature we all take for granted these days. I remember the time when this was not a thing. Working with email was a nightmare back then. The person who invented email-threading (I think it was Microsoft who pioneered it) really deserves a place in the Internet hall of fame.
Same way email-threading boosted productivity over regular unsorted messages, help desk software will boost the productivity of your support over using a plain mailbox.
"Shared inbox" won't show you the person's previous tickets. Or which company they work for. Or whether the company is a client or just a prospect. Or if you already solved a similar problem for somebody else. Or if you're experiencing an outage right now, so there might be an increase of incoming tickets. Or who helped this company last time. And was the result - was the problem solved or not? And if not - is there an "issue" logged in our bugtracker about this? If not - let's maybe create one with one click of a button? etc. etc. etc.
While most help desk apps have terrifyingly similar feature sets, that's a good thing. You know why? I've said this many times. That's because helpdesk apps are built for IT people. And IT people are usually very effing clear about what they want. But Jitbit is still different. Even though our feature set is pretty equal to some $100-grand ITSM/ITIL/shmitil tool we want to get out of the way. We keep our app neat. We want new features to stay invisible until they're really needed in the workflow, and that's when they pop up in front of you.