Have you ever tried to solve a problem, and come up with all kinds of ideas to get it fixed? I’ve had a few of those, and I’m making an effort to change my approach this year. I’ll explain how it can help you in this article.
Finding A Simple Solution to Problems
As a programmer, a lot of your time is spent solving problems at work. You write code to solve a business problem. You write code to make certain functionality work in an application, which is solving a problem, such as connecting one service to a web page. You also spend time debugging and fixing code that you’ve written or that other people have written
Sometimes, these problems can be quite tricky. The kinds of problems I’m talking about are those that need a bit of thought. They need you to come up with a way to solve it that doesn’t just involve a misplaced semicolon in your code.
Now, when you start thinking of solutions to these problems, do you come up with all kinds of ways to get around it, complex fixes and designs you can put in to make it work?
I do this as well. It’s how us programmers think. We come up with great ways to fix problems and make our solution or design work. This doesn’t just apply to our code. It applies to many areas of our life.
What I’m Doing Differently This Year
I realised late in 2014 that sometimes, a simple solution is better than a complex solution. I was spending a lot of time trying to think of, and develop, complex solutions to my problems.
I thought it was the right thing to do, but it wasn’t. The solutions didn’t need to be that complicated. I thought it was efficient, and smarter, and just better overall.
I’ll explain how I realised this with a few examples.
I’m Into Personal Finance
I don’t think I’ve mentioned this here before, but I’m really into personal finance. I enjoy learning about personal finance topics, such as interest rates and making the most of your money. I also like learning about finance and economics, such as reserve bank interest rates, inflation, banking, and what all the different investment options are. I read Financial Samurai and I Will Teach You To Be Rich on a regular basis.
I’ve also been tracking every dollar that I earn and spend for about five years. I did this out of interest, when I first moved out of home and needed to pay rent and bills. I started tracking it in a program called Microsoft Money, and when that was discontinued I migrated over to an Excel file.
Now, this Excel file started small. But it grew. And grew. As a programmer and a personal finance enthusiast, I enjoyed adding functionality to this file, using formulas and macros, to tell me a lot of information about my finances. It also meant I manually entered every transaction and balanced it every week.
The point is, all of this took a lot of work. Manually entering the transactions took about 30 minutes per week, where I checked my accounts and remembered where I spent cash. I spent countless hours building macros and reports into this spreadsheet, and even lost it a few times when Excel crashed.
I had heard of online tools such as Mint, but I was unsure about accessing my bank directly, and unsure if they would work in Australia.
So, I thought, surely there’s a way I can access the bank’s API to load transactions into my Excel file directly? This would save me time entering them each week. Doing a bit of work now to save time later is something I think is important.
Turns out there isn’t a way to do this. There’s no public API.
But then, I had another thought. I realised this is going too far.
I’m spending too much time and effort in maintaining this Excel file. I made the decision to try out a personal finance tracking application, to see what it would be like, and to see if I could live with this new process.
I signed up to Pocket Smith, which after reading some reviews and doing a bit of research, seemed like the right one for me. It automatically imports and categorises transactions from my banks, allows me to add assets and liabilities, and gives me forecasts.
That was a few weeks ago. Since the original set up, I’ve spent maybe half an hour total inside this app, which was just to look around various reports and see how I was doing.
How does this relate to a simple solution?
Well, I was originally looking to write some code to access an API from a bank, or even read an exported transaction file from my accounts, to import data into my Excel file. I decided that a simpler solution would be better, and even without all the advanced functionality (that I probably didn’t even need), it’s turned out better.
Playing iPod in the Car
My second example of how a simple solution has been better is how I could get my iPod playing in the car.
My car has a head unit which I got for my 21st birthday (about 8 years ago now!). This head unit has an audio cable (the standard 3.5mm) that I plug into my iPod to listen to while I’m driving. This has been great so far, because I listen to a lot of podcasts when I’m driving, or music when I’m driving with friends.
In the last couple of years, there has been a problem with it. The audio would get all scratchy and lose quality, which is probably from either the cable being damaged or the head unit port being damaged (it’s quite old now).
What could I do to fix it? I had a few options:
- Buy a new head unit (approx $200-300). This may solve the issue, but I didn’t want to spend this money as I don’t drive a lot.
- Buy a new cable ($20). This could have solved the problem, but I would need to take the car somewhere to get the cable swapped, so there’s time and installation fees on top of that.
- Use an FM transmitter ($50). I actually got given an FM transmitter, where I plug that into the iPod and it transmits the sound on an FM frequency in my car, like a radio station. This worked, but the quality wasn’t that good, especially for podcasts.
- Use my headphones. I could listen to my iPod using my headphones while driving, but this probably isn’t as safe because I couldn’t hear other noise what was going on around me.
Then I had another idea. I had a mini speaker that I used at home to play the iPod while I was making dinner or doing chores or whatever. It’s a small speaker, the kind you see in electronics stores that you can plug into and charges via USB.
I wasn’t using it much at home, so I decided I could try to use that in the car. Plug the iPod in, turn on the speaker, and play.
It was fantastic. The volume was great, the quality was great, and it took zero effort and zero cost. Another example of a simple solution. While it is a bit annoying to have to plug in the speaker each time, and charge it every now and then, it’s a lot easier than all of the other solutions.
Transferring Files to My HTPC
My final example of how simple solutions are often better is using my HTPC (Home Theatre PC).
I have a custom-built PC sitting in my lounge room which I use to play TV shows and movies on. I occasionally want to transfer media from my main computer in the other room, or from my backup hard drives, on to this computer.
For a year or so, I was copying files from my backup hard drives, or using USB drives to get data across. I would copy all files and skip those which were already there. I would need to plug in the USB drive each time and copy the data, which would take time.
One day I wrote a small application to work out which files were different and copy those across, but it didn’t quite work as intended. It was slow as well.
Also, if I wanted to watch the files anywhere else, I needed to copy them to another device.
How did I solve this problem?
I realised that this computer was the only one not on my wireless network. So, I bought a wireless USB stick, connected it to the HTPC, and wrote a script to get all new files from my main computer and put them onto the HTPC. I then scheduled this script to be run every night, so it was always up to date.
This is working really well. It also means:
- I spend almost no time copying files manually between computers (I just check that files have been updated every now and then).
- Files are updated daily, rather than when I can be bothered copying them.
- I can also access this computer and watch files on my laptop in another room.
Don’t Compromise on Quality
So, there’s three examples from my life where I’ve come up with simple solutions which actually worked well to solve the problem that I had.
I’ve realised that I can take this approach with my working life as well, whether it’s programming, formatting a document, or getting things done.
One thing to be aware of is the quality of the solution. Sure, a simple solution may work, but it shouldn’t compromise quality.
You shouldn’t put in a workaround or some hack just to get something to work, when it makes the solution weaker or prone to causing problems. You shouldn’t put in bad quality code, or make a solution that is a “bandaid” fix.
If you think you’re focusing on complex solutions, it might help you to focus on simpler ones. It can save you time and effort, especially at work, where you often have limited time available.