Plunging into .NET Development

Weblog Pieter Gheysens
Microsoft .NET Development - C# - Enterprise Library - Visual Studio 2005 Team System - Compuware DevPartner - ...
 


Sunday, August 7

What makes a great developer?

This week-end I finally completed my non-technical list of which skills a great developer should have.

A great developer ...
  • knows his preferred programming language and the underlying framework inside and outside. He easily finds his way through all documentation documents.
  • is able to quickly switch to another (unknown) programming language. In fact a great developer views his skills outside the scope of programming languages and platforms, and applies the best solution.
  • doesn't immediately jump into coding. Planning how to do stuff is very important before writing a single line of code and can save a lot of precious time in the long run.
  • always recognizes his coding lines and is able to quickly re-live the situation when he produced the code.
  • writes quality code : compact, well organized, documented, self-explaining, simple and solid.
  • is very cautious while fixing bugs. Changing/fixing code may cause instability elsewhere in the application. A great developer relies on unit-testing.
  • knows all debugging tricks to find the ultimate bug.
  • knows all the tools that make him more productive. It starts with knowing when to use which tool.
  • knows his own limitations and isn't ashamed to ask/cry for help. Knowing who to ask for help is also a great skill. A great developer also shares code to discuss best development practices.
  • is not only active during "project hours". Trying out new tools/software is part of the job. A great developer never stops learning.
  • sticks to coding guidelines/standards (best practices) - no matter what situation he's in.
  • feels responsible for his own coding. Bugs are taken personally and all power is used to trace them and fix them.
  • fully understands the business logic and impact of the application he's developing.
  • is able to produce quality code under difficult circumstances.
  • makes precise judgments based on previous experiences. A great developer also meets deadlines and has excellent communication skills.
Any suggestions/remarks on this list are highly appreciated!

If you feel like you're a great developer ... You should work for us! Compuware Belgium is looking for new .NET talent and I'm looking forward to meet you!

3 Comments:

  • At 11:12 AM, Anonymous Anonymous said…

    so your perfect developer is in-human :-|

    how do you recognize your code when following coding-standards to the point? is not the point of having coding standard, writing code the same way as the rest of your team? + how to recognize your code after a few years? (as long as youre name is not in front of every line your write)

    how do you write compact code which is self-explaining and simple? sometimes it is better to write a few more lines... but where do your draw the line?
    some c(++)-dudes have some strange thing about doing the most on one line of code...

    last question; Debug.WriteLine(Pieter.Compare(GreatDeveloper).ToString());

    i think the most important part about being a developer is getting the job done (== writing && testing), within a reasonable time (!= dead line), with code that any-one of your team can read and change.
    all the rest is "nice to have"

    ps: don't take your bugs to personally ;-)

     
  • At 7:51 PM, Blogger Pieter said…

    The purpose of my post was not to set impossible targets for developers, but it should give a general overview of which skills a great developer "should" have. Theory and practice are not always easy to compare ...

    Recognizing code does not mean that you should remember each particular line of code you ever wrote, but your classes/methods should at least look familiar to you when you review them.

    Good remark about following coding guidelines but relying on strict coding guidelines does not imply that each developer in a team will produce exactly the same code blocks because many development tasks can be executed in various acceptable ways. Creativity can't be taken away from developers.

    Hosting a blog and discussing development topics is not the same as being a great developer. I'm aware of that and you won't see me yelling that I'm a great developer.

     
  • At 8:24 PM, Blogger Pseudo-intellectual lunatic said…

    nice blog
    realy cool

     

Post a Comment

<< Home