Wednesday, September 06, 2006

What is a Great Developer

I have taken this completely from Eric Wise.

A great developer is a person who:

  1. Understands that different tools and languages excel at different tasks. They do not engage in "zealotry" choosing only one pattern or paradigm and jamming it into every problem situation.
  2. Understands that the goal of development is to produce "Working Software". Anything that distracts from working software should be shunned.
  3. Realizes that they will not be the only or last person to experience the code. Avoids unecessary complexity and comments where appropriate.
  4. Gets along with other developers. Realizes there are many solutions that can viably solve a problem and that their way is not always right or best. Is able to be a leader and take direction equally well.
  5. Gets along with end users. Is able to explain technical concepts in "layman terms". Over time, builds a trusting relationship with end users and becomes an advisor, not a dictator, for software requests. Makes every effort to learn the domain from the user perspective.
  6. Is intellectually honest. Does not over or underestimate deadlines, provides software in a timely fashion.
  7. Is always watchful. Constantly looks for ways to improve the day to day productivity and end user experience.
I thought that there could be some other things added. Here are my additions
3b. Documents the process to make it easier for others to understand.
7b. Is constantly learning new skills and techniques to use when appropriate.
8. Is available to listen, and offer suggestions when approached by other developers.
9. Is always available to others.

I believe that the great develop has great skills, but is also available as a mentor. Relationships with clients take time, but are equally important, always take an opportunity to improve your relationships with your clients.

No comments: