7

I am asking a question for my friend; he is searching for a position in the corporate world.

Let's call him "Joe". This Joe guy does not think working in a team necessarily means the best product will be delivered, and this is his dilemma.

Before I duck him expressing his innate nature and say, hey be a team player, allow me to express his side.

In his experience, he has always shined while performing individually. Teams, in his opinion, are required only when gigantic software projects are being developed or maintained. With teams come additional responsibilities of making sure everybody is in sync with each other and the product they are engineering. You gotta conduct yourself all the time to everyone's satisfaction. Even if some guy in a team is a jerk, you have to tolerate him and work with him, even if he is slowing down the entire team. Individual work, on the other hand, means it is only him who is responsible for anything that goes wrong or anything that shines.

The problem is, this kind of a work ethic is not encouraged by many firms, and this average Joe is losing out on many lucrative job opportunities because he doesn't like to lie and openly says he does not perform at his maximum when working in a team, which is true.

How does a non-team player answer questions about team playing in an interview?

  • 19
    "...Joe is losing out on many lucrative job opportunities because he doesnt like to lie and openly says he does not perform at his maximum when working in a team, which is true" - I don't see a problem here at all. If he doesn't have what companies are looking for, then he shouldn't have those jobs. If he wants to have those jobs, then he should learn to work in teams, but that is a whole different matter. So yeah, the question doesn't make a lot of sense to me. – MrFox Apr 29 '13 at 15:29
  • 1
    I edited this to focus on a specific question, but I'm still not sure it's constructive yet. Specifically, the answers may not be addressing the question in it's current form. I'll leave this for the community to decide if it should be reopened. – jmort253 Apr 30 '13 at 3:09
  • 1
    I think this question(and all questions here) need to be asked from the point of view that the asker is the one with the problem. It is not so important that the OP face the problem in reality as it is that it is a real problem that is faced and that the question is asked as though it were their problem. The "My friend" aspect of this question is attracting too much attention and turned a good and constructive question into a quasi-farce. – IDrinkandIKnowThings Apr 30 '13 at 13:01
  • 1
    @MrFox: well, if he "doesn't work his best in a team", that might for example mean that in a team he's as good as anyone else, but on his own he's 25% better than anyone else is either on their own or in a team. So "Are you at your best in a team?" is in some sense a wrong question (and probably not the question the interviewer really wants to ask, should they stop and think about it literally). It would be reasonable to seek to use a bit more finesse than just to answer it simply, "no, that's not when I'm at my best" ;-) – Steve Jessop Dec 3 '15 at 23:05
13

When I was a younger developer I thought much the same way as your friend so let my give you my insight.

I am inclined to the personality trait that I feel everything I do personally and every system that I am involved in should be operating at peak performance and optimum efficiency. I am also naturally something of a control freak and am prone to anxiety problems because of this.

My first jobs were on very large projects and the only thing I noticed is that we have this big clunky inefficient software team revolved around new features that might have taken me and one other developer a couple weeks to complete on our own. Project managers would spend days laboring over schedules and resource conflicts, developers would work on technical documentation that most of the time nobody would read, business analysts tinkered with and put attention to requirements documents and QA analysts would talk to BA's and Devs about strategies for their test cases.

This of course slowed me down and all I could focus on was that the system was inefficient and that I could do all of this in good quality in a shorter amount of time.

I was looking at the world through Developer colored glasses. My entire mindset was that process efficiency was the primary goal, and that implementation is all that was important because that was the only thing of tangible value to the customer.

This is of course incorrect and I only came to understand this once I began to understand that the only thing that is important is the needs of the stakeholders, tangible or intagible, fake or real, founded or baseless.

