Matt Mullenweg has a post about Hiring Diversity. A successful software project must fulfill many competing goals and factors and meet a wide variety of challenges. Diversity is the combined arms of software development. In my personal experience, the diverse team performs better. A diverse team allows the most appropriate team member to step up to a challenge. The interaction between team members with different points of view helps a project balance competing goals.
Technical Background
A team needs members with a technical background. These guys are the ones that ensure everything works. They can write the hard bits of code, keep everything performing and make sure the code is maintainable. Without these guys, you will have problems. On the other hand, sometimes those with a technical background view problems solving as a puzzle, where the solution is the end in itself.
In my experience, team members with a less technical background are more empathic toward the user community. They view problem solving as a means to a goal. A customer focus is what makes a project successful. Software can be successful despite technical problems, but it cannot be successful if doesn’t meet the customer’s needs. Having some non-technical people helps prevent your resident technocrats from building a system that will service 10,000 concurrent users, but doesn’t meet the needs of the 329 users you have today.
Perhaps at the extreme end of this spectrum is the extreme programming practice of including a customer on the development team.
Experience
In expert versus novice programmers, I make the distinction between skill level and experience. Age, skill and experience often correlate, but not always. Your young apprentice programmers are important to have on a team. They can react faster. Sometimes not knowing better is a bonus. They’ll do things more senior team members don’t want to do. They do things they’re not supposed to do, sometimes for the benefit of the team.
I think people underestimate how long it takes to actually become an expert, as I mention in my previous post. But, then they also underestimate how similar all software projects are. They also overestimate the impact of their toolset. Generally the technologies in the laundry lists that form most job listings are not the critical success factors for that project.
People want a programmer with who can hit the ground running, who is familiar with all of the teams tools, languages and libraries. But, this is a monoculture as well. Sometimes you need people who aren’t from your toolset culture to point out where you have swallowed the hook too deeply or to introduce new tools and techniques from their alternate background. Sometimes their learning process can teach you something.
While some experience is valued in programmers, age sometimes isn’t. However, you need the older, more stable people as well. They keep the young ones from repeating the mistakes of the past. They keep the project on an even keel. It helps to have an older perspective on the team. I think they help keep attention focused on what matters. The tension between the older and younger team members helps keep the team on track.
Traditional Diversity Factors
I have no opinion on the impact of race. I have an opinion about women on software teams. I wish there were more of them. I have worked on software development teams with diverse nationalities. I regard that experience as positive. Different cultures have different tolerances for risk, different respect for authority or tradition. I think cultural diversity on a team is a good thing.
Managing Diversity
Over the years, there have been many methods proposed of matching people with the jobs they are best at. The solution that works best is to ask them. People gravitate toward the tasks that require their special skill sets. Good team management means hiring diversely and allowing that migration. On a well managed, diverse team, people will self select the jobs they are best at. As a result, the diverse team is more resilient and I believe potentially more successful.
It’s great to see more people talking about diversity in the workplace. One of my pet peeves, and I’m trying to correct myself on this as well, is referring to teams or even people with masculine words. For instance, under your Technical Background section, you reference the word “guys” a couple of times. I’ve been trying to train myself in replacing that with a gender-neutral term, like “folks”.
For what it’s worth, I use “guy” as an informal, gender-neutral reference. I know “gal” is the feminine form, but no one I know uses that. At least not in New York.
“Hey, how are you guys?”
I really loved being on one of the most international teams I’ve ever been on while working at TomTom. Aside from learning a lot in the technical area, I also learned so much about people, different cultures and working together in general, that this was an excellent experience.
As for the experience factor: I feel that the combination of less-experienced vs. more experiences should be 1-on-1 or 2 (less)-on-1 (experienced). Making the gap bigger can mean the seniors will be doing too much helping and too little actual work. But yes, the less experienced are needed just as much as the experienced.
Agreement all around, just want to toss in two thoughts:
1) Masculine forms *are* the appropriate forms for unknown or mixed gender groups. If you feel you must avoid insulting those fringe feminists who think you’re personally attacking their sex, please go for the more casual “folks”, “gang”, or ever [sic] “team” for groups and “coder”, “coworker”, or “whatstheirbucket” for an individual. If I hear that ridiculous pseudo-pronoun “Ze” (gender neutral She/He) come out of one more angry feminist’s mouth, I just may scream.
2) Do not hire women engineers because they are women. Do not pass over women engineers because they are women. Hire competent and appropriately skilled individuals to do the job and stop worrying about what’s between their legs.
♀
I don’t get too hung up on the proper pronoun, although I could have substituted “people” for “guys.” Sara, I bow to your mastery of the unicode character set.
[...] interesting blog-post on “Software Development Team Diversity“ Leave a comment Comment RSS Previous: Firefox Plugin: Selenium-IDE [...]
Fantastic blog.Really thank you! Cool.
“Software Development Team Diversity” yes, i am agree with you
Develop software is very difficult
%100 Do?al ve hiç bir yan etkisi olmayan Uzamax’? ke?fedin
UZAMAX içeri?inde mineral ve vitaminler bar?nd?ran, do?al bitkielerden üretilmi? g?da deste?idir. ?çeri?inde herhangi bir kimyasal ürün bulunmamakla birlikte tamamen do?al kurutulmu? bitkisel bir kar???md?r. Sadece birkaç ayl?k kullan?m kürü sonras?nda bile uzamax’?n etkisini hissedeceksiniz.
Uzamax kullanarak do?al yollarla bünyenize gerekli olan tüm besin, vitamin ve mineralleri vücudunuza alman?z? sa?lar.izlanda yosun hapi
Hrmm that was bizarre, my comment bought eaten. Anyway I wished to say that it’s good to know that another person also mentioned this as I had bother finding the identical info elsewhere. This was the first place that instructed me the answer. Thanks.
Carissa had revamped through the naturalist
This diversity is not esay to be overcome.
dédouanement. Bon de réduction peut être eu avec ces magasins si vous êtes disposé à régler pour les gants
vue de face montrant sur un fond blanc. Le visage doit être comprise entre 1 et 1 3 / 8 pouces à partir du menton au sommet de la tête. Chapeaux, coiffures et uniformes, sauf mot de vêtements religieux quotidiens ne peuvent pas être portés.