Wednesday, January 25, 2012

Developer Joy

I've been thinking a lot about developer joy lately. Specifically, I've been thinking about ways I can increase it for the developers that I work with at Rent the Runway. While walking home today I realized that, while I might have general ideas for things to try to increase that joy, I haven't ever bothered thinking about what it actually IS. So I present a list of things that increase my own developer joy.

1. The opportunity to learn new tools and systems.
If I could have a list of projects worthy of the 3 major NoSQL styles out there (BigTable, Dynamo, Document Store), I would be in hog heaven.

2. Code bases that are easy to check out, compile, run tests on, and deploy.
I love code bases with "eclipse" targets that just make it go.

3. 3+ hour chunks of time devoted to coding.
You know you're getting too close to being a manager when you have to start hard blocking your calendar if you ever want to get anything done.

4. Automated builds that are kept in good shape.
It's a matter of respect for your code and your teammates.

5. Having a team to brainstorm with.
Bouncing ideas off of others almost always hardens them into fighting shape fastest.

6. Source code for all my libraries at my fingertips.
Nothing frustrates me more than being unable to see what the code I'm calling is actually doing.

7. The time to deliver a quality product.
I like to feel pride in my work, and delivering something that works and works well is integral in that pride

I'm sure I'm missing a ton of things, and my list is probably different from your list. Please tell me what I'm missing! Leave a comment or hit me up on twitter.

Edit 2/1: What did I miss? My favorite submissions include:
Being able to point to work done, even on the backend (@lucasjosh)
The ability to get hardware when you need it! (@abeppu)
Opportunities to showcase work outside of the company via public speaking, blogging, and contributing to open-source. (@dblockdotorg)
And this very eloquent comment from my long-time mentor, Mike, on my G+:
" Remember there's the joy of stylistic expression in code. After the architecture white-boarding, after the design arguments (if there were any), then it's you and your editor (and your 3+ available hours to code) - and the joy of just saying it in code. Saying it well has always been so important to me."

4 comments:

  1. You know, I agree with all of these except #1. There's nothing I like less than having to learn about a new tool. I would be happy writing Perl scripts, or manually entering Java getters and setters, forever if the other 6 were met.

    Well, as long as I have Guice, that is.

    ReplyDelete
  2. Totally agree with your list. Here's a few of mine:

    1. A nice code review system, well even the existence of code reviews.
    2. Good collection libraries (I sill miss them).
    3. The tech talk that makes you want to use the API right away.
    4. Awesome, smart coworkers.

    6. is so spot on. I can't tell you how much code search helps.

    ReplyDelete
  3. Opportunities to showcase work outside of the company via public speaking, blogging, and contributing to open-source.

    ReplyDelete
  4. Numbers 2 and 6 would be my numbers 1 and 2 (I mean is it really necessary to distribute src as a separate jar anymore?).

    I would also add having easy access to an SA resource to the list. I feel like they get over-tasked a lot, but SAs can be super-handy to a hard-charging app dev. Can we all just agree to hire more of them in general? kthx.

    ReplyDelete