Tuesday, October 14, 2008

21 Days: Fighting Office Apnea

As I've mentioned, I'm working at StartPad in Pioneer Square. It's a great co-working space that's also helping out the startup community in other ways, such as having monthly talks of interest to startups and monthly office hours, where you can show up and get help from an expert. I'm holding User Experience office hours this Thursday from 2-6 (stop by if you need some advice).

I'm in an office with three other people and today is the first day where all four of us are here at the same time. This means that the office apnea index is particularly high today. If you haven't heard the term Office Apnea before, it's because I just made it up. Apnea literally means "not breathing," but most people who have heard the word have heard of it because of sleep apnea, a condition where people stop breathing periodically while they sleep. Many people occasionally stop breathing briefly while they sleep, but people with sleep apnea stop breathing over and over again throughout the night.

In many offices, including today at StartPad, we all stop working over and over again throughout our workday. Just like sleep apnea can prevent someone from getting a good night's sleep, office apnea can prevent someone from getting a good day's work. Today, somebody mentioned something about the new Apple laptops. Somebody else asked for help debugging. Another person offered some development tips that they'd just learned. I'm as much a contributor as anybody else, so I'm not complaining about my office mates. And all the information is useful. Even without office mates, there are things like Twitter to interrupt you. Each of these interruptions can result in yet another moment of "what was I working on?"

Interruptions aren't the only problem. Many of us tend to work on multiple projects over a long period of time. We're constantly asking ourselves questions like "What should I be doing?" or "What's my top priority?"

Groupthink can't hope to get rid of those questions. But I am hoping it can help with the answers.

P.S. The vote was 4-0 in favor of JSON over XML, plus my own vote which was also for JSON.


Derrick said...

Poorly informed on the subject, I would have voted for AJAX before a couple weeks ago because JSON ties your server layer to your view layer. You have to encode your data in a format that JavaScript understands. If you're only ever going to support web browsers, I guess it makes sense.

But a recent job interviewee (who got the job) educated me when I asked him to define the differences: he mentioned a few things, but then he said that JSON is more performant because it happens right in the JavaScript thread instead of requiring the browser to kick off its XML parsing engine.

Roy Leban said...

@Derrick: Nothing in using JSON precludes me from also providing XML for other purposes in the future. And, right now, there is only one client.

Performance isn't the reason for JSON and there are even arguments against using direct evaluation to parse it. JSON is simpler, smaller, and more closely maps to actual data structures that I'll have, including arbitrary levels. XML's complexity means that it supports certain features that I don't happen to need. There is an argument that I shouldn't be exposing my data structures, but (a) this is internal only, so it's not being exposed, and (b) there's no requirement that those data structures be the actual ones I used -- in all likelihood, they will map to actual data structures on the client (for convenience), but only temporary data structures on the server.

I have a Windows app that I've been developing in my spare time (none this month!) that uses XML as its data format. In that case, I want the data to be usable by other applications, and I see being able to use XSL with it as a benefit.

Post a Comment