Focused software development work is self-abnegating

When I’m deep in software development, reaching flow on a daily basis, my mind narrows to a kind of tunnel-vision, totally fixated on the software systems and their problems. This is a classic problem in design (Cooper, 2004): engineers typically make bad designers because they focus on their software and its edge cases, rather than the actual human problem to be solved. It’s also practically troubling for research (Mental states of deep software development and deep research thinking are mutually exclusive). But I find this effect increasingly unpleasant on a personal level. When I’m in this state, I feel my sense of self shrinking. I become unreflective. Creative thoughts cease to arise. I find writing difficult. And so on.

I’m not quite sure what to do about this. I can avoid this effect by spending less time on engineering per-day, but then it’s hard to build momentum (Switching costs are high between software development and research thinking). Back when engineering was my primary focus, this didn’t really bother me. So maybe serious engineering work is best left to people who don’t mind this effect.

David Chapman suggests this may be in part because:

I guess in routine programming—and probably for both of us all programming is routine—one is not adding anything of oneself, just figuring out what the tedious requirements of gluing together APIs demands; it’s all it-focussed. Whereas in creative work, even when you are immersed in it, there is a sense that at least the material is coming through you, rather than being “out there” in the IDE/server/API_doc and there’s some sense that, even when the material has a universal quality, so “I” am not creating it, nevertheless since it is coming “through” me, and so it’s going to be peculiar in a me-ish way without my intending that.

References

Cooper, A. (2004). The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity (1st Edition). Sams - Pearson Education.