To me there are a few archetypes that most good programmers seem to fall into. Many end up having attributes from multiple archetypes, but generally one is the most prominent. I'm not just The Glue, I'm also some other things, but what's most obvious and where my biggest contributions come is in being The Glue. I'm going to avoid talking about the negative archetypes like The Hero, The Recluse, The Sheep, and The Manchild, but certainly even good programmers can revert into those at times, too.
The Glue
A glue programmer is very valuable. They are skilled in a wide variety of tasks, they pick things up quickly, and they're fearless, or else they wouldn't be able to be The Glue. The Glue binds everything together and makes sure everything holds up. The Glue is selfless, as they care more about the project or team's success than about their own individual satisfaction. They'll do the mundane work that nobody else wants to do, not because they can't do more interesting things, but because it needs to be done for the project to succeed. They tend to flitter about between systems and responsibilities and make sure the details are being covered. Their weakness is their feeling of responsibility over everything can make them avoid getting too deep in any one particular area, lest something else falter. Because of that, they're not the best choice for doing upfront architectural work, because that requires a lot of dedicated focus on a specific problem for a long period of time. They can lose sight of the big picture while they're focusing on keeping everything together.
The Architect
Architects really enjoy thinking about problems and coming up with solutions. They're good at looking at things from a distance and seeing how all the components will need to work together to make the whole function. They're great at starting projects, but often are not as good at finishing them. When they get down to the details and have to make the hard decisions about compromising their vision, they can be paralyzed. All projects require some tradeoffs to get finished, and often they feel that this betrays their artistic ideals. They're a great resource to have, but when you have too many, you'll notice a lot of grand, lofty ideas being discussed and planned with little actual end result to show for it. These are the types that do well in interviews because they like coming up with solutions to challenging problems, but if they don't also have some bits of other archetypes in them, they'll end up spending all their time coming up with the perfect theoretical solution without actually shipping software.
The Builder
A builder is perfect to pair with an architect, because they're great at seeing another person's vision and bringing it to life. They are good at tracking the details and ensuring constant progress on the project. They can be known as finishers, and are very task oriented. They tend to be pretty reliable at making visible progress on projects and getting things out the door on time. They know when to make tradeoffs to ensure the project gets completed, but sometimes they can be known to cut corners too much. The flipside to that it that they can sometimes, in their rush to get something functional out there, build something out of duct-tape and glue, or something so convoluted and cumbersome to maintain that nobody else dare work on it. When guided by a quality architect, they're extremely useful, though, and will make sure that you have something to show for all those lofty ideas.
The Firefighter
Production's down? Who you gonna call? The firefighter, that's who. They're great at jumping into a tense situation, keeping composure, finding the problem, and fixing it. They're not afraid to put a band-aid solution in place to keep things going while they work on a more permanent solution. That can break down when there are too many fires for them to actually get to the permanent solution, as the adrenaline of the chase will keep them putting bandaids on everything rather than solving fundamental problems. They are great at debugging systems and understanding their complex interactions so that they can see where the problem is quickly and resolve it. They should not be confused with The Hero, who rushes to get things out and then gets praised for quickly band-aiding the problem that he created to begin with. I often refer to that as someone who jumps on the grenade that they had thrown.
The Fixer
This is the guy you call in when there's blood and guts everywhere and the cops are on the way. You can add a fixer to a delayed project and actually negate the mythical man-month, as they will turn things around. They're not afraid to step on toes or even run people over if they have to, as long as it serves to move things forward. In doing that, they can burn bridges and drive people away, even though their intent is more altruistic and less personal than how it's received. They're still useful to have as they can rescue a doomed project and turn it into something useful for the company, just be aware that they might also drive some people from the team in the process. Then again, if those people were finishing their projects, you wouldn't have had to call in the fixer to begin with.
What are you?
I think I fall pretty well into The Glue for the most part, with a good chunk of The Builder, and maybe a touch of the others. I don't enjoy having to be The Fixer, as I know I've offended some coworkers when I've needed to do that (usually when asked, but sometimes of my own volition). Then again, at other times it's worked out wonderfully when those on the doomed project really wanted the help. To me, the team is paramount. If your lack of progress is going to prevent the team from succeeding, I'll try to give you a chance to correct course by offering help. I can't stop you from hanging yourself once you have enough rope, though, and I'll be the jerk who takes over your project if I have to. I'd prefer you didn't make that necessary, and hope that you don't take it personally. Maybe that makes me a bad person.
Where do you fit? Do you disagree with my self-assessment (assuming you've worked with me)? Or am I way off-base in my over-generalized archetypes?
No comments:
Post a Comment