The "free electron" programmer
I have to say that I really liked reading Rands in Repose's excellent blog post about "free electron" programmers. Unrelated side note: Did you know that Simply Hired has a graph showing the median salary of these kinds of programmers? Apparently the median salary is around $78,000.
At any rate, I feel that this is a subject I can add to. I say this because I consider myself a free electron. And I'm not saying that to be cocky either. It's just that Rands's description of the free electron is almost a word-for-word description of the Architect (INTP) or maybe the Mastermind (INTJ) personality type. I just so happen to be an Architect. I think that people with both of these personalities were almost born to be programmers. They're naturally inquisitive and love nothing more than to understand complex systems. But they can really be destructive if not dealt with properly. And they're so rare (about 1-5% of the population) that many people may simply be unaware of how to deal with them.
At any rate, here is a list of general pieces of advice to get along well with your free electron (in no particular order):
Listen to them
Alright, so I lied when I said this was in no particular order (at least for this point). This is the single most important thing to do to get the most use of your free electron and to keep your free electron happy. Yes, we come up with some rather zany ideas that seem to not be grounded in reality. And a lot of the time, that may be true.
But you also need to understand that free electrons have an unmatched ability to understand complexity. This means that oftentimes, they may understand something you don't. And sometimes, it is difficult to put complexity into words. Thus, what seems like a zany idea to you might actually be a perfectly rational way of looking at things when you understand all of the details.
But you shouldn't just listen to them when they're right. You also need to give them thoughtful consideration when they're quite obviously wrong too. Nobody likes not being listened to, but free electrons hate it worse than anyone else. And more to the point, they're driven to make people listen to them by whatever means are available. If this leads to an overly long and drawn-out discussion of whether to use camel-casing or underscores, then so be it.
Be logical
A lot of people will come to the conclusion that free electrons are hard to get along with and inflexible. However, this is a person who hasn't learned to frame their arguments properly. A lot of people tend to put things in emotional terms. Emotional arguments have little impact on free electrons.
Remember how I said that free electrons hate not being listened to? Responding to a free electron's arguments with emotion is equivalent to not listening to them. However, you will find that a free electron is willing to listen to arguments about how their idea is the stupidest thing you've ever heard as long as you can present logical reasons why.
Conversely, they're likely to not take others' feelings into consideration in discussing things. Therefore, you need to understand that if they say something that comes off as insulting, they probably didn't mean it as such. If this bothers you, it is helpful for you to point out when they're being rude as long as you do so calmly.
They may not realize how talented they are
Remember how I said that there are two personality types that can be free electrons? Here is the area that differentiates them. Masterminds tend to be very much aware of their talents, so this section doesn't really apply to them. Architects usually aren't. They assume that every programmer can understand what a monad is just by reading the wikipedia page on them. Sometimes, you just need to get them to slow down for the programmers who don't spend their weekends writing compilers for fun.
They need direction sometimes
Free electrons tend to be focused on the big picture. However, they're not very detail-oriented. This means that they tend to be great at getting an overall framework for a solution set up. They tend to not be very good at putting the finishing touches on things. Thus, free electrons tend to be good at starting projects.
This is all well and good, but sometimes you need them to stick with something. Typically, a free electron will want to move on to something else when they feel they've learned everything they can from the current project. You can help to counteract this effect if you can point out other interesting things that are still left to do in the current project.
You have to be careful with this approach though. If a free electron is forced to work on a project they find uninteresting, they will find a way to make it interesting. You don't want to assign them to a little modification of one method just to find out that they've changed your piece of software's entire architecture.
...but most of the time you should just leave them alone
Free electrons are very autonomous individuals. They'll probably dislike pair programming and hate micromanagers. But that's fine because free electrons can do amazing things with little to no direction. When teamwork is required, you should keep interactions with the free electron mostly at the high level. If there's too much tedium involved, they'll probably turn very toxic very quickly.
Also bear in mind that free electrons tend to keep their thoughts to themselves. In other words, if it seems like there are 10 levels of intricacy behind everything they say, it's because there is. There are two things that can cause this:
1. If your free electron is an Architect, they could very well assume that those 10 layers of complexity are obvious to you.
2. They may just not feel like explaining it to you.
While number 2 makes free electrons sound like snobs, take a moment to think of the world from their perspective. As stated, free electrons are ridiculously rare. That means that they've spent their entire life trying to explain their way of thinking to people who will probably never be able to understand it because they just don't think the same way.
This leads them to unconsciously come to the conclusion that explaining things to people is hard and avoid it at all costs. This makes getting the full story out of a free electron a bit like pulling teeth. The best approach is to show some initiative. Get them to talk about those subjects in normal conversation. Chances are, they'll be more than happy to share if they feel you're genuinely interested in the subject and not just asking about it because it's your job.
They can't do it alone, no matter how much they claim otherwise
Free electrons can do amazing things that no other engineer can do. But they have weaknesses that need to be balanced out. This means they need good managers to help direct them and good engineers who can make up in the areas they lack. The best free electrons are the ones who realize this. Don't expect them to ever admit it to you though.
