I’ve met business owners who had a million or two in revenues, but little to no profit.
It would be pretty frustrating to bring in that much money, and not be able to take any home with you.
Part of the problem is how you’ve grown your business.
You can hire someone to do the work every time you need to increase your capacity, or you could hire someone to build a system that does the work.
You have to keep hiring to keep up with the work when you don’t have systems in place. Every new employee is a big recurring expense. Good systems can reduce your hiring needs, and therefore your expenses.
A simple customer service application, for example, can enable a single person to do the work of two or three. When your people have to go searching for information to answer a question, that’s time you’re paying for and getting no value in return.
A good system makes that information available immediately. Type in the customer’s name, and all their information is right there on the screen. Why pay someone to sort through paperwork?
Your people need to be doing work that matters. If they’re searching through paperwork, or spending hours managing spreadsheets, or trying to figure out the status of a project, that’s your profits disappearing.
Build systems that handle the monotonous, time-consuming work, and have your people focused on income-generating activities instead.
You will need a smaller staff, with less training (because the system does the hard work), that are building your business more efficiently.
It takes time to do. It’s an investment.
Most people don’t see the end result, they just see the dollar signs up front, and that stops them. They’d rather hire a new employee because it’s the familiar path.
You can build a system and pay for it once, or hire more people and pay them over and over.
There is always maintenance work to do on your system, and it will need to be upgraded as your business grows, but those costs are far less than paying the extra employees you’d need otherwise.
I had a client recently who refused to put any money into securing his system.
Despite my multiple suggestions, he said it was unnecessary because he trusts all his guys.
It’s a critical system, that could actually get his business shut down if the data is wrong.
It’s a great system that saves him countless hours of tracking down paperwork, but it’s only going to be great as long as nobody messes with it, whether intentionally or even accidentally.
All it takes is one disgruntled employee to start messing with old data. Change a couple older records today that you won’t notice.
And a couple more tomorrow.
Over a span of months, you have a serious problem.
Backups won’t help at that point. You won’t know when the data manipulation started to happen, and restoring a backup from before that point means you’ve lost all your data since then.
Better safe than sorry.
Trust (your employees), but verify.
One second… I’m trying to think of other clichés I could use here…
But seriously, it’s a small investment up front to avoid a disaster later.
It will take time to put security in place, but it’s far less than the time it takes to fix a corrupted database.
Are you planning on putting years into building your business, and then selling it for next to nothing?
Of course nobody would say yes to that, but actions speak louder than words.
A buyer wants to walk into your business and see a well-run operation.
When a customer calls to ask about his service order, does your staff have that information available immediately, or does it take them a couple hours to track down all the paperwork?
Can you pull up a report that shows the turnaround time of your projects? Or just give a vague guess?
Do you show him statistics on employee performance, or just hope he trusts you that they’re all good people?
Will he be able to sit in your office and focus on expanding the business, or do you have a list of tasks that only you can handle? How many fires do you have to put out each day?
Is all the business data available to him immediately? Or is there a lot of paper shuffling and spreadsheet manipulation he has to do to get answers?
Which version of that business would you pay a premium for?
The one that requires you to run around and manage every aspect of your business by hand?
Or the one where you sit at your desk and push a couple buttons to see your performance for the day?
If the buyer has to come in and build the systems himself, that’s going to come out of his offer price.
Your business has to be easy for someone else to run if you expect to get full value for it.
That means your most important job as you grow the business is to build systems. Good systems will make your business an attractive investment.
It’s a lot of work, but it’s work most people are unwilling to do.
When you do that work, your business will stand out.
If your business is a headache to run, you’ll get scrap part prices for it.
One of my clients a few years back came to me with a serious problem.
She hired a fairly experienced programmer to build software for her business, and he promptly subcontracted the work to a junior programmer.
When it was done, it looked great, and was easy to use.
You could add a record.
You could delete a record.
You could add two records.
You could delete two records.
Unfortunately, that’s as far as it went. The software crashed as soon as you added 3 records to any screen. Apparently, nobody had thought to test adding 3 records while it was being built, and it was in final testing before they noticed.
They blamed the problem on having bad programmers, but when I examined the code, that really wasn’t the case.
The code itself was pretty solid, except for one serious design flaw.
The problem was the difference between a programmer and a software developer.
I have met many programmers to whom I could assign tasks and get back decent code. But there are very few I would hire to build a complete software package from scratch.
There’s a big difference between, for example, writing a function to sum up all the items on an invoice, and writing an entire accounting software package. Being able to do the former has no relevance to being able to do the latter.
Building an entire application requires far more than coding skills.
You need to understand security, databases, user interfaces, software architecture, testing, debugging, and more. A programmer without all that extra experience is probably not going to do a good job writing an entire application from scratch.
The bigger and more complex the application, the more experience is required to make it successful.
When you hire someone to write software, make sure they’ve actually built entire applications, and not simply individual pieces of an application. Preferably applications similar in size to yours, or bigger.
By the way, in this case I was able to fix the software. It was a lot of work, but it could be done.
Other projects have been so poorly designed they were unsalvageable. Not because of bad programmers, but because of programmers who could do certain tasks well, but not build software from scratch.
When you create business software, the database is usually the most critical piece of the system. But few business owners know to look for database skills when they hire a programmer.
All your software sits on top of the database, much like a house sits on a foundation. If the foundation is crooked, or the wrong shape, has cracks, or is made of inferior materials, you’re going to have problems.
No matter what you do, the house is not going to be stable over the long term.
Sure, it will work. You can sleep there. But you’ll be praying every night it doesn’t come crashing down.
If your database is poorly designed, you’ll have the same problem with your software.
It may work somewhat, but there will be obvious problems. It could be hard to use, it could lose data, or you may not be able to report on the data you want.
All of these problems happen over and over, because few programmers really understand the database side of software development. No matter how good the programmer is, you can’t build good software on top of a bad database.
It’s easy to open up a database system and build a few tables. But proper design is more than just creating a few tables that cover all your data fields.
A good database programmer understands SQL, stored procedures, relationships, indexes, and keys, as well as broader topics like security.
Ask your programmer if he uses artificial or natural primary keys, and why he uses one instead of the other.
You don’t really need to understand keys yourself, you just need to see if he has an answer. If he doesn’t know the difference, or can’t explain his choice, find someone else.
By the way, there’s no right choice between the two, although many database programmers are fanatically devoted to one or the other. Either is fine, but you should be able to get an answer for why.
To design an effective database, you need to consider both the data you want to keep track of, and the reports you want to see later.
If the design is too simple or too complicated, you may not be able to report on the data the way you want.
If you want to report on average task time per employee on an annual basis, the ability to do that needs to exist before the software has been built.
Changing the database design afterwards can be difficult. Like re-pouring the foundation of your house after it’s built.
What happens to your business when an employee leaves?
If that employee has some significant responsibility, or in-depth operational knowledge, or even a list of your clients, it can be a pretty big risk.
It doesn’t matter if they depart on good terms or bad, it can still put your business in a bad situation.
One of my clients had a high level employee who simply left because he had been at the job for years, no longer felt challenged, and received an exciting new job offer.
He left on good terms with the company and had nothing against them. But he had been there so long, and had so many responsibilities, that nobody really knew all the different tasks he performed.
He gave plenty of notice that he would be leaving, and the managers scrambled to find other people to have him train as replacements.
Many of his tasks were complicated, but were simple for him because he’d been doing them for so long. Explaining them to others was problematic.
For example, an external data file would come in once every few months that they needed for updating their systems. The file needed to be formatted, sorted, modified, and entered into their database.
It took him a few hours to do it. It took his replacement a few days, not including making a mistake and having to start over.
But what happens when the replacement employee leaves? Incomplete knowledge gets passed down to the next guy.
And that’s just one task.
It took 7 other employees to cover his position when he left.
Eventually, they’ll be able to do the job as efficiently, assuming they themselves don’t leave as well.
The problem was the business relying on employees to do the work, instead of having them manage systems.
The task of importing that critical data file could have been automated. If it had, any employee could easily be trained to press the “import” button.
There would be an entry in the systems manual that said, “When the data file comes in, go here, click this.” Done.
But it was considered unimportant because it was being handled, and there were other problems to worry about.
He did his job well, so nobody ever gave it a second thought because nobody even noticed it happening.
One tiny system could have prevented the need for weeks of training, and months of struggling to get it right.
Having an employee leave should not significantly impact your business. Build your operational knowledge into your systems and don’t risk having it walk out the door with your employees.
I turn employee know-how into business systems that run the business for you. If you have important processes that would be impacted by an employee departure, contact me.
We had a client who performed corrosion inspections for oil and gas companies. They ensure that equipment is safe, and can identify problems before they happen.
They had a goal to complete jobs within 45 days. That would put them well ahead of their competitors, who generally took anywhere from 90 to 180 days. The problem was they weren’t quite sure what their average turnaround time was.
Their best guess was 90 days.
The paperwork for their jobs was put in a pile, and the oldest jobs would usually be at the bottom. Everything was done in order from the bottom up, but sometimes things would get shuffled around and jobs would lose their place.
They couldn’t get a handle on what was outstanding and how old the jobs were without a lot of manual paper sorting. They didn’t have a way to track turnaround time either.
The first solution was to enter everything in a spreadsheet. That didn’t work because multiple people would do updates as they started on jobs and reached specific milestones.
There were multiple copies of the spreadsheet, all with different entries, and no reliable master copy. It was a lot of extra work to merge all the various copies of the spreadsheet.
They knew a centralized database to collect all their data was the only real solution.
They tried to build their own first, but quickly realized it would take more than some basic technical knowledge to do it right.
The existing commercially available solutions would do some of what they wanted, but they really wanted a tool their competitors wouldn’t have, and couldn’t copy.
They chose me to build a custom job tracking system. That would give them the competitive edge they wanted.
I analyzed how they worked and what they wanted to accomplish, and designed a database system that would help them reach their goals and grow with the business.
Every employee had access to the system, and every stage of every job was recorded as it was started.
They could view reports showing outstanding jobs and turnaround times. They knew which jobs were late and needed immediate attention, and could prioritize their work.
It only took a few months to get their average turnaround time down to 45 days using this new system.
Now they have some of the best turnaround times in their industry with this new software. It is also a successful sales presentation tool.
They use their software to demonstrate their job tracking capabilities, and show prospective clients how they are able to keep them up to date on job progress.
They answer inquiries about job status and historical jobs instantly when asked, because all the data is right there on the screen. Their competitors take hours or days to find the same answers as they search through paperwork to figure it out.
Many of their clients have made them a top vendor. When they have available time and manpower, the jobs go to them.
They took the time to build a job tracking system that showed their clients they care about the quality and timeliness of their work, and it’s paying off.
If you are interested in building a system that can do the same for you, contact us to see how we can help.
I have a home gym in the middle of my dining room.
Why would I put it there, you ask?
It had been in the basement in pieces since the last time I moved. I wanted to start using it again, but wasn’t sure I still had all the parts.
Luckily, the assembly instructions were online, so I started lining the pieces up.
I worked on it near my computer so I could follow along with the instructions on the screen. I ended up assembling the entire thing while trying to figure it out, which took a few hours.
There was one washer missing, so no big deal.
Now the heavy gym, fully assembled in my dining room, with 200lbs of weights and rubber feet on the bottom, wouldn’t slide across the linoleum floor.
I usually come up with clever solutions, like putting paper under the feet to reduce the friction. But the end with 200lbs of weight doesn’t have any way to lift it up to slide the paper under.
I had taken a shortcut just to see if it could be built. I used the “temporary” solution instead of printing out the instructions and hauling all the heavy pieces up another floor to the spare bedroom.
Well now the dining room is my workout room.
The same thing happens to software.
If you don’t take the time to build it correctly right from the start, you end up with something that gets in the way more often than it helps.
I only use my home gym a few times a week (well, let’s pretend I do), so it’s not really a big deal that it’s in the wrong place. Your software is something you use every day, so all the extra time it takes to make it work adds up over the year.
You may think since it’s a temporary solution, shortcuts are fine.
Very rarely is any piece of software actually “temporary”. Most of the temporary solutions I’ve seen have been in place for years, and the users struggle to make them work properly.
And the business pays for all that lost time and energy.
I don’t want to spend hours taking my home gym apart, and hours more reassembling it. Nor do you want to do that with your software, which takes considerably more than a few hours.
If you don’t have the time and money to do it right the first time, will you have the time and money to redo it later?
Plan your software and make sure it’s the best business asset you can possibly build. That’s what I do – contact me when you’re ready to build it right.
I am creating a series of posts called “Tech 101” for business owners. I think it’s important to understand the basics of technology, so that when you hire a programmer, you’ll know what to look for.
One of the big problems I see in hiring programmers is confusing “tech lingo” with programming expertise. Too many businesses lose money hiring someone who can speak the language, but doesn’t really have the skills. You need to know what’s important, and what the right questions are.
Through this series of posts, you’ll learn the basics of databases, web security, programming techniques, and required skills that your programmer should have, but that many don’t.
My goal is to help you avoid losing money to a bad programmer. Like any other profession, there are a small percentage of truly excellent programmers, and they’re difficult to find.
Many people expect a good programmer to be able to come in and fix the mistakes the bad programmer made. Unfortunately, that’s usually not possible. You can’t build a stable house on a shaky foundation.
Programming is as much art as science, and every programmer has their own style. But regardless of style, the basics stay the same. If someone has created software without understanding the fundamentals, it really can’t be salvaged. It can be patched and maybe made to struggle along, but it will probably be a money pit, and it’s usually better to just delete it and start from scratch.
That’s why it’s important to do it properly from the start.
So learn the basics, and save your money. This series is designed for non-technical people, and won’t try to turn you into a programmer.