The Mythical Superprogrammer: Fact or Fiction?
From AgileOpenNorthwest
Contents |
The Mythological Super-Programmer: Fact or Fiction?
Participants:
Emerson – Software Engineering Researcher
Micah – CEO
Jon – Team Lead
Markus – Super programmer
Aaron – Product Development Manager
Related search phrases:
WTF per min
C2> grand master programmer
What makes a superprogrammer?
- 10x faster or more productive
- From the Mythical Man Month > “Surgeon Programmer” =? scrum master
- From Code Complete
- Good at quantifying problem
- Code written has good long-term attributes: more maintainable, better testable, smaller/simpler, greater plasticity
- They recognize dead ends and see different solutions
- Person gives you what you want more efficiently not what they want
- Good at explaining things to others; makes other people more productive
- The goodness is really a continuum, not a step function
- Exponential, with smaller and smaller tail
- Any decent programmer can can be heroic
- Super programmer makes it look less heroic
What's a Superprogrammer's Role in a Software Team?
-A super programmer does not like managing people but wants to manage the code
-In agile role, should definitely be coach
- Management is stressful for the super programmer
How do you identify super programmers?
- Interviewing: Give them think out loud problems; not syntax questions
- Give them a poorly thought out problem → do they have different ways of solving the same problem?
- Creativity seems to be the key
- Maybe with questions we aren't looking for their superness directly; instead we look at how many solutions that they generate as an indicator (correlation) of superness
- Another approach; compare and contrast different solutions given by people that are in the interview room
- Super programmer knows they are worth it and will demand a lot of money
- (some dissent: more interested in project that money)
- Two people said 2 or 3 people that they know are super – something like 5%
- Referrals would help find supers, but an interview would be needed to filter
- Or optionally, say list 20 people that you know, pick the top X programmers
- Perhaps who asks questions at conferences?
- Ask them to look at some generic code, then write tests to bring out the bugs
- It's easier to determine when people aren't superprogrammers!
How do super programmers use software tools?
- Super programmers are not dogmatic
- Typical Java/C# programmers are not super, but greater proportion Java script
- Interestingly, the best tools are in these languages!
Are super programmers Born or Made?
- Mostly made, but require some internal drive.
- Perhaps educational system is wired towards this type of programmer
- Or maybe super programmers transcend educational method