Founder at RethinkDB · Upvoted by , Master's and Bachelor's in Computer Science. and , I have a M.E. degree, built radar systems and massage chairs · Author has 70 answers and 394.4K answer views · 14y ·
It's difficult to pinpoint a single quality (or a small set of qualities) because there are so many different things that go into building great software. Very often evaluating engineers is an intuitive process - if you've worked with a great engineer once in your career, you'll know one when you see one. Usually great people exhibit many of the following qualities, but this is by no means a complete list:
- Talent. Some people get software design. Most people don't. The ones that do are naturals. They've been doing it since they were very young, they just understand problem solving, expressing solutions in quality code, debugging, large scale architecture design, etc. The best people I've met can produce incredible quantities of correct, well-designed code in a staggeringly short amount of time. Very, very few people can do that, and if they don't have innate feel for it very early on, it's extremely unlikely they'll ever develop it.
- Discipline. These days it's fashionable to talk about productivity, flow, etc., but great people spend 99% of their time doing useful work, and almost no time browsing the web or chatting on AIM. Everyone has ups and downs, but most people mistake lack of discipline for natural productivity fluctuations. There are millions of incredibly talented people that never see the light of day because they're lazy.
- Experience. Intelligence and talent are not enough - the space of potential mistakes in software development is enormous, and even the smartest people cannot work it all out on their own. Experience builds intuition, and great people make significantly fewer mistakes because they've seen them made before.
- Business-awareness. You can also call it product-awareness. Most engineers (especially the really talented ones) tend to waste a huge percentage of their time making improvements to things that won't make the slightest bit of difference in the grand scheme of things. Great engineers are aware of the fact the company exists for a purpose - they have a feel for what matters and what doesn't to the customers. They prioritize their time accordingly, and they can work for months without any direction and still produce useful work because they always understand what's the next most important thing to do for the company.
- Social-awareness. Really great people are capable of cooperating with, leading, mentoring, being led by, and being mentored by other people. They're not jerks. They're pleasant to be around, and they understand that proving someone wrong and convincing them that you're right are two completely different things.
If you find someone with three out of these five qualities, consider yourself very lucky. Someone who possesses all five is one in a million, and is easily worth a seven figure compensation many times over.
42.9K views ·
View upvotes
· 1 of 130 answers