views:

604

answers:

12

Lots of companies have "diversity" as one of their goals. I.e. people from a wide variety of backgrounds. The idea being that different backgrounds will result in different ways of approaching problems and the result will be better solutions.

How much is this true in practice? Do you find it is good to have teams consisting of people from different countries, with different religions, of different genders, speaking different languages, and different political affiliations? Does such diversity help solve problems or does it just result in lots of in-fighting and/or miscommunication?

A: 

valuing diversity also means valuing people who are accepting of diversity. That should reduce the in-fighting, at least.

Jimmy
+3  A: 

In my career I've worked with people from all over the world. If you're completely new to a team member with a very thick accent you may find it to be stressful to fully appreciate his skills. However, if you have experience with working with many different people you'll adjust much quicker with less stress.

I doubt a diverse team is BETTER in terms of code quality, but for each individual's career it may be useful to be exposed to lots of different people with different cultures, accents, etc.

Being able to adjust quicker to a wider ranger of team members may make you a more valuable employee / team member.

Terry Donaghe
+4  A: 

I think diversity in programming is a non issue. A good programmer is a good programmer regardless of his/her race/language/background. A bad programmer is a bad programmer regardless of his/her race/language/background. Take this website for example, you look for good answers to questions and vote those up. You don't look for a diverse group of people to vote up. I've worked with diverse people from different countries/genders/beliefs when it comes down to writing code countries/genders/beliefs were non-factors.

Jeff Schmidt
+1  A: 

Good programmers are good programmers. Skill and knowledge are more important the anything else. You do want a team that gets along. They don't have to be best buddies, but you want to avoid out right hostility.

One thing that does help is have someone with the same background as the customer. I work for an international company. Our office in South Carolina. One of my coworkers is French. Many of our French Canadian customer prefer to work with him. His fluency in French is an advantage if nothing else is.

Jim C
A: 

In my experience working with many teams across major industry organizations, it's not perfect, but to a larger degree than in many job categories expertise counts, and diversity happens. For a long time demand for programmers was high enough that just finding qualified people (and keeping their immigration status in order) has provided incentive.

le dorfier
+8  A: 

Diversity in technical background is critical. You really do not want a product, any product, developed by a bunch of programmers none of whom have ever done a lick of systems administration. Diversity in cultural background is mostly orthogonal to product quality, though it can really help get the right perspective if your product needs internationalization.

chaos
So chaos tells us that diversity is good, structure can be an impediment and homogeneous groups aren't a good idea. Go figure ;-)
Joachim Sauer
+2  A: 

I think that different languages, cultures, and genders per se contribute very little directly to making a good programming team, but diversity of background can contribute to the ability of the team to think outside the box. For example, my ideal programming team would have at least a few people that aren't "pure" programmers and don't have comp sci degrees. These could include people with engineering or math backgrounds. People from diverse backgrounds are probably less likely to suffer from groupthink, and when you have a hard problem, and the more diverse the backgrounds, the greater the odds that at least someone will look at it in the right way to solve it.

dsimcha
A: 

A team of good skilled people that work well together trumps everything! This includes diversity, technology, methodology, etc.

Stephane Grenier
A: 

value of diversity is a lot clearer when you look at things from a really high level, rather than "does being diverse make me code better"

Dustin Getz
A: 

I recently read a book about team working that had some interesting ideas about team diversity.

One of the points it made was the diverse teams, both in terms of culture and technical skills, usually require longer to gel as a team and begin working effectively. However, the quality of ideas and solutions of a diverse team are much higher than that of a team with similar members once they have gained experience working together.

It also said that teams that mix genders tend to have better communication between members than same sex teams.

Personality is another big factor. People are naturally predisposed to work in certain ways for example some people are better at focussing on individual problems, others are good at organising things. Some people don't focus on the details but have a good overall understanding on the project. I'm sure you can imagine how these personalities can fit into a software team and what kind of role each would have.

The book was "Effective Teamwork" by Michael A. West. It is not just about software teams but many of the case studies are from IT/Software development. The author is from a psychology background so it isn't too heavy on the business jargon. I would recommend it.

Dave Turvey
A: 

If you have multiple coders working together it is best to have similarily minded ones, as very different ones will likely approach the coding structure very differently from each other and will just make maintaining the code very messy.

It is good to have coders with a wide array of knowledge, but it's best that you coders have similar knowledge levels in similar areas. Coders tend to be very stubborn and won't accept that another coder knows how to do something better than them. It makes for quite a bit of bickering over which way is the right way to do it, when it could've been done both ways and tested for efficiency several times over by the time they are done bickering.

Stephen Belanger
+1  A: 

It is extremely important if and only if the team can embrace. It will not have a huge impact on technical knowlege- an if-statement is an if-statement no matter who writes it. However, it makes a huge difference on ideas-inflow and innovation (which Software developers play a big part aside from the BA, business stakeholders etc). The typical development team consist of white males; which is not bad but limits the "human factor"-effect. Bring in African-Americans, women, foreigners and others and you get a fresh inflow of ideas. For example, a male may develop an app whose UI tells you how to use it and just that. Pretty straight-forward. A female may suggest the app tries to hit emotions and be "cute"- like create a button to make the screen red when angry and green after you just got paid. Others bring in ideas too based on their background. This is not a great example but it shows you how different the human-factors can make a difference in products- which in turn can promote innovation, bring in new ideas and blood and make development fun. Think about this. If you need to develop a video game for girls, do you stack the development team (developers, BA, business stakeholders etc) with all men? Yet, it is fair to say that most apps are developed by white males who may not be in tuned to women, Chinese (largest internet population) and other common software users.

On the down-side it only works if the team as a whole embrace it. People downgrading women ideas, not trying to quickly sink culture-clashes and not taking things personal, people not giving others the benefit of the doubt, people insisting things be done as they were see fit all the time ... and others can make diversity horrible.

All in all, I think diversity is great. On the flip side it bring challenges and it is not work it if everyone does not work towards it.

P/S By the way, I do not agree that diversity is just for customizing product for a specific market. If you need to do that just hire a consultant or have the dev team in the area play with the code for a while to "beautify it". For example, Microsoft can develop Windows 7 in USA for American English speakers and have it's dev team in Mexico create a Spanish language version. This is not diversity because the team in USA and team in Mexico are not close together or in a tight-knit working together or anything like that. Diversity is when you work together, go to meetings together, have to make decisions together and a whole lot of things related to work; together.

Phil