I’ve been thinking about why I enjoy building software so much.
And I realized something.
For me, programming really isn’t that different from fixing something in the real world.
I’ve spent a lot of my life building things, repairing things, taking things apart, and occasionally taking something apart only to discover I probably should have taken a picture first.
Software feels surprisingly similar.
It Usually Starts With “Why Does It Do That?”
Something annoys me.
Maybe an app takes six steps to do something that should take two.
Maybe a feature I need doesn’t exist.
Maybe something is unnecessarily complicated.
Or maybe I look at it and think:
“There has to be a better way to do this.”
That’s pretty much the same way I approach a physical problem.
You don’t immediately grab a hammer.
Well…
Usually.
First you figure out what’s actually wrong.
Then you figure out what would make it better.
Software is no different.
Take It Apart
I’ve always liked knowing how things work.
When something breaks, I’m curious about what’s happening underneath.
Where does this go?
What does this part do?
Why did they build it this way?
Software scratches exactly the same itch.
Except instead of screws, wires, gears and brackets, you’re dealing with code, databases, APIs and operating systems.
And just like repairing something physical, changing one little thing can sometimes have consequences somewhere completely unexpected.
Remove this.
Change that.
Run it.
And…
Great.
Now something else is broken.
Anyone who’s ever repaired an old house knows this feeling.
You open a wall to fix one problem and discover three more waiting behind it.
Software does that too.
It just has less drywall dust.
Use the Right Tool
There’s another similarity.
You don’t need the biggest tool.
You need the right tool.
I think software has forgotten that sometimes.
We’ve reached a point where applications are expected to do everything.
Email clients become calendars.
Calendars become task managers.
Task managers become collaboration platforms.
Before long, the simple tool you originally wanted has become an entire ecosystem.
Sometimes that’s useful.
But sometimes I just want a screwdriver.
That’s how I think about the apps I’m building.
JustMail doesn’t need to become the center of your digital life.
It needs to handle your email well.
OMV Companion doesn’t need to replace OpenMediaVault.
It needs to make checking and managing your server from your phone easier.
A tool should know what job it’s there to do.
If Something Is Awkward, Eventually I’ll Change It
There’s a dangerous part about building software you actually use yourself.
You notice everything.
If a button is in the wrong place, I’ll eventually get tired of pressing it.
If something takes four taps when it could take two, eventually it’s going to bother me enough that I’ll change it.
If I have to keep doing the same repetitive thing…
At some point I’ll probably try to automate it.
That’s how a lot of my ideas happen.
Not:
“What app could I make?”
More often it’s:
“I’m tired of doing this.”
Then I start wondering if I can fix it.
Sometimes the Fix Doesn’t Work
This part is important.
Not every idea works.
I’ve built things and thrown them away.
I’ve rewritten things.
I’ve spent hours solving a problem only to realize the solution was worse than the original problem.
That’s okay.
I’ve done exactly the same thing while building something with my hands.
Measure.
Cut.
Try it.
Nope.
Do it again.
You learn.
The difference with software is that the garbage pile is mostly digital.
Which is probably good considering how many versions I’ve thrown away.
There’s Something Satisfying About Making Something Useful
This might be the real reason I keep doing it.
I like making things.
There’s something satisfying about starting with a problem and eventually having something in front of you that solves it.
It doesn’t really matter whether it’s something physical or a piece of software.
Yesterday there was a problem.
Today there’s a solution.
And maybe tomorrow somebody else uses that solution too.
That’s pretty cool.
Maybe That’s What HackitZ Really Is
I’ve used the HackitZ name for a long time.
Long before these apps existed.
And when I think about it, the name still fits.
Hack something apart.
Understand it.
Change it.
Make it useful.
Make it yours.
Not hacking in the movie sense with somebody wearing a hoodie typing furiously into a terminal while green letters fly across the screen.
Although that does look considerably more exciting.
I mean tinkering.
Curiosity.
Looking at something and wondering what else it could do.
That’s probably the common thread behind everything I’m building.
JustMail.
OMV Companion.
And whatever strange idea I decide to start working on next.
I’m not trying to build software because the world needs another app.
I’m building it for the same reason I’ve always enjoyed fixing and making things:
There’s a problem in front of me.
I think I can make it better.
So I grab the tools and start working.
Sometimes those tools are a screwdriver and a wrench.
Sometimes they’re a keyboard and code.
Either way…
That’s HackitZ.
Until next week,
Kev