Coders' Block


It's been so long since I coded anything of substance that TextMate has jumped nearly three dozen builds and a minor version (I never got around to updating it until today).

The odd thing is that I now realize I hadn't coded anything not just due to lack of time, but also due to lack of motivation, which has somehow been seeping through from the corporate "partition" in which I spend most of my waking hours.

I suppose being sick has some advantages, if only because you have enough time to cope with your insights (or because it's harder to escape them).

Why the lack of motivation, I hear you ask? Well, mostly because it is impossible to gauge one's progress (and derive satisfaction from it) when you're spread too thin - the more timelines/issues/interruptions/chaos (pick any three) you have to manage, the tougher it is to have any sense of progress - and unless you trim down your focus and feel your progress on one project at a time, despondency soon sets in.

If this seems like something out of Getting Real, well - it is, pretty much, although my line of work doesn't have anything to do with web applications (I just do them as a hobby these days).

But the basic principles are the same no matter the scope of your activities: To maintain some enthusiasm about what you do, you have to iterate - build small, figure out what actually matters, re-shape things according to your peers' perception, go back to the drawing board time and again until there is nothing more to remove from the solution.

Which, incidentally, is precisely the opposite of most of the stuff I'm involved in professionally. The old adage of -

A complex system that works is invariably found to have evolved from a simple system that works.

...could probably be re-written, from a telco standpoint, to read -

One must create a complex system that works by amalgamating several complex systems that work without impacting their standalone functionality.

...i.e. "mix the omelet, but don't break the eggs."

Which, as you may well imagine, can grow into disproportionately complex solutions, and quite some heavy going where it relates to keeping track of your goals and motivation.

I've been fighting this tendency for a while (mostly by trying to mix and match long, tough, complex stuff with straightforward, time-bound tasks that I can get some satisfaction out of delivering on time), but as anyone will tell you, real life doesn't work the way you want to any of the time - and the telco environment is a particularly tough one where it comes to complexity and time-scales (delivery deadlines are always too short, technology milestones can be years away, and things are always too complex regardless of time-scale).

Still, one tries to cope with it - I've always bounced back, and I'll do it again and again until there is no more bounce left in me (hopefully, when I'm 80 or so).

It's mostly a matter of picking the right things to put a positive spin on, doing them (without detracting from the stuff that actually needs to get done on time) and have them even out the rest - something I'll have a go at next Monday.

Now, where did I put that Python class I wrote three months ago?


See Also: