Live data from Hacker News

The Number One Trait of a Great Developer

engineyard.com

51–60 of 72 posts

Re: The Number One Trait of a Great Developer

#51
post #30

This post just listed traits very prominent in hackers - deep fascination for technology, perfectionism, need for deep focus and few distractions, concern for efficiency - and wrapped this package under the label of "lack of judgment". The problem I have with such generalization is that these scenarios are always a bit caricatural and are usually presented in a way that nicely fit the argument. The experimental devel…

When it comes to software engineering, I always think back to my first year Calculus teacher, Mike Lavender, and his admonishment that "in mathematics, power tools are consider inelegant where hand tools will do." Words to live by in programming and engineering.

So I'd go so far as to redefine elegance in software programming and engineering as "simplicity perfected." The simple fact is that where requirements change, a well engineered simple solution will usually turn out to be more agile than a heavily engineered, complex one (whether programmed with "agile" methodologies or not).

When one takes the idea of trying to perfect simplicity in the art of programming (and software engineering), it becomes easier to recognize foot-guns and inherent problems, and tradeoffs often become more conscious and controlled.

So while my view is slightly different from the article, it's difference is perhaps one of nuance rather than substance.

Re: The Number One Trait of a Great Developer

#52
post #30

This post just listed traits very prominent in hackers - deep fascination for technology, perfectionism, need for deep focus and few distractions, concern for efficiency - and wrapped this package under the label of "lack of judgment". The problem I have with such generalization is that these scenarios are always a bit caricatural and are usually presented in a way that nicely fit the argument. The experimental devel…

> Judgment is a nice trait for a good developer, but it is subjective. There are some hits and some misses.

I think you might have missed the point of the article: Good judgement is not subjective; it is about avoiding these "misses".

Re: The Number One Trait of a Great Developer

#53
Judgement is indeed an important part of being a great developer, but I don't think the article is doing a good job of explaining why, or what kind of judgement.

First of all, the story about Jack & Dianne doesn't illustrate much. Why Jack ended up with unmaintainable code and Dianne didn't? And what does it have to do with the tools they've chosen? You can write unmaintainable code in any language.

It sounds like Dianne did a better job of understanding requirements. Okay, fair enough, understanding requirements is important (though I wouldn't call it "judgement"). But requirements change. They always do, that's why software has to be maintained - to reflect changing requirements. Which means that whether the code is maintainable does not depend on the code per se - it depends on how requirements change (unless the code is so bad that it can't be changed at all).

Say, if tomorrow the new requirement is to add a new API to the backend, Dianne's solution is probably more maintainable because it's simpler. But if the new requirement is to scale to 10K users, Dianne's solution might have to be rewritten from scratch, and thus completely unmaintainable.

So, to write maintainable code developer has to anticipate future changes in requirements and make tradeoffs based on those predictions. Now, that's a hard problem, that's where we need judgement and experience. This kind of judgement makes a great developer - mere conservatism in selecting tools and technologies does not.

Re: The Number One Trait of a Great Developer

#54
post #30

This post just listed traits very prominent in hackers - deep fascination for technology, perfectionism, need for deep focus and few distractions, concern for efficiency - and wrapped this package under the label of "lack of judgment". The problem I have with such generalization is that these scenarios are always a bit caricatural and are usually presented in a way that nicely fit the argument. The experimental devel…

> Judgment is a nice trait for a good developer, but it is subjective. There are some hits and some misses. I think you might have missed the point of the article: Good judgement is not subjective; it is about avoiding these "misses".

Methinks you're confusing "good judgement" with clairvoyance.

Sure, you can anticipate change, but the decision for how much change you account for in your strategy still remains an educated guess.

Re: The Number One Trait of a Great Developer

#57
I think the fundamental problem exposed in the article is actually not the hiring criteria, but rather that resumes are usually screened by HR departments who have no clue about what a job entails. So the hiring managers have to provide hiring criteria that the HR resume screener can understand. The HR resume screener is not a programmer and has no way to judge the capabilities of programmers. The hiring manager may not be either.

As seen in a Slashdot sig some time ago, "Light travels faster than sound, which is why some people appear bright until you hear them speak." Unfortunately appearances win to those who cannot understand what is being said.

Re: The Number One Trait of a Great Developer

#58
The real fallacy in the article is an unstated assumption - that developers should be homogeneous. Why not have a "rockstar" Jack and a "sensible" Dianne, in dynamic tension? Teams of one are the exception. In multi-person teams, focusing on the same attribute not only misses an opportunity to hire developers who complement one another but often leads to outright conflict as multiple developers lay claim to the same decisions or assignments. The author's point is slightly more applicable to choosing a lead developer, where judgment is at even more of a premium and many people would make the mistake of promoting Jack over Dianne because of his higher profile, but even then I think the article does more harm than good.

Re: The Number One Trait of a Great Developer

#59
post #30

This post just listed traits very prominent in hackers - deep fascination for technology, perfectionism, need for deep focus and few distractions, concern for efficiency - and wrapped this package under the label of "lack of judgment". The problem I have with such generalization is that these scenarios are always a bit caricatural and are usually presented in a way that nicely fit the argument. The experimental devel…

I think the post could swap "developer" for "hacker" - where you seem to be switching "great" for "hacker".

I think what you are saying sort of agrees with the post. A bad hacker will make a mess, a great hacker exhibits judgement - and brings in new technologies because they are the right solution.

Indeed, the post says nothing about the great developers experience with Sinatra... perhaps it was what she always used. Or perhaps she knew a little about it, and realised it was the most effective tool to use (and therefore used it for the first time).

What the post is talking about is the bad rockstar hacker who doesn't ask the right questions (lacks judgement), trys to over engineer the solution (lacks judgement), uses new technologies for the sake of it (lacks judgement).

I can't embrace a definition of a great developer, where the primary quality is to avoid causing trouble for the company, the project, the team or their boss. That has almost nothing to do with the discipline. You're describing a "great employee" or a "great team player".

The post is talking about the aspects that make a great developer.. working in a company.

I think they are right; they need a developer with the judgement to find out what the company needs, build a solution with effective tools and who has the ability to iterate as the spec develops. All of that ties to having good judgement.

Not someone who gets all enthused with the latest tools and delivers a much more elaborate solution :)

From the perspective of hiring or contracting a new developer someone who doesn't cause trouble in that way is a good thing. Especially as what the post describes is someone who actively produces solutions instead!

Both of those people can push the envelope...

Re: The Number One Trait of a Great Developer

#60

Earlier quoted context omitted.

I'm not making a rhetorical argument. You should take me seriously. The article stereotypes "rock star" developers as being obsessed with using the latest tools and compares them to more "average developers" who (it is claimed) better know their limits and ship more maintainable products. I believe that this is a false dichotomy. There are plenty of "rock star" developers who ship maintainable products which use appr…

So, though it isn't entirely unambiguous, when I read the article closely I see that it agrees with you. Let me see if I can make this boring enough to understand. Let's draw a classic management-consulting two-by-two matrix: GENIUS-JUDGEMENT GENIUS+JUDGEMENT AVG-JUDGEMENT AVG + JUDGEMENT The author's argument is that the column on the right trumps the column on the left: Judgement is important, even if the genius-wi…

If clarity was one of the design goals, the author should have included the 2x2 matrix. Sometimes, the best opinions aren't those that corrects our wrongly-held beliefs, but those that don't create them, which is much more silent.
Post reply on HN