The Best Programmers Eat Their Applications

September 27th, 2007 : David Carnes

I have a theory.

A web application will be at least 100% better if the developers who create it also actively use it.

It is akin to a meal prepared by an expert chef. The best chefs constantly sample their creations as they prepare a meal. When it is ready, they’ll serve it to their patrons and then sit down themselves to enjoy what they have lovingly created.

Like a chef, expert developers need to actively sample (test and use) their software while working on it, then sit down and consume their own code as a user would.

QA provided by testing experts definitely has its place - but I fear that sometimes developers (even good ones) miss significant opportunities to write better applications because they rely too heavily on testers / users to catch bugs and provide interface feedback. This reliance costs time - but even more significantly, we lose opportunities to improve the user experience because those who know how to change the code don’t take the time to actively engage and use the application. This lost opportunity for creative improvement could be avoided if developers spent an hour actively using the application for every 10 hours spent coding.

When I say using - I don’t mean quick tests, scripted testing, a little demo or anything like that - I mean actively using the application like their users will have to. I’m talking really, really use it and engage. A good chef will sit down and eat the meals he prepares - from that he draws inspiration for improvement. Programmers who consume the applications they write will create better software - hands down.

Tags:

What I listen to while I write code

September 11th, 2007 : Austin Smith

I couldn’t think of anything else to post, so I decided to put up a brief synopsis of my current musical adventures, especially what I listen to while I program.

  1. The Knife. These guys are great; sort of electronic with fast beats. I listen to them when I really just need to focus, even if I’m having a bad day. I’ve never written any great code with them playing, but what they do for me is allow me to write code even when I really don’t want to.
  2. The Hold Steady. I can’t listen to most of their stuff except in full album format, and I never listen to them just to get motivated. I reserve The Hold Steady for when I need to stay on a hot streak. I can listen to them on headphones, like The Knife, so they’re good for a midday streak often.
  3. The Decembrists. I have all their stuff on my computer, and I’ve written a lot of my best stuff to their erudite lyrics and catchy melodies.
  4. Radiohead. An old standby for writing great code. My very best coding sessions have involved listening to everyting they’ve ever done, in chronological order–it’s what I put on when I know I’m hot and I want to stay that way for the next 12 hours…
  5. Dave Matthews Band. Not many programmers I know of are down with DMB, oddly, and I can’t listen to them for really hard concentration, but for basic bug fixing, they’re alright.
  6. Mayaflyer. I like to start and end every day with Mayaflyer. They’re the only reason I’ve ever produced a worthwhile line of code, ever.
  7. Wilco. Unbelievable for sustained periods of productivity. I can code for hours, especially with “A Ghost is Born.”
  8. Just about anything from Schubert onwards, chronologically. I code really well to Shostakovich symphonies, Brahms concertos and sonatas, and Menotti’s operas. Also Philip Glass. If you’re a programmer reading this, try some Glass, especially the album of the Brazilian group playing his stuff, it’ll blow your mind.
  9. TV on the Radio, The Strokes, The Libertines, The Yeah Yeah Yeahs, Velvet Revolver, Portishead, Interpol, We are Scientists… see Radiohead.

Oh, and as for what I’m reading right now, I’ll admit without embarrassment that I’m progressing through the Harry Potter series in order; I’m on book four and loving every second of it.

Tags:

on productivity

September 6th, 2007 : Austin Smith

Ever since I got my iPhone, I’ve been drawn more frequently to YouTube, that glorious time suck. I suppose it’s because YouTube is now even easier for me to abuse than ever before, but the fact remains. I saw an interesting one over the weekend, the “hipster PDA” which is an organizational tool consisting of note cards, a pencil, and an alligator clip. The “hipster PDA shuffle” is the same, but with an iPod shuffle instead of the alligator clip (funny, right?)

Also over this last weekend I had a programming spurt of unprecedented effectiveness and productivity. All this, plus the normal course of my reading has led me think a lot harder about why I work the way I do, which is to say, why do I have such great and productive 60 hour spurts which last a few days and then return to normal efficiency? Or more importantly, how do I change my ways so my output doesn’t drop but the schedule is more predictable?

