{"id":388,"date":"2011-12-08T21:09:26","date_gmt":"2011-12-09T01:09:26","guid":{"rendered":"http:\/\/www.peteonsoftware.com\/?p=388"},"modified":"2011-12-12T18:51:06","modified_gmt":"2011-12-12T22:51:06","slug":"the-number-one-trait-of-a-great-developer","status":"publish","type":"post","link":"https:\/\/www.peteonsoftware.com\/index.php\/2011\/12\/08\/the-number-one-trait-of-a-great-developer\/","title":{"rendered":"The Number One Trait of a Great Developer"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/peteonsoftware.com\/images\/201112\/Judgement.jpg\" alt=\"Judgement\" title=\"Judgement\" style=\"border:none; padding: .5em; float:left;\" \/>After reading <a href=\"http:\/\/www.engineyard.com\/blog\/2011\/the-number-one-trait-of-a-great-developer\/\">this article<\/a> that I saw on Hacker News some time ago, it really got me thinking.  The gist of the post is that &#8220;Great Judgement&#8221; is the number one trait of a great developer.<\/p>\n<p>There are a lot of developers who only want to do the &#8220;latest and greatest&#8221; thing.  They practice what I like to refer to as RDD, which stands for Resume Driven Development.  Every project is just a way to make their resume that much more enviable.  It is even a little hard to fault these people at first blush because in the IT industry, if you aren&#8217;t pressing your skills forward, you are quickly becoming irrelevant.  However, sometimes developers forget that they are being paid to deliver a solution for a client or employer.  The client&#8217;s needs should always come first.<\/p>\n<p>Are you doing work for a PHP and MySql shop?  Could Ruby or Node or Cassandra help them solve their problem?  Sure, but their existing code is in PHP, their on-staff developers know PHP, and finding PHP developers to hire is easier than finding a good developer who knows Node or Cassandra.  You may very well be doing them a huge disservice by building them a &#8220;blazing fast web scale&#8221; solution.<\/p>\n<p>That&#8217;s where Great Judgement comes in.  New technologies may offer benefits, but there are always trade-offs in technology.  The first is your own knowledge.  If you are very familiar with C# and .Net and don&#8217;t know Ruby, but you try to put together a Ruby on Rails solution for a client that isn&#8217;t mandating Ruby, you are very likely going to cost them time and money while you deliver more slowly, let alone any mistakes you are sure to make or hard-to-maintain patterns you might leave behind because of your inexperience.<\/p>\n<p>The second trade-off is the number of available developers to maintain and build upon your code.  The system may really hum when you write it in <a href=\"http:\/\/en.wikipedia.org\/wiki\/Brainfuck\">Brainf*ck<\/a>, but you just pretty much made sure that there are maybe 30 people in the world who could help that company maintain or grow it.  Larger companies aren&#8217;t as susceptible to this as smaller companies because they usually have rigid standards in place, but the &#8220;market&#8221; for your code &#8211; be it the language, the framework, or even your patterns &#8211; should be at the forefront of your mind as you plan.<\/p>\n<p>The third trade-off is not to over-engineer.  Some developers want to create a highly robust and scalable system with a caching layer, failover clusters, and load balancing for every one of their solutions.  They want a pluggable architecture and a side of fries with that.  The problem is that they are making a small inventory application for the secretary to maintain her office supply levels for a staff of 9.  Sad to say, but a simple Access database that would take an hour of your time to create may be all that they need.  <\/p>\n<p>I haven&#8217;t thought enough to actually assign Great Judgement as the number <strong><em>ONE<\/em><\/strong> trait of a great developer, but I definitely have to agree with the author, Tammer Saleh, on many of his points.  If Great Judgement isn&#8217;t number one, it is certainly in the team picture.  If you use Great Judgement, you are a long way to delivering valuable solutions to your clients and that may improve your resume way more than buzzwords.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After reading this article that I saw on Hacker News some time ago, it really got me thinking. The gist of the post is that &#8220;Great Judgement&#8221; is the number one trait of a great &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60,44,24],"tags":[117,107,92],"class_list":["post-388","post","type-post","status-publish","format-standard","hentry","category-craftmanship","category-mentoring","category-rant","tag-craftmanship","tag-mentoring","tag-rant"],"_links":{"self":[{"href":"https:\/\/www.peteonsoftware.com\/index.php\/wp-json\/wp\/v2\/posts\/388","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.peteonsoftware.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.peteonsoftware.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.peteonsoftware.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.peteonsoftware.com\/index.php\/wp-json\/wp\/v2\/comments?post=388"}],"version-history":[{"count":0,"href":"https:\/\/www.peteonsoftware.com\/index.php\/wp-json\/wp\/v2\/posts\/388\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.peteonsoftware.com\/index.php\/wp-json\/wp\/v2\/media?parent=388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.peteonsoftware.com\/index.php\/wp-json\/wp\/v2\/categories?post=388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.peteonsoftware.com\/index.php\/wp-json\/wp\/v2\/tags?post=388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}