Your friend very well may be an All-Star software developer, but riding your plans on the shoulders of a hero is terribly risky, especially when a lot of money is on the line. One of the primary concerns of all stakeholders is the inherent risk of a complicated project. The process and extra people may slow down the All-Star or even delay the project more than giving it to only a few people but this inherently lowers the perceivable risk to have project managers and project plans, clearly laid out requirements, quality assurance seal of approval, etc...

  • 2
    you hit the nail on the head. He can get OCD about peak performance of a system and I have seen him take sick days due to the anxiety/panic he gets into when working with mediocre teams. He needs to know of this point of view, which to be honest, I could have never thought of. Hope this helps him. Cheers. – happybuddha Apr 29 '13 at 18:39
  • @happybuddha He very much sounds like me in my youth. If you want to give him some additional advice, let him know that doing something that truly matters in this industry is a luxury only afforded to a select few. Everything else is vapor so don't get too emotionally attached to your work, in the end it just isn't worth the stress you put on yourself. – maple_shaft Apr 29 '13 at 18:56
  • 1
    doing something that truly matters in this industry is a luxury only afforded to a select few - I am not sure what you mean by this. I have been involved in many projects that have had real impact on the companies that I worked with. I think that is true of a great many developers. – IDrinkandIKnowThings Apr 29 '13 at 19:20
  • 1
    @Chad - I suspect the issue then becomes whether that company "truly matters". If my company went out of business, some people would be out of their jobs, other companies might lose profits, and our competitors could try to pick up the slack, but the economy as a whole would continue on without a bump. Conversely, the people working on developing the iPhone, or Google Glass, or even Stack Exchange have an much larger impact on the world. I'm not sure I agree with the thought, but I understand it. – Bobson Apr 29 '13 at 19:29
  • 2
    It seems to me that this answers a different question, something along the lines of "How important is teamwork for developing software?". But then, I still don't understand the question... – MrFox Apr 29 '13 at 19:45
32

I hate working with people like this guy (whether in software or engineering or any field).

For example, he generally:

  • Makes more work for me by not documenting anything
  • Causes a million communication issues
  • Never maintains any process or code or anything he does
  • Cannot hand off projects
  • Thinks his idea is always best
  • Causes this problem in everything he does

My interview advice for him would be to tell the truth, that he doesn't work with teams and thinks they are a waste, so he doesn't get hired into my company and make my life miserable.

My career advice would be for him to become an independent developer and release his own apps and live/die by his own philosophy. He'll especially learn how important someone being able to do marketing type work (whether advertising or market research, etc) is unless he can do it himself. He's going to hate working on teams and make all his coworkers miserable so he might as well just find jobs which fit what he wants to do. Or seek out contract work which is suited to one person.

Is this unfair? Absolutely not - a company offers a lot of $$$$$ to employees and part of this work involves working on teams. If he doesn't want to do this, then he has no right to feel upset about companies turning him down.

  • 9
    +1, but it's also unlikely that Joe is as great a developer as the OP thinks. You simply can't gain experience with complex & interesting systems unless you work in teams. Not having the 'team player' skills, on the most part, excludes you from a lot of interesting technical work. – MrFox Apr 29 '13 at 15:39
  • 3
    @MrFox Agreed, in my experience, people like this are a lot more arrogant than they are effective, and they avoid working with others is a tactic to hide their incompetence. – huntmaster Apr 29 '13 at 15:57
  • 3
    At the same time there're plenty of single developer projects in scope for solo contractors or one man ISVs. – Dan Neely Apr 29 '13 at 17:47
14

I'll start with - he's right.

The bigger the team, department or company, the more of a "tax" it pays on communication overhead. From a communication perspective a team of 1 is absolutely the most efficient.

It is also constrained to the pace of a single person - if the problem is small enough, that is absolutely doable.

Problem is - the market doesn't support a whole lot of those positions. Most of the major products made today involve a scope and complexity that are bigger than 1 person. They take diverse skills that 1 person alone cannot hope to learn in a life time. They involve shifting requirements and a pace to development that requires massive hours, but in a short time frame.

So - the market for products or solutions that can provided by 1 guy who isn't willing to invest the overhead in communication skills is a very limited market. While a multi-person work unit is inefficient, it's a fair bet that those who have spent time getting good at communication in all its varieties are going be able to handle this "tax" much more efficiently than those who are "not team players" - in other words, those with little to no interest in practicing team communication.

