What really hooked me on programming is when I wrote what later became the Enterprise Knowledge Base of a Fortune 50 company. I was working on their help desk at the time, and the existing knowledge tools sucked, and had HUGE gaps between them.
I wrote something new, and specifically tailored to their process. This was over 10 years ago, and they still use it to this day, and have established a team of people to support it. I'll spare you the feature set (of which I'm quite proud), but the main thing that made it so intrinsic to their process was that it was written FOR their process. It was completely bespoke. It interfaced with their particular phone systems, their calendaring, their ticket tracking system, etc.
It was truly an enterprise-class tool, but for the fact that there weren't any layers of abstraction. The abstraction you usually have to put in to support a variety of databases, or a variety of phone systems, or a variety of calendaring tools because, the market for enterprise customers with MS-SQL + Avaya phone servers + Lotus Domino calendaring is crazy small.
Had it been re-engineered to work for all those systems, then it would truly have sucked. That is, I think the problem with tools like this -- you either conform to the process of the tool, or conform the tool to your process, and it's really hard to get right and stay lean. Maybe impossible.
I wrote something new, and specifically tailored to their process. This was over 10 years ago, and they still use it to this day, and have established a team of people to support it. I'll spare you the feature set (of which I'm quite proud), but the main thing that made it so intrinsic to their process was that it was written FOR their process. It was completely bespoke. It interfaced with their particular phone systems, their calendaring, their ticket tracking system, etc.
It was truly an enterprise-class tool, but for the fact that there weren't any layers of abstraction. The abstraction you usually have to put in to support a variety of databases, or a variety of phone systems, or a variety of calendaring tools because, the market for enterprise customers with MS-SQL + Avaya phone servers + Lotus Domino calendaring is crazy small.
Had it been re-engineered to work for all those systems, then it would truly have sucked. That is, I think the problem with tools like this -- you either conform to the process of the tool, or conform the tool to your process, and it's really hard to get right and stay lean. Maybe impossible.