A star, in my book, is someone who gets the job done quickly, methodically, and maintainably. This is an old story, but I guess it has to be retold every few years, to inform newer developers and to remind older developers (and management).
The Number One Trait of a Great Developer
11–20 of 122 posts
Re: The Number One Trait of a Great Developer
#12The number one trait of a great developer is literally their ability to quickly write amazingly elegant code and manage complexity.
Re: The Number One Trait of a Great Developer
#13I never quite worked out what "rockstar" meant, but surely choosing new tech for the sake of it isn't it.
Re: The Number One Trait of a Great Developer
#14My point is not that her solution was not valuable, but that to suggest that the maintainability of the two solutions is black and white like this is wrongheaded.
The really unfortunate implication here is that learning new technologies is either something that shouldn't happen or something that shouldn't happen on the job. I'd say that something with these requirements would have been a perfect opportunity for Diane to, "learn postgres," if she felt that it would have been better. The extra day or two of effort would likely pay off – if not on this project, then on the next.
> but she also knew that anything much more complex would be beyond her current skills.
And with this mindset, her skills for the foreseeable future.
Re: The Number One Trait of a Great Developer
#15I had the pleasure of going on a course run by a German developer recently, and his brutal focus on quality and maintainability made me rethink what we class as a good developer. Brutally in the article Jack is not a rockstar - Jack is incompetent. A great developer solves complex problems in a way that is maintainable - the problem is that most problems aren't that complex. Dianne however didn't do anything that made her "great" - any developer who can't do the kind of engineering practices she did should be fired.
Hacking on something in your spare time is completely different, but as soon as you want to work on something that others will work on as well you need to be into that engineer mindset. It's one of the things that impresses me about Patrick McKenzie's writing, and his experience of learning that the hard way in Japan.
Re: The Number One Trait of a Great Developer
#16Maybe it's just because the post is out of date now (2011) but I'm not sure why "new technology", "rockstar" and "produces unmaintainable code" are all conflated together.
Because rockstar programmers tend to use the latest technology in bizarre ways which makes for unmaintainable code?
Re: The Number One Trait of a Great Developer
#17No, that's the number one trait of a great employee - and the sign of a leader. The number one trait of a great developer is literally their ability to quickly write amazingly elegant code and manage complexity.
"Writing elegant code and managing complexity" means using proven and familiar technologies (or spending enough time to know them inside out).
If I could upvote the post by 10, I would - so true.
Re: The Number One Trait of a Great Developer
#18Re: The Number One Trait of a Great Developer
#19Yes, yes, yes, and thrice more yes. We embrace complexity at our peril. Dullness is a virtue.
"Dullness is a virtue" It's not as simple as that though - it all depends on the context of the project. Sometimes it is perfectly OK to go crazy and use bleeding edge technology other times that would be daft - it all depends what you are trying to achieve mixed in, as the article says, with a heavy dose of judgement.
Re: The Number One Trait of a Great Developer
#20Yes, yes, yes, and thrice more yes. We embrace complexity at our peril. Dullness is a virtue.
This kind of creeping complexity isn't introduced by mavericks because it's fun. It arises because of a conservative tendency to never throw anything out, to avoid refactoring, to be afraid of changes and simplifications. And also because of simple incompetence in design. Special cases multiply, no fruitful abstractions are introduced, the team's language is confused.