Like most developers, I got into programming because I like creating stuff. Not just any stuff, but stuff other people find useful. I like the constant problem solving, the use of abstractions that exist for long periods nowhere but in my imagination, and I like seeing the transformation into a living presence. There is a joy in the steady work of creation and in its first successful test run. It is both a sense of building and consuming until at last, at long last, I can test the new feature, verify that it works, and feel the euphoric rush of frenetic little wicker gates opening and closing inside me in a triumphant, momentarily ecstatic pulsing.
All developers know this rush. And, of course, they know the steady pleasure of patient, disciplined, and deliberate work that leads to the moment. These days, however, both the consummating surge of joy and the satisfaction of the preliminary work have become very infrequent experiences.
Both vectors today point in the wrong direction: The daily work is now overwhelmed with non-coding activity. Consequently, the culminating points of joy are ever rarer and much farther apart. So much that what goes between them now feels like drudgery. On private projects, I keep hearing myself spit out between expletives, "I just want to code."
For a long time, I've attributed this frustration to the complexity of today's software. The simple programs of a few hundred lines of C++ long ago disappeared from my experience. What once was the experience of riding a bicycle has become the equivalent of traveling by jumbo jet, replete with the delays, inspections, limitations on personal choices, and sudden, unexplained cancellations -- all at a significantly higher cost. Where is the joy in that?
Read the rest of this article on Dr. Dobbs.