Showing posts with label neal ford. Show all posts
Showing posts with label neal ford. Show all posts

Monday, February 16, 2009

Code Freeze 2009

I just noticed this in my drafts. I started writing up some details around Code Freeze, and then just left it sitting there. For some reason, I thought I had posted it. I'm only posting it now so it gets indexed and I don't forget the books/links I was interseted in from the conference...

Last week, on a day so cold we stayed in the sun while walking to lunch to avoid sticking to the sidewalk, a number of us from work attended the University of Minnesota Code Freeze 2009. In the past there have been a few coworkers there, but this year there was a complete contingent, including two coworkers who were coordinating the conference, folks from my department, folks from Findlaw, alumni of Findlaw, a folk from TTA, and others from the content area.

I've been to two other Code Freeze events in the past and the scope of the topic is generally pretty broad "Innovation" in 2008 (with a lot of Agile talk), "Global Systems, Global Development" in 2007 (with a lot of offshoring talk), and "Maximizing Developer Value" this year (a mix of how not to get interrupted, agile, estimating, testing and the odd other topic).

Neal Ford spoke on "On the Lam From the Furniture Police". I thought he was by far the most interesting speaker and his presentation was enjoyable with a good sense of humor and specifics about how to avoid "context-switching" as a developer, that problem we've all had that we just get going on code when someone drops by to talk about something completely unrelated. It's not just a developer problem. It happens to everyone. It even happens to managers, as I can attest in my recent role trying to coordinate two distinct workstreams that kept stepping on each other. When I worked with our large, priorprietary database, I worked with a dozen partners at once and seldom had issues with flipping from project to project (to project to project) even within the same few minutes. However, when I was doing the role of a data analyst and my standard role earlier in that job, when I had much less work overall, switching between the two roles often threw me for ten or fifteen minutes each time I moved from one to the other. It's interesting that context switching can be context specific.

Ford also talked about the value in engaging both sides of your brain, the logical and the holistic (intuitive, call it what you will - the side that says "aha" about problems). He then related this back to context switching by pointing out that it took a lot of work to get your right side engaged while coding, and context switching was death to your aha moments.

So what does Mr. Ford offer as ways to reduce context switching and engage right brain thinking? Toys - provide some little toys and brain teasers so that the left side of the brain is engaged in a repetative activity allowing the right side to override the noise. Get rid of "pin prick" distractions. Turn off your notifications. Use a tool like Tweak UI to turn off balloon tips. Employ a screen dimmer like Jedi Concentrate that ensures the window you're working with garners your attention. Use tools to track relationships like an external brain (he called it an exo-cortex): a notebook, Personal Brain (perhaps useful for writing a novel as well), Larry's Any Text File Plugin (in conjunction with Google Search), and using Rooted Views.

Use automation and continous integration to cut down on unnecessary distractions from your own code. Use virtual desktops to mimic how you would lay out papers on a larger desk. Have walking meetings. Exercise. Take a nap at 3:30 each day. Don't work in a cube. Avoid sitting where the noise is heterogenous instead of homogenous. I see this last one in effect at work almost every day. We have developers who work on a particular type of project and they seem very capable of flipping between those projects and avoiding the context switching associated with many projects, although we have initiatives to try and ensure that any one person is on a minimal number of projects for that reason. However, in the same area are developers who are on completely different types of work, whose day-to-day worries are more along the troubleshooting line, tackling a problem of the day, or a tricky hardware issue. When they meet to discuss the issue of the day, it can suddenly engulf everyone nearby, even developers from other areas who can't avoid the heterogenous noise.



Books mentioned:
Andy Hunt: Refactoring Your Wetware
Pragmatic Thinking and Learning
Peopleware: Productive Projects and Teams
Raston - Human Interface (locus of attention)
Flow: The Psychology of Optimal Experience
The Productive Programmer

Nate Schutta - Hacking Your Brain for Fun and Profit
Nate was the second presenter, and the only other one I want to talk about. Susan Standiford, Andy Miller, Tomo Lennox and Luke Francl were interesting, but they weren't on topic with anything that resonnated with me. Nate continued Neal's presentation in some respects, focusing on what there was in the brain of a developer that lent itself toward productivity. He focused on some of the physiological effects of not sleeping enough, not getting enough exercise, email apnea, and continuous partial attention. He offered up solutions such as no-meeting Fridays, f-off flags (in use at TR in a few places), and a zero inbox. All great ideas. While talking about the importance of sleep, he referenced these amusing videos of Peter Tripp staying awake for 8 days.

Part I - http://www.youtube.com/watch?v=mXrANL9aqz8
Part II - http://www.youtube.com/watch?v=2R8jNJFFzS0&feature=related

Books mentioned:
Brain Rules
A Whole New Mind
Mind Hacks
Your Brain: The Missing Manual
Lifehacker (GTD)
Getting Things Done
Pragmatic Thinking and Learning
43 Folders (web site)

