7 Virtues for Software Developers

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.

Print | posted @ Thursday, August 10, 2006 2:30 AM

Comments on this entry:

Gravatar # re: 7 Virtues for Software Developers
by Jeff Atwood at 8/10/2006 4:29 AM

I hereby revoke your clip art license.
  
Gravatar # re: 7 Virtues for Software Developers
by scott at 8/10/2006 4:53 AM

No, Jeff! Please! I promise I'll do better next time! Don't do this to me!
  
Gravatar # re: 7 Virtues for Software Developers
by Milan Negovan at 8/10/2006 3:16 PM

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. :)
  
Gravatar # re: 7 Virtues for Software Developers
by scott at 8/10/2006 3:35 PM

Looking at this today, Milan, I'd probably move those two to the top of the list.
  
Gravatar # re: 7 Virtues for Software Developers
by J$ at 8/11/2006 4:59 AM

Laziness, Impatience, and Hubris
  
Gravatar # re: 7 Virtues for Software Developers
by Milan Negovan at 8/11/2006 2:15 PM

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)
  
Gravatar # re: 7 Virtues for Software Developers
by James Higgs at 8/11/2006 2:35 PM

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
  
Gravatar # re: 7 Virtues for Software Developers
by Geoff Gigg at 8/11/2006 10:39 PM

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.
  
Gravatar # re: 7 Virtues for Software Developers
by scott at 8/12/2006 2:46 AM

Geoff: Certainly! I've worked with some people that will just let things slide through and never question them.
  
Gravatar # re: 7 Virtues for Software Developers
by Ralph at 8/15/2006 9:52 PM

The virtues of robots.
  

Your comment:

Title:
Name:
Email:
Website:
 
Italic Underline Blockquote Hyperlink
 
 
Please add 5 and 5 and type the answer here: