Professional PHP

PHP Programming, Web Development, PHP Advocacy and PHP Best Practices.
« The Problem with Markup Languages
On the Perils of Inline API Documentation »

Software Development Team Diversity

March 26th, 2007

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.

Filed Under

  • Agile Methods, Software Design

Related Posts

  • Funerals for Old Code
  • Agile Development for an Agile Military
  • Changes to my blog (and feeds)
  • The Coding Apprentice
  • Communicating a Vision with Open Source
Both comments and pings are currently closed.

6 Responses to “Software Development Team Diversity”

  1. Patrick Mueller says:
    3/26/2007 at 8:08 am

    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”.

  2. Chris Shiflett says:
    3/26/2007 at 11:07 am

    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?”

  3. stefan says:
    3/26/2007 at 3:49 pm

    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.

  4. Sara Golemon says:
    3/26/2007 at 7:16 pm

    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.

    ♀

  5. Jeff says:
    3/27/2007 at 1:13 am

    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.

  6. Marco’s Webdev Notepad » Blog Archive » Software Development Team Diversity says:
    7/31/2007 at 10:51 pm

    [...] interesting blog-post on “Software Development Team Diversity“ Leave a comment Comment RSS Previous: Firefox Plugin: Selenium-IDE [...]

    Subscribe Feed
    Share Subscribe to this blog…
    Share Bookmark or share this page…
  • About

    My name is Jeff Moore. I'm a PHP programmer living in San Francico and working for a startup.

    More about me…

  • Categories (Home)

    • Agile Methods (14)
    • Mac (14)
    • Misc (18)
    • Open Source (14)
    • PHP (99)
    • Software Design (29)
    • Usability (14)
    • Web Design (20)
  • Recent Comments

    • rsync to remote server via ssh  37
      Petr Halounek, Penni Tomasino, Rodney Kohnen [...]
    • WordPress BBCode Plugin  30
      wepniveth, Pamella Philipps, evakuat [...]
    • PEAR Templates  18
      Sang Bellotti, Kandice Sansing, car insurance estimates for teenagers [...]
    • Extreme Simplicity  15
      Gilbert Moatz, Roni Beauregard, Barb Geyer [...]
    • Manual Memory Management is Dead  6
      Grass Fed Filet Mignon, Kellie Carello, PAPANDOR [...]
    • Friendster wrapup: does MySQL scale  38
      Ollie Joya, nfl jersey on sale, selling scrap gold [...]
    • The Coding Apprentice  51
      fkawau, Annamae Mccane, Boca Raton Personal Injury [...]
    • The Legality of Republishing RSS Feeds  30
      dasfdsfsd, reebok authentic nfl jersey, Tory Rennemeyer [...]
    • Exceptional PHP  7
      Sports, The Click, Laraine Waterhouse [...]
    • PDO versus MDB2  42
      selling silver coins, Oliver Luongo, ddkoaorpa [...]
  • Recent Posts

    • Richard Thomas
    • ZendCon: Writing Maintainable PHP Code
    • Looking Towards the Cloud
    • Holiday Tech Support
    • Closures are coming to PHP
    • php | tek Wrapup
    • php | tek 2008
    • Sarah Snow Stever
    • Benchmarking PHP’s Magic Methods
    • The Endpoints of the Scale of Stupidity on Video
  • Site

    • Archives
    • Log in
  • Search