Honestly I think my problem is that I tend to write my own code for stuff rather than trying to figure out what someone else has done and fit my thought processes into how they were working it through.
Examples:
I wrote a status management program to keep track of the work I do for yearly reviews. Tracks projects, hours, and even builds a timecard.
I wrote an inventory management program to keep track of our systems. We have an official asset tracking tool but it doesn't accommodate virtual machines, I can't script updates to it like I can my inventory program, the asset tracking system doesn't keep track of build dates or graph out the life timeline of systems, etc. I can customize it to do pretty much anything.
I wrote a budget management program where I can enter my financials (bank statements, credit card statements), plot out the trends, and do forecasts of what my financials look like as far out as I can to set a limit (currently 18 months out).
I wrote a combat management tool for one of the games I play where I just need to enter the data and it spits out my target numbers.
I think this goes back to when I started back in the early 80's. When you needed to do something, you either had to pay for it or learn how to do it yourself. They may not have the features other programs have but they're certainly customized to my needs.
[John]