Here at Yahoo! (and you can tell I work for Yahoo! by adding the damned exclamation point–the company name is “Yahoo!”, not just “Yahoo”) I’m finding myself traveling about once a week to the mothership where I meet with many people to help coordinate and manage a large scale integration project.
And every evening I go home, sit in front of my computer thinking about hacking–but between taking care of an elder friend of mine and the events of the day, I find myself looking at code that should be trivially obvious–and seeing greek instead.
One thing that struck me about Paul Graham’s essay Holding a Program in One’s Head, he talks about the things that can cause a programmer to become inefficient. Basically, as a programmer you hold a program in your head–and there are events (meetings, destractions, etc) which scramble your brains, causing you to spend a half hour (at best) reloading your mind with the problem you’re trying to visualize.
I think it’s worse than that: I think all management functions are designed to scramble your (programming) brain.
And long term exposure may cause permanent brain damage.
Management is essentially incompatible with software development: it’s why the best ideas usually come from either small companies or small business units in large companies–business units which are essentially run like small startups.
So for the past few months I’ve been dealing with what are essentially management functions: communicating to other teams, coordinating actions, creating delivery dates and filing expense reports.
Hopefully I can get out of this loop before permanent damage sets in and I can no longer code my way out of a paper bag.
Update: A friend pointed me to the following site which can help exercise your programming brain: Project Euler, which provides a number of mathematical problems which can really only be solved by writing a short snippet of code. Some of the problems they have wind up being o(N!) or o(2N) if you take the trivial solution–causing the amount of time to solve the problem to explode, unless you also figure out a more efficient algorithm.
If I can’t clear my head this weekend, I may just spend a few hours solving problems from the Euler site.