If he's dead set on not improving in this area, I'd suggest that he:

  • Develop a skill set that makes him an absolute wizard. They are becoming rarer and rarer, but there are still niche areas where the One Perfect Guy may be able to land a position working alone and doing specialty work that negates the high barrier of his inefficient communication.

  • Figure out what other parts of work/life he's willing to sacrifice - job options are simply going to be more limited than for a "team player" - so be aware of what barriers are OK - salary? work hours? company stability? education benefits? location? exciting work? I'm not saying that non-team players are going to get the absolute worst jobs on the planet - but I'm saying that the demand for this skill set is more limited so when the right job comes along, he should be clear on what he's willing to put up with.

  • Consider expanding into a least one communication skill area - in particular - writing. If you are a wizard at a state of the art technology, can do great one-man work in it, and write well enough to explain it to others, you can balance the limited "I make solutions for a living" work with also writing about how to do what you do for others. It increases the expert's fame and increases future potential opportunities as well. And writing is one of the more solitary-compatible communication arts.

This is the radical answer. I'd tell this answer to a friend who I knew would simply miserable if he had to work in a team. I wouldn't tell this answer to a guy who'd had experience in a few teams with a few of the more ... unique... personalities that make even a great team a very unfun place to work.

If I thought that the guy was a typical sort of computer geek who is actually a fine team player with people who are similarly decent to work with - I'd also offer the advice to refocus the question. Team work is not about liking everyone or never being annoyed. It's about being socially adaptable enough to get a big project done in tandem with other people - helping and teaching across skill sets, buffering others weaknesses with your strengths and being helped in turn. If your friend can think of situations where the team experience has been a positive one (in or out of work), I'd ask that instead of accepting limited job options, he concentrate on the parts of team work that he likes, and say that that's the sort of team experience he's looking for.

"Independent" and "team player" don't have to be opposites. But for a strongly independent personality, it takes the right team to make it work.

  • 1
    "Independent" and "team player" don't have to be opposites. But for a strongly independent personality, it takes the right team to make it work. - Exactly right - I have worked at places that preferred a bunch of heroes to the team effort. While it was not the type of environment that I thrived at there were people I was friends with there that did. – IDrinkandIKnowThings Apr 29 '13 at 18:13
  • 1
    @bethLakshmi, I would have marked your reply as an answer. Just that all the points you mention would work well, only if he understands what maple_shaft is saying. I loved your answer as I feel this to be the most humane one and probably not as dismissive. – happybuddha Apr 29 '13 at 18:40
6

That kind of work ethic is not encouraged because it is not the most effective for the organization. Your friend needs to learn to work with others, to deal with the people he doesn't like and to stop thinking he is so much better than everyone else that he doesn't have to play the game. Why would he want to handicap himself to small one-person projects when the big projects are often far more challenging and interesting? Why would he want to stay at a junior person's salarly (Senior people have to be able to work with others) for the rest of his life? Team work is simply a requirement most places and it should be. He needs to fix his problem and then he will know what to say in interviews.

  • I think he has trust issues. There is no en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect with this fella. If it were to him, he'd clone himself and work on the different modules of any large projects. He is more than willing to 'fix his problem'. Just that he is trying to find out what the problem really is. In his experience he has seen and experienced first hand that team work does not pay for the greater good. More or less because a team consists of all types of people who may not necessarily be contributing to a project – happybuddha Apr 29 '13 at 14:15
  • 3
    'More or less because a team consists of all types of people who may not necessarily be contributing to a project' Such as the guy who refuses to work in a team because he insists he is better outside of one. Sounds like he himself is the very type of person he is trying to avoid – Rhys Apr 29 '13 at 15:44
4

So, this is probably so obvious it doesn't bear saying, but put yourself in the shoes of the interviewer: I have a team, and your "friend" doesn't want to be on a team and can't work effectively on one. What do I do?

Note that it's cumbersome always saying "your friend," so for brevity I will just say "you."

So, what to do?

  1. As enderland says, you could start your own company, and never have to deal with anyone else again, except clients, accountants, designers, etc. (All of whom can make other developers look incredibly easy to work with).
  2. Get so good, working on your own, that there will always be companies that will hire you and stick you away in a room somewhere, just to feast on your brilliance. The problem with this is that there are a lot of skills you probably need to have to get to that level that you're unlikely to have a chance to achieve working on your own, such as using version control and architecting so that less-skilled developers can build on your code. There's also the issue that there are so many good developers out there that even if you get to that level, you won't get the opportunities unless you can get your name out there--by speaking at conferences or writing a book or something. These both require you to deal well with people.
  3. Look at people-skills as similar to any other skills, and work at them. Note that it is very difficult to change your basic character, so you will probably always have "issues." But you have to start somewhere--just as you did with your programming skills. You will have the opportunity to learn the technical skills that come from working on teams, and you might even learn something from the ideas of those you have the opportunity to work with. I think you should be honest that this is not your strong suit, but that you're willing to work on it. Maybe someone will take a chance on you. In the meantime, maybe working on an open-source project would give you the opportunity to practice while not asking someone to take that chance with you.
  • It is cumbersome to say your friend and for brevity say you ? Seriously ? This is incorrect and extremely disrespectful. I am glad you have offered your 2 cents of advice, for my "friend". Thanks ! – happybuddha Apr 29 '13 at 18:35
  • 4
    Yet, somehow, you are able to come back in the comments and further articulate his position, as if he were right there in the room with you. Go figure :) – Amy Blankenship Apr 29 '13 at 18:47
  • You should have tuned your crystal ball well enough to know if am asking a question for a friend, I know that friend very well and that I have spoken to him about this time and again. And, I hope this doesnt sound too distant to you, nevertheless, some people make true friends and some people are worthy of being true friends. :) – happybuddha Apr 29 '13 at 19:05
4

Being able to work with people you aren't necessarily going to be friends with is the sign of a professional attitude. You have to have the social skills to bridge the gap in order to play the game. Your friend simply isn't willing to play the game, either because of his own feelings of superiority or social ineptness in professional terms.

In my opinion, your friend might be a good programmer, but he is a lousy professional. He lacks the skill set that is necessary to be one. You may have arguments about how to get things done, but those are normal. The ability to deal with these situations in a way that, in the end, everyone agrees on the way to go forward is a professional skill and a condition for good team work. From what you describe, your friend needs to learn how to do this.

Luckily, both can be addressed through either self-help, or better yet, the help of a workplace coach.

As an illustration, I'll provide you with some situations I've been in and compare them.

In one situation we worked in a team where we developed a mid sized product in the vacation home rental business. This team was very diverse, and we had great interaction. This wasn't because we were friends, but we had respect for each others' skills. This lead to a great attitude that was reflected in the standards of workmanship and in the way we supported each other. All in all I'd say these guys were a great team to be with. I was only an intern, but I would have loved to go back there. (unfortunately, they folded in the crisis) If anyone got sick, the fact that we all had done our bit to contribute to the big picture helped to cover for each other. the discussions we had left no stone unturned, but at the end we had a good understanding why we made the choices we did, and we all knew how to progress from there.

In another company I worked for, the situation was pretty much what your friend was looking for: Developing e-commerce websites for small and medium sized businesses. (and a few big ones) These developers for the most part had developers work on their own projects, with one or two teams maintaining the sites of the very big customers. From what I can tell the programmers were either skilled people who wanted a break due to other life issues or they started out as unskilled people who grew into the job. The skilled workers were the team workers. But as teams were few in number, overall it could be said that team work was abysmal. The parts that were done together by non team regulars didn't fare well because work was unstructured and often team members were not communicating. If someone became ill, that would usually be a major problem. Nobody was there to fill in the gaps and it would cause costly overruns for someone to fix what was left open, or because of the damage clauses for time overruns. The lack of team work would leave the replacements guessing as to what they should to to finish these projects within their deadlines.

