Generally speaking, software isn’t hard at all. We as humans perform complex operations all day long. Our brains are wired to do lots of tasks, often simultaneously, without much thought or energy. It’s only when we try to duplicate these tasks with technology that we realize just how many steps there are, and designing good software to duplicate them gets tricky.
Do you remember the exercise in high school English class to write down the steps to make a peanut butter and jelly sandwich? Do you remember how silly it seemed for the teacher to come up with a massively simple assignment, only to realize how hard it is? Proper communication in a step-by-step process is absolutely critical. Software is no different. Truly functional software, such as business management software, has to take into consideration all the possible reasons that tasks need to be done, and all the ways they get done, before the first line of code can be written. In fact, the most time-consuming process of creating good software is the planning stage where you outline exactly what needs to get done in the first place. Instead of saying “Get two pieces of bread,” to make your sandwich, you must first ask “where is the bread?” You may not even be in the kitchen, which of course is where the bread is.
All software begins with this planning stage. Often this stage takes 4 to 5 times longer than the actual code writing. While all software starts here, only good software, the easiest to use, the kind that makes you say, “wow, that was easy” the first voip call center software time you use it, takes much more time to plan properly. There is true engineering and mastery of design required to create naturally intuitive process steps, and combine multiple steps into what feels like one.
Unfortunately most of us have been forced to use poorly designed software on a daily basis. Software that requires lots of steps to do what seems to be one action. It was probably not the intent of the software designers to make “hard” software. However, at some point in the planning stage someone was satisfied with how all the steps were laid out, and the green light to begin writing code was given. The problem was that not enough planning had been done, or more steps were added to the process after planning yet nobody returned to the planning to re-think the process. Therefore clumsy, clunky, cloggy software got delivered. When more hours go into testing and bug removal than actual design, the result is difficult software. If the software training takes more than a day for staff who are familiar with the industry and daily tasks, you’ve got difficult software.
We are in the business of trucking software. Trucking software encompasses trucking dispatch which is arguably one of the single most complex positions in any small business. Dispatch is the easy word for workflow management, and exists in a multitude of industries. In most of these industries, dispatching generally refers to assigning workers to jobs based on geographic proximity and schedule availability. There are genuine hurdles to overcome on a regular basis for a dispatcher such as job delays or traffic that often result in last-minute changes to job assignments, or constant rearranging of resources to avoid losing precious revenue. In the trucking industry these standard hurdles are often compounded because of the time required to perform jobs (2 days or more) and the fact that resources are spread out across an entire country. Additionally a trucking dispatcher has another set of dimensions to work around – DOT regulations. The Department of Transportation oversees the trucking industry’s safety regulations governing the number of hours a driver can drive in a single shift, and the equipment maintenance standards, to which all trucking companies must adhere for safe operation.
The software that manages this specific type of dispatch is referred to as trucking software or trucking dispatch software. Trucking software allows the user to see each truck job in motion – who is assigned to it, what truck they are driving, when are they supposed to arrive at a specific location – and document regular status updates. This software gives full “load visibility” to the dispatch staff to do their job effectively. With each change or update, the dispatcher should be able to easily mark those updates accordingly in the software. And if they had easy software, they would. But that is not always the case. Trucking, with all its complexities, is difficult to reproduce in the digital world. Each physical task done by the dispatcher often equates to multiple steps in a process that must tie in to other steps later in the overall business process. What if you must assign a different driver to a shipment because the originally assigned one is delayed on his last shipment? What if the next job for a driver is delayed or cancelled and another job is needed for him to continue to earn a living? What if a truck breaks down in the middle of a job – who takes over? How does the broken truck get fixed?