I’ve been a professional systems developer for 16 years now. I love it and I’m good at it. I’m currently working on two projects with two different customers. We run these projects in-house. The two companies have a systems setups that are very similar to each other and that confuses me. They run Windows, Citrix for remoting, SQL Server, both have the same brand PIM and they both have a strong online presence. One uses Episerver, the other uses Sitecore. I’m tech lead in these projects and I coach two of my colleges, rookies, by using peer programming and code reviews and just by straight up lecturing them, sometimes both arrogantly and with a temper, on naming conventions and object orientation and stacks and heaps and such. A couple of hours each day I sit on my own chair at my own desk and code, you know, implementing requirements, doing the things the customer wants us to do, the acctual work. I love those couple of hours.
The context-switching between the two projects is driving me insane. Credentials and machine names and what kind of CMS’s they run and what type of integration we are doing and dead lines and priorities and functional and non-functional requirements and the way I’m supposed to speak to this company’s CTO (the jerk) and how I best approach the key player from the other company.
The context-switching needed in the acctual work, the coding bit, is enough for me to handle, mostly. I mean, there are times when my brain has just had enough and, well, for me, I can only do so many switches per day. When those are spent, then I’m as useful to the project as a houseplant would be, even less. I mean, a plant can be quite nice to be around. That is why I’d rather shop for groceries online or do something that requires zero effort, while I wait for a database backup to become compressed and then downloaded from the production server of customer #1 instead of jumping on the next task from customer #2.
Being a sys dev is such a weird game. Backup this, wait 1-50 minutes, download that, wait, compress this, wait, compile that, wait for green test lights, push. So you fill up the gaps with google google google google google *, scan scan scan scan, read read read read read, ah, THERE’S the solution, produce one LoC, not downloaded yet wtf, what can I do what can I do what can I do, ok: HN, here I am again (did you miss me).
I once though I wanted to become an air-traffic controller because I think those guys are bad-ass, always have. The training you would need to go through and the determination and dicipline you would need, and the minds they have, highly intelligent persons I would say, well I have a romantic view of that occupation, that’s for sure. Imagine them, sitting in front of their monitors, alt-tabbing between the view of the airplanes and windows of Visual Studio and SQL Server Management Studio and Sublime Text and Chrome, and CTRL-tabbing between tabs of HN, SO, you favorite online grocery store and your favorite news site, because they know they have at least 40-70 seconds to kill before a new dot will appear within the circle of their responsibilities. Episerver and Sitecore are not people and even though they are hosted in the cloud they are not in an airplane **, but CTO #2, he’s sort of a person, so perhaps you can still relate when I say that I often feel like an air-traffic controller, or a juggler.
Am I supposed to like this arrangement? I don’t think anyone is asking too much of me. Well, I suppose if my team was larger and more experienced things would become much easier for good old me, but we’re a startup in a crowded market place. And maybe if I didn’t have such a big mouth and oversized confidence in my abilities and perhaps if I stopped striving to be or become the king of sys devs, the be-all-end-all Dev Master Of the Universe I wouldn’t be in these situations because then they would probably hire more people (maybe?). The truth is that if I could choose I would be in a work place where I’m the trainee and you guys, you smart, brilliant people, are the coaches. That’d be much nicer. I would always show a great interest in my work, just as you do, because I know you’ll get frustrated with me if I don’t.
I’m not sure who brought on the ninja mentality, we or the people who hire us. I don’t think it’s doing me any good at the moment. Maybe I should just go to work for eight hours a day and then go home and just do that, repeatedly for twenty years and not worry about it.
Do others feel this way? How do you cope? What other occupations are like this? I imagine being a surgeon, working on a heart transplant, and that the surgeon’s perception is not that there are lots of context-switching taking place, even though there might be, I have no idea, because this person is deeply in the zone. An air-traffic controller I imagine enters the zone at least once or twice a day, or maybe that job requires you to be in the zone constantly, kind of like Roger Federer when he’s at work? I sometimes find myself in the zone and a voice far, far back in my head is cheering “Yay, finally in the zone” and I feel great, a rush, I feel smarter that I usually do and I produce quite good stuff during these moments.
To me, context-switching is the zone’s antidote.
* Don’t think I’ve ever used the stackoverflow site search. Why would you? It would be like using Bing to search the internet. Why would you do that?
** Wow, I’ve mentioned these two systems twice now, like this is some sort if subliminal marketing message, which it is not, those systems SUCK, seriously, they do, but board members seem to like them, so, there we go.