Is there a drawback to working in teams? Yes, working in teams creates overhead in planning and execution because you need to communicate. Are there advantages to working in teams? Most definitely! Good team players can cover for each other, meaning continuity and a better overall product. One of the main reasons being that you have someone that is watching your back. Although this might create some peer pressure (something that isn't half bad in my opinion) it also provides for much easier problem solving. Nobody is god in the workplace, nor is anyone that inept that they can't contribute. (assuming he/she has an educational background in software engineering as part of their history)

The answer to the question isn't one he's going to like: There is no way around it. He needs to learn how to be a social professional before he'll get a good job. There's no fool proof way to trick the interviewer. The interviewer will probably punch through the facade with a follow up, whatever his answer is going to be.

  • 3
    Your friend simply isn't willing to play the game, either because of his own feelings of superiority or social ineptness in professional terms. - This is a huge and possibly flawed assumption. This generalization at the start of your answer detracts from the rest of it. I also dislike speaking in absolutes. I suspect there is a decent paying job out there that the OP's "Friend" may find. It will take him much longer and probably some failed starts. But saying that they will never find it is overstating your position. – IDrinkandIKnowThings Apr 29 '13 at 18:09
  • 1
    The simple fact of life is that, in general land/or on average, bigger compagnies generlly pay better salaries for equal positions compared to small businesses. (Just a plain statistical fact I was made aware of during my education) So while there might be jobs that are more solitary in nature, those jobs are less likely to be situated in the corporate world and thus less likely to pay as well as jobs that are situated in a corporate setting. – Onno Apr 30 '13 at 11:51
  • Oh, and regarding the assumption that the 'friend' isn't playing along, the OP gives off a pretty strong impression that this is that type of person we all know. The kind that enderland describes in his reply. Given that the OP points in that direction, I think it isn't an unreasonable assumption to make. – Onno Apr 30 '13 at 13:00
3

It's possible the real problem is that his previous experience is on mediocre teams. It's no fun cleaning up after people doing negative work. He might find that he enjoys working on a strong team.

I recommend that instead of saying he's not a team player, that instead he select his future employers more carefully. If he's really good, then he could be happy and grow a lot as a member of a strong team.

  • I agree. I have been known to feel like telling other to "lead, follow, or get out of the way!" – Amy Blankenship Apr 29 '13 at 19:43
1

Your friend has to decide what is more important, a better paying job or working independently?

There are many companies that have several developers on their staff, but rarely have any projects large enough for more than one dev.

Maybe your friend should focus on finding a job that has other programmers that are better than he/she is. This is how you really step up your game. A willingness to learn more is the sign of a great developer. Those that think they know everything are delusional.

Edit: Good programmers are also the ones who can: make sound arguements and pursuade others to follow their suggestions and work with code written by others.

  • I agree. The challenge really is to get through the interview, isn't it. The company knows it needs one star developer, the HR knows they need that one star developer, the developer knows he is the one. But the lame interview questions that keep beating around the bush, are the ones that need to be answered. I am sure he is willing to learn. Just independently and not having to go through team learning. – happybuddha Apr 29 '13 at 14:12
  • @happybuddha - And by getting through the interview, it should mean both parties gain enough information to decide if they are a good fit for one another. Unfortunately, I'm not sure your friend has the ability to convince people he is truly a star developer. – user8365 Apr 29 '13 at 14:46
  • This answer does not really address the question of how get through the interview, instead you focus on the type of job to look for. That does not really help get through the interview. – IDrinkandIKnowThings Apr 29 '13 at 18:32
  • @Chad - Isn't it easier to get through the interviews that don't ask this question? It's a bad assumption to think all the best jobs require working on a team. – user8365 Apr 29 '13 at 20:56
0

Your friend should be flexible about what he regards as a "team". A software developer working in a team does not necessarily mean being part of a group working on the same technical thing. The team is also your fellow software developers who work on different components, but report to the same manager. They are the people whom you can ask to review a piece of code. Furthermore, your team are the people who support the customers in relation to parts of the software you're responsible for. Product managers who guide the direction of the product and the scope of the milestones are part of your team. Software testers who look for ways to break what you've written are your team. People looking after builds, bug trackers and version control, and their integration and automations, are your team. If your friend thinks about "team" more broadly, he will probably realize that he's worked with and relied upon teams all along.

Not the answer you're looking for? Browse other questions tagged or ask your own question.