7 Virtues for Software Developers

Thursday, August 10, 2006
The Perfect Programmer

Diligence - Diligent developers take ownership of their work without being possessive. Diligent programmers fix broken windows.

Humility - Humble developers take pride in their code, but don’t snub constructive criticism. Humble developers know they can always improve themselves.

Patience - Patient developers remain calm during times of stress, and don't surrender to the temptations of a quick fix. Patient developers have the endurance to carry a product across the finish line.

Liberality - Broad-minded developers base their decisions on proofs and particulars instead of preconceptions and prejudices. Broad-minded developers listen to the other side and attempt understanding.

Creativeness - Creative developers find a way around the brick wall in front of them, and do so without creating a mess. Creative developers find the elegant solution to a difficult problem.

Adaptability - Adaptable developers have the ability and willingness to learn new skills and accept new responsibilities. Adaptable developers continue to grow.

Resilience - Resilient developers bounce back from boneheaded bugs and bursting dotcom bubbles to code again another day. Resilient developers appreciate failure as the upward slope of the learning curve.

Eric Gunnerson's "Seven Deadly Sins of Programming" (and others) inspired this post.

I still have to work on 6 or 7 of these.


Comments
Jeff Atwood Thursday, August 10, 2006
I hereby revoke your clip art license.
scott Thursday, August 10, 2006
No, Jeff! Please! I promise I'll do better next time! Don't do this to me!
Milan Negovan Thursday, August 10, 2006
Adaptability is a big one, IMHO. Darwin is often misquoted as having said that the strongest survive. Incorrect: he said the most adaptable survive.

Also, in my book, "Resilience" is called "The rule of an iron ass" meaning it takes an ass made of iron to sit through a long, painful debugging saga. :)
scott Thursday, August 10, 2006
Looking at this today, Milan, I'd probably move those two to the top of the list.
J$ Friday, August 11, 2006
Milan Negovan Friday, August 11, 2006
Scott, I found one more for you at Martin Fowler's blog. He calls this quality (or virtue, if you will) "Customer affinity" (martinfowler.com/bliki/CustomerAffinity.html)
James Higgs Friday, August 11, 2006
Great advice Scott. You inspired me to post about some work/life balance stuff I've been thinking about for a while. http://staff.interesource.com/james/aug06/sane.htm
Geoff Gigg Friday, August 11, 2006
How about curiosity? A good developer is curious about their assignment and their tools. They want to know how (and why) the user does what they do. They want to get to the bottom of things and know the REAL answer. How exactly does that feature work? Let's test it out! Besides, curiousity makes for more enjoyment. You aren't doing things just to get the job done. Getting there should be fun.
scott Saturday, August 12, 2006
Geoff: Certainly! I've worked with some people that will just let things slide through and never question them.
Ralph Tuesday, August 15, 2006
The virtues of robots.
Comments are now closed.
by K. Scott Allen K.Scott Allen
My Pluralsight Courses
The Podcast!