The swordsman beheld the sword. His blood called to it. It sliced him, singing.
so low my fruit heavy bearing your light bare feet piercing me with high heels
But to expand on that, and to perhaps give you something of an answer anyway: this is very much true for me in software development too. I like the *process*. I like writing software. I like trying to make things work better. In many ways, the end result is unimportant – it’s really just the excuse for the whole experience. It’s why I started Linux to begin with – sure, I kind of needed an OS, but I needed a *project* to work on more than I needed the OS.
In fact, to get a bit “meta” on this issue, what’s even more interesting than improving a piece of software, is to improve the *way* we write and improve software. Changing the process of making software has sometimes been some of the most painful parts of software development (because we so easily get used to certain models), but that has also often been the most rewarding parts. It is, after all, why “git” came to be, for example. And I think open source in general is obviously just another “process model” change that I think is very successful.
So my model is kind of a reverse “end result justifies the means”. Hell no, that’s the stupidest saying in the history of man, and I’m not even saying that because it has been used to make excuses for bad behavior. No, it’s the worst possible kind of saying because it totally misses the point of everything.
It’s simply not the end that matters at all. It’s the means – the journey. The end result is almost meaningless. If you do things the right way, the end result *will* be fine too, but the real enjoyment is in the doing, not in the result.
And I’m still really happy to be “doing” 20 years later, with not an end in sight.