Sunday, January 18, 2009

Facebook Reflections

I've been reading this article by Time.com, "Does Facebook Replace Face Time, Or Enhance It?" It's an intriguing question (there are a bunch of related articles at the bottom around Facebook as well). In the spirit of my recent discussion about Wordle and Technorati, the article seemed a motivator to talk about other services I use. Over the last few months I've seen some of my blogger friends move to Facebook (with a decrease in activity or cessation of their blog, or a bit of cross posting), or take up a semblance of online communication again via Facebook since their blog lapsed into disuse (at Code Freeze last week, Neal Ford made a point of pruning those dead feeds in order to eliminate a source of distraction). Other friends and family, who would never have blogged, have found a home on Facebook, poking, updating their status, and posting the odd set of photos. I update my Facebook status once in a while, or throw a link at a friend who might appreciate it, but I find myself using the service as more of what the article refers to as a "self-updating address book", one that ties together people I know from my past (high school) and people I know now (work). Usually it's not something along the lines of this quote:

"Jenny and I, along with three of our childhood pals from Saratoga Springs, N.Y., learned that a dear old friend had ended her seven-year relationship through a Facebook status change. We expressed dismay, albeit through Facebook's IM feature, that we had to learn such potent information in this impersonal way."

I'm not saying that they're right and the friend should have let them know in person. Quite the opposite. If you can't come to terms with remote communication as a norm, or at least the norm as a catalyst for most communication, you're not making the leap to the digital culture and it's too bad your children will one day have to listen to your diatribes about how in the good old days you saw everyone face to face and now everything is bad and, by the way, what should you do with the sea shells? I did learn about a friend's divorce via Facebook when she changed her status. And I'm guilty of letting people know I was in the hospital with an infection via Facebook, although primarily because of the immediacy of Facebook over blogging and because the interface to Facebook via my PDA is much cleaner and easier to access when you're falling asleep too fast to type anything substantial. I imagine Twitter would have sufficed just as well if my friends were Twitterites. The full story of something as personal as surgery, or divorce (only if Pooteewheet never throws away the Discovery Channel defective rock polisher she's hidden in the house, which I prefer to call by the appropriate title "trash"), generally follows on my blog, which sees 1/30th of the "friends" I have on Facebook.

I think the difference for me between the two is that my blog has been for me, while Facebook is not. If I'm updating my status on Facebook, it's an announcement to the effect, "Hey, I'm alive and you can find me if you're looking for me." If I update my blog, it's because I'm thinking about something, want to work out something I haven't quite formulated in my head, want to record something for my future use, or want to record something for Eryn to read some day. Only secondly is it a place to share information with others, although I make the effort to record details around processes and experiences I think are helpful in a wider context, like packing on RAGBRAI, doing a Biztalk install or n-depth updategram, and fixing the green screen if streaming Netflix. Because I record so much out there, it is a good update for what me and my family are up to and how I'm feeling, something I can't capture in a Facebook status blurb. I rationalize away the need for a Christmas letter because of my blog. If you're a Facebook friend, you don't need a Christmas update because you and I probably don't see each other facetime wise at all. If you read my blog, you don't need one because you know what I've been up to for the last six years, no doubt in more detail than you're comfortable with when bumping into me.

Because of that, I don't run into this issue, "but stays logged on to Facebook all day at work, and then spends an hour or two, or lately three, at night checking in with old acquaintances, swapping photos with close friends, instant messaging those who fall somewhere in between." I devote a little bit of time to my blog and trust that the next time I have facetime with whoever reads it, we'll have a good place to start a conversation. Facebook feels more like sending thank you notes, and if I post something non-flippant I have to individually IM and comment to everyone who thinks it's interesting. The idea of doing that at work, where the context switching interrupts trying to think about mainframe migrations, is enough to keep me from ever being a Facebook regular.

Over the years, I've been asked several times, "Where do you get the time to blog? I could never find enought time to write something almost every day." Blogging is easy. Thirty minutes max for most posts, it's focused, and I can practice some writing skills I need to bring to other efforts. If you add up Facebook time, status updates, poking, VW bug and jail escapes, and hopping between IM-ing and responding to a few comments, it can easily chew up considerably more time for less mental gain, although it may seem like less if you can coordinate it on your PDA in the minutes on the bus, at the doctor, or walking between meetings.

I should finish with an answer to the initial question. Facebook doesn't replace face time. It enhances it. It's a way to keep in touch and now and then generate enough of a poke to give people an insight into when they should be contacting you in person to see how you're doing, or to catch up with you when you're in the neighborhood despite time having moved you far apart, or as a gentle reminder that you should be getting together because their kids seem older than the last time you saw them. If it reduces face time at all, it's with your family when you're busy facebooking instead of spending time together, and then it's just one of a number of equivalent distractions, not a sole culprit.