Friday, June 13, 2008

Uncommon Common Sense Promotions

What is the basis for promotions and pay evaluations?

An intelligent person should be able to figure that out either via instinct or through careful thought and planning. However, I was surprised by my written list of things answering the question: What have you done outside your role to help the company as a whole? to demonstrate the core values of the company? Its not something I'd stop and think about voluntarily but is advice I'd offer to a younger me. Luckily, my instinct for taking on as much as I possibly can lends itself well toward the appearance (with evidence) that I am proactive within my company.

Examples include:
1) Volunteer Work
2) Increased Ownership of Company
3) Training
4) Recruiting
5) Acting as a subject matter expert
6) Participating in communities of practice

I think a wise thing to do would be to sit down each week and do this evaluation along side the evaluation for: How have I made my Boss's job easier this week?

Today's Word: Lethargy

Leth-arrrr-jee
Lether-jee

Its a fun word.

Programmer Insecurity

On reddit this morning there was a blog post on programmer insecurity.

It was an insightful one sided piece attacking the programmer with the common myth of emotional and social ineptitude. My rebuttal is from a programmer's perspective. I could have left comments that disappeared into the void in both locations but I felt that it was a weighty enough subject to merit discussion.

You'd never expect a musician, painter, or dancer to stop and present every note from the moment they started learning a piece, every brush stroke since they started a piece, or every dance session they worked. Its time consuming, interrupts the flow of creative thought, and opens unfinished thoughts/work to public criticism. The last aspect with code is that people will start using it immediately if you're followed in any way.

The dogma "Release Early, Release Often" doesn't mean commit code that doesn't compile. Sometimes, my branches don't compile and I know exactly why but my body just can't keep up with what my mind wants to create. Were I to follow the best practices and plan everything out, I'd lose a lot of the enjoyment and learning I get from playing with different ways of doing things. There may be a best way to do a certain method, but in my implementation I've coded a new way that could work better or could later be replaced to a call to the most efficient method meeting my criteria. Sometimes, its better to let things flow from the mind to the keyboard.

This post is an example of a free flow of thought. Writing is another system where we don't expect writers to show us every draft and keystroke. My post is not well structured or organized but it conveys what I want it to with the time I'm willing to commit to the act.

Hope all are well,

Dave