My first automation project wasn't glamorous. It didn't save thousands of hours or generate millions in revenue. It saved me an hour a week renaming invoice files as a commercial property manager.
But that small project—building a Python script to automatically process and rename 50 invoices every Monday—taught me lessons I apply to every automation I build today, including multi-thousand-dollar systems for clients.
Here's what I learned.
1. Human Intuition Is Invisible Until You Try to Automate It
When I started building my invoice renaming script, I thought the task was simple: extract the vendor name, property code, invoice date, and invoice number from each PDF. Format them consistently. Done.
What I didn't realize was how much tacit knowledge I was applying without even thinking about it.
When I saw "ABC Landscaping" on an invoice, I automatically knew it was for the Riverside property. When "Johnson Plumbing" listed our billing address instead of the service address, I knew which building they'd actually worked on. When certain vendors used customer IDs instead of invoice numbers on recurring charges, I knew to grab that instead.
I had about 100 edge cases in my head. Things I'd learned over months of doing this manually. Rules I'd never written down because I didn't even know I was following them.
Automation forces you to document everything. Every assumption. Every exception. Every bit of context you're unconsciously applying.
Before you write a single line of code, write down your process. Then actually follow it, step by step, like a computer would. You'll be shocked at how many "obvious" decisions you make that aren't obvious at all.
2. Perfect Is the Enemy of Done
I spent weeks trying to get my invoice script to 100% accuracy. Every time I fixed one edge case, I'd discover another. A vendor would suddenly change their invoice format. A handwritten invoice would come in with terrible handwriting. A PDF would be scanned upside down.
I could have spent months accounting for every possible scenario. Instead, I shipped at 95% accuracy.
Here's why that was the right call: I still had human oversight. The script flagged files it couldn't process with complete confidence. Those went into a separate folder for manual review. Instead of processing 50 invoices manually, I was processing 2-3.
95% automation beats 0% automation every single time.
The perfect system that never ships helps nobody. The good-enough system that ships today and improves over time actually provides value.
3. Build Flexible Systems
My biggest breakthrough came when my brother suggested: "Don't hard-code your business rules. Put them in a Google Sheet."
Instead of writing Python code that said "if the vendor is ABC Landscaping, assign it to Riverside property," I created a spreadsheet where each vendor had a row with their name, expected invoice format, and properties they serviced.
The script just referenced the sheet.
This changed everything. When I discovered a new edge case, I didn't need to modify code—I just updated the spreadsheet. When a vendor changed their invoice numbering system, I edited one cell. When we added a new property, I added a row.
Separate your data from your logic. Your business rules will change constantly. Your code shouldn't have to.
This principle applies to every automation I build now. Configuration lives in databases, spreadsheets, or environment variables. Code stays generic and flexible. When requirements change—and they always do—updates are simple.
4. The ROI Isn't Always About Money
When I calculated the value of my invoice automation, the numbers were modest: 48 hours saved per year, roughly $1,920 in value at $40/hour.
Not life-changing money. Not enough to quit my job. Just a small efficiency gain.
But here's what the math doesn't capture:
Mental relief. I stopped dreading Monday mornings. That hour of mind-numbing work that started every week was gone.
Reclaimed focus. Instead of burning an hour on administrative tasks, I could spend that time on actual property management—tenant relationships, maintenance oversight, strategic planning.
Proof of concept. I proved to myself that I could build automation. That first small win gave me the confidence to tackle bigger projects.
Compound effect. That hour per week compounded. Over two years, 96 hours saved. Over five years, 240 hours. Time I redirected toward learning more about automation, which eventually led to starting my own automation consulting business.
The real value isn't always in the immediate time savings. It's in the momentum, the confidence, and the foundation you build for bigger things.