Programmer Architypes
By: Johnathon Wright on: November 30, 2020
In early 2004, Nikhil Kothari wrote about three personas Microsoft came up with while working on Visual Studio 2005. Mort, Elvis and Einstein. I have my own list.
As a tech lead, I talk to my team about programmer architypes. We all have many traits within is... and these can be good when used at the right time, but bad when used at the wrong time. At any rate, they are characteristics of programmers that are worthy of naming so that we can think about them.
Super Man: Superman flies in to a Big Disaster. He battles the enemy at all cost. He destroys everything in the vicinity. He doesn't write or run any tests. Instead, once the enemy (a huge bug or problem code), s/he flies away leaving broken streets, fire hydrants spraying water, cars destroyed, and walls lasered. I guess the insurance companies clean up after him?
Yoda: Yoda is a powerful and wise user of the force. However, he is hesitant to act. He is often mysterious, causing others to wonder whether he will actually do what needs to be done. He speaks in riddles. He's still a fun and interesting person -- but his hesitation paves the way for Emporer Palpatine to take control. In summary, you can be too cautious. Trust
Pigpen: Best Practices, Hogwash! Interfaces are for sissies! Symptoms: Classes with no state; Classes with 104 methods; Many copy/paste methods
Inspector Gadget: Big new project?! He’s got some untested tools that would be perfect! Does not care about risk. Loves new technology. Knows all the newest jargon. Doesn’t so much care whether technology is “vetted” or “a good fit.” Finds solutions without problems.
Batman: Motivated by culture, guilt (or other), suffers silently. Will sacrifice anything for the team: Work long hours, Will strive for any impossible / arbitrary deadline; enables / hides poor management; poor work/life balance;
Road Runner: Accomplishes a LOT of coding -- so much so that s/he is the biggest contributor on any project. Maybe not the absolute cleanest code, but will knock things out and get to the next task. Becomes very popular with management, not very popular with those left behind to clean it up. This developer then struggles to move on because they're always called back to work on or explain sections of their own code. Likely to get burnt out. Developers who move too quickly are actually a larger risk to long-term success than developers who move too slowly. A video about being a 10-x developer focused on output vs outcome (and a roadrunner is obviously focused on output.)
See my presentation on common development project issues.
In early 2004, Nikhil Kothari wrote about three personas Microsoft came up with while working on Visual Studio 2005. Mort, Elvis and Einstein. I have my own list.
As a tech lead, I talk to my team about programmer architypes. We all have many traits within is... and these can be good when used at the right time, but bad when used at the wrong time. At any rate, they are characteristics of programmers that are worthy of naming so that we can think about them.
Super Man: Superman flies in to a Big Disaster. He battles the enemy at all cost. He destroys everything in the vicinity. He doesn't write or run any tests. Instead, once the enemy (a huge bug or problem code), s/he flies away leaving broken streets, fire hydrants spraying water, cars destroyed, and walls lasered. I guess the insurance companies clean up after him?
Yoda: Yoda is a powerful and wise user of the force. However, he is hesitant to act. He is often mysterious, causing others to wonder whether he will actually do what needs to be done. He speaks in riddles. He's still a fun and interesting person -- but his hesitation paves the way for Emporer Palpatine to take control. In summary, you can be too cautious. Trust
Pigpen: Best Practices, Hogwash! Interfaces are for sissies! Symptoms: Classes with no state; Classes with 104 methods; Many copy/paste methods
Inspector Gadget: Big new project?! He’s got some untested tools that would be perfect! Does not care about risk. Loves new technology. Knows all the newest jargon. Doesn’t so much care whether technology is “vetted” or “a good fit.” Finds solutions without problems.
Batman: Motivated by culture, guilt (or other), suffers silently. Will sacrifice anything for the team: Work long hours, Will strive for any impossible / arbitrary deadline; enables / hides poor management; poor work/life balance;
Road Runner: Accomplishes a LOT of coding -- so much so that s/he is the biggest contributor on any project. Maybe not the absolute cleanest code, but will knock things out and get to the next task. Becomes very popular with management, not very popular with those left behind to clean it up. This developer then struggles to move on because they're always called back to work on or explain sections of their own code. Likely to get burnt out. Developers who move too quickly are actually a larger risk to long-term success than developers who move too slowly. A video about being a 10-x developer focused on output vs outcome (and a roadrunner is obviously focused on output.)
See my presentation on common development project issues.