From ReadWriteWeb, “Top 10 Traits of a Rockstar Software Engineer.”
See the full post for the details of each point.
- Loves To Code
- Gets Things Done
- Continuously Refactors Code
- Uses Design Patterns
- Writes Tests
- Leverages Existing Code
- Focuses on Usability
- Writes Maintainable Code
- Can Code in Any Language
- Knows Basic Computer Science
What do you think about this list — does this list represent a rock star software engineer? I personally think the list is too slanted on “Agile” practices. What works for a web application software provider may not work well for an ISV or an enterprise developer in all cases.
I would have expected some mention of one of the classic books of software development to be mentioned, Code Complete: A Practical Handbook of Software Construction by Steve McConnell.
Maybe the biggest issue I have with the list is that even if I checked all of these off while interviewing someone, I don’t know that I’d hire them. There are a few things I’d add for a developer to be a rock star. The following are a few ideas.
- Certainly, I look for “passion” or “energy” when interviewing. You can love to code – but will you love coding what I need you to code? Will you believe in the project or application? Will it excite you?
- Do you work well on a team? Individuality is important, but being a great peer is an important trait to have. Maybe the best way I could think about this is: even rock stars need a band (or at least a supporting crew). Having a good team behind the “rockstar” is just as important as having the rockstar … actually, maybe more important! So, don’t leave the band out of the rock star.
- Do you understand the platform you’ll be working on? How well can you learn it? It’s not about a programming language or knowing basic computer science … if you don’t know how the system works (ticks), are you going to be as effective as the engineer who does (I doubt it).
- Can you communicate well — in whatever form is necessary? It’s not about the language so much as your ability to communicate ideas, problems, solutions, etc. well to others. I’m not suggesting you need to do a presentation to a Board of Directors or 500 people at the next conference … just to your coworkers, one on one, etc.
What would you add?