I’d like to think that I started to answer this question for myself over the weekend. See, my biggest problem is that when I hit a brick wall in the course of writing code, invariably I end up watching YouTube for three hours (if I’m good at programming I’m much better at watching YouTube). So this weekend, when the urge to watch the ‘tube hit, I managed to drag myself out of my chair and into the conference room, away from any computer, and refocus on planning and architecture. It worked amazingly. I did about two weeks worth of work in three days.
Anyways, working at the office with other people, I can’t always go to the conference room or pace the floor with my music blasting, so I’m going to need to find a more social method of working. Ideas?

Oh, by the way, I wrote this post from my iPhone.

Tags:

Keep Your Computer Desktop Clean, Composed, and Cool

June 20th, 2007 : Nicholas Longtin

My Sweet Desktop

Having a cluttered desktop doesn’t just look unattractive, it seriously hampers your productivity. It always starts the same way: You receive an important email attachment and you think, “Hey, I’ll put this on my desktop so I can find it easily” or “I need to use this file right away–I will drop it on my desktop and file it away later.”

Twenty attachments, downloads, and new files later, your desktop is like a pig on roller skates: unwieldy and bloated. But don’t fear gentle readers, I have five tips to help you reclaim this valuable real estate and impress anyone who happens to glance at your screen.

Tip #1 - Pick A Nice Desktop Background
If you have a great image on your desktop, one that you actually want to look at, it provides a bit of subtle, subconscious motivation not to cover it up with file icons.
Read the rest of this entry »

Tags:

Browse, Click, Edit - Fast and Easy Site Updates

June 7th, 2007 : David Carnes

I’ve posted a little snippet of Austin demo-ing ArcSite. ArcSite enables our clients to browse to any page on their web site, click a button and edit text, images and links. It is infinitely customizable and will work in any design.

Tags:

Offshoring and Arbitrage

May 18th, 2007 : Austin Smith

About six weeks ago, ArcStone discontinued its practice of offshoring indefinitely. Since then, I’ve been doing a fair amount of research into the advantages and disadvantages of outsourcing. It’s become clear that a rational examination of this problem cannot occur by examining outsourcing and offshoring without considering the larger economic context. Read the rest of this entry »

Tags:

Demand Productivity

April 28th, 2007 : Austin Smith

A common thread from everything I’ve been reading and thinking about lately is that an effective worker or firm (any type) must constantly seek new ways to maintain and improve productivity. I’ve been on a non-stop mission to drive up my own person efficiency for about a month now, and just by taking five minutes a day to really think about it, I’ve made remarkable strides, though I know I have a long way to go.

I realized that since getting my MacBook Pro, it’s the only computer I use at home and at work. But I have two great computers at home too–a Windows box and a CentOS Linux box each running 2+ GHZ and 1+ GB Ram. They were going to waste! So I hauled them into the office and stuck them under my desk, plugged them into my previously empty KVM switch, and now I have a lab server (Linux) which mirrors our development and production servers to speed update times and allow for easy collaboration with others in the office and a Windows box which I’ll use for testing.

For any computer worker who has a strong desire to be more productive at their job, I have one small tip–invest some time and money (if need be) in learning to type faster. I’ve seen a hundred programmers who can’t go more than 40 or 50 WPM. It’s what we do at least 40 hours per week… so why not take the time to learn to do it exactly right?

Tags:

Always Count Something

April 18th, 2007 : Austin Smith

I just finished a great book, “Better” by Atul Gawande, a surgeon, scientist, and writer. A primary message, applicable outside of the world of medicine, is that we should always be counting something, even if it’s just to see if there’s a reason to be counting. I have decided that I’m going to count the hours of sleep I get in a night versus the time of the 50th line of code I write the next day and the amount of truly productive time I spend at work. Why the 50th? It’s easy to get through 1. I could get through 1 just to allow myself to count it. To avoid externalities such as meetings, I will pause my clock whenever I could not for any reason be working on code.

I’m going to give this trial counting run a month and then I’ll examine my results for a direct correlation. I suspect that I’ll find one, and will thus be able to compute the minimum amount of sleep I need to be maximally productive.

Think that sounds hard to track? Guess again - I’m a software developer - the script is already written, and the results shall be tracked in a database.

“truly productive time” - I will gauge this myself to be total time spent “in the zone” doing maximally productive development work. Since I am also compelled to measure my billable time in our time tracking system, I think I will be able to derive some valuable measurements from this experiment whether there is a direct correlation between sleep.

One… one unproductive hour spent reading The Onion and harassing my coworkers! AH HA HA HA HA

Tags: