Submit captions for this cartoon of “The Moverick” in this post’s comments. And don’t forget to submit captions for the other Software Engineer Types as well…
The Maverick
The Maverick will do your feature IF he can do it in Ruby on Rails. Or Haskell. Or Python. Or <other hot new language that his peers don’t know and therefore can’t evolve or maintain>.
And, NO, this type of Maverick has nothing to do with John McCain or Sarah Palin. Well, probably not.
Distinguishing Characteristics:
- Smart. Creative.
- Doesn’t want to build on or maintain the existing codebase (because it’s a spaghetti nightmare AND because it’s written in Java, which is sooo passe), so he’ll roll his own. This will include the creation of an exotic protocol and adapter layer so that the old code can call his code.
- Dependable — if you let him do it his way.
- Magically finds his way off the project if he is not permitted to build in his preferred language.
Project Pitfalls:
Oh, you’ll get your feature all right, and you’ll get it on time and it’ll probably be done well and it may even delight you and your users, but once that guy leaves someone is going to have to refactor it in order to evolve it. And we all know there are few words a PM likes less than “refactor”.
Achilles Heel:
Back in my hometown, we used to say “That dog won’t hunt” when referring to someone who simply and inexplicably will not do the obvious, such as build on the tech stack into which he was hired.
Do you need this engineer?
Maybe you could aim this smart engineer at a custom one-off or a stand alone widget that doesn’t need to be evolved or maintained. No.
Best Bet:
Be prepared to make your perfectly reasonable case for building the feature in the existing language in a public forum. Make said case without emotion, and in front of his peers & manager because, trust me, they don’t want to support his alien creation any more than you want to.
Also in 7 Types of Engineers
- Caption Contest! (7 Types of Engineers)
- Caption Contest: The Veteran (The Seven Types of Software Engineers)
- Caption Contest: The Hotshot (The Seven Types of Software Engineers)
- Caption Contest: The Great One (The Seven Types of Software Engineers)
- Caption Contest: The Teflon-gineer (The Seven Types of Software Engineers)
- Caption Contest: Offshore (The Seven Types of Software Engineers)
- Caption Contest: The Maverick (The Seven Types of Software Engineers)
- Caption Contest: The Clockwork Mouse (The Seven Types of Software Engineers)




{ 10 comments… read them below or add one }
I told you 2 months ago, on Feb. 15 to exact, I’ll get it done when I feel like it.
I don’t tell you what font to use. What, exactly, is wrong with (lambda (x) (+ (* 2 x) (^ x 2)))?
“I told you that writing this in C# and not Java would take a quarter of the time. Now I need at least 5 more months to refactor everything in Java.”
This sandwich, like our technology, is now 37 minutes old and must be thrown out.
There’s no way we can maintain the current code. I’ve already started to rewrite everything in Ruby. It will run faster and do everything we need. What do you mean you don’t know Ruby yet?
“NIH does NOT stand for the National Institutes of Health”
p.s. NIH stands for “Not Invented Here”, the type of code that Maverick hates the most.
I am doing what is best for the project.
“Heck-yeah, there are a lot of chicks who show up to our ham-radio-and-extreme-programming monthly mixers.”
(By the way – this is the guy who is most likely to secretly be a Shriner. You know, little go-karts, beep-beep…)