tags:

views:

189

answers:

4

I have never had the opportunity to work on or with a team of programmers.

Can someone describe what it is like to work on a team. Who does what, when and why?

What positions are required to make a team?

What has been your experience working on or with a team of programmers?

(I've heard horror stories about fist fights, late schedules, language barriers etc...)

+8  A: 

It really comes down to the dynamics of the team. In many places, especially larger business, the only way you will notice you are working on a team at all is the weekly status meetings. Otherwise, task are so segregated, you might as well be working alone.

In other places, you can end up working in pairs environment, or heavily enclosed spaces. These can either be a godsend or a curse, really it all comes down to the quality of people you are working with and the strength of management, which is actually rather key.

To be a pessimist, interpersonal skills and programming often don't go well together. I am glad to have had a bit of experience outside of the programming realm to contrast things with. You will however often find, many of your co-workers have.... underdeveloped social skills. Just remember, all the skill in the world means nothing if you are a complete douchebag, unless of course you are completely OK with being put in a closet with no chance of advancement.

Hopefully you will get lucky and get in with a tight group of people. In the hands of a properly skilled programmer without a giant ego, you have a giant opportunity to learn and you should take it. On the flipside, you will often find the best people to learn from are those still willing to learn from others. Stay away from know-it-all types like a cancer.

EDIT: I suppose I should mention, it is as much on you as it is the rest of the team. If I can give one single piece of advice to anybody first starting to work in a team, it's "Be willing and preferably eager to learn" followed by "You may be new, but you aren't useless". In other words, don't go in as a know it all ( even if you do! ) and be prepared to listen and learn. At the same time, don't be intimidated, just because you are new or young or whatever, doesn't mean you ideas don't have merit.

Serapth
"Just remember, all the skill in the world means nothing if you are a complete douchebag" +1
Aiden Bell
+2  A: 

So instead of focusing on the bad, I'll tell you what is cool about teams. I have been fortunate enough to have been on a lot of good teams. We each have our strengths and use those to quickly solve problems as they arise, ask questions, spot check each others work, etc. On a mature team, everyone realizes that we have responsibilities and the success of the project depends on each of us doing our jobs. When we critique each others work, we know it's never a personal attack, but to make the end product better and see it as an opportunity to learn something new. It's cool to see some of the most senior of programmers get schooled by the fresh out of college guys, but take it with dignified professionalism. In this space, factual knowledge has a high obsolescence rate, so being humble when being taught by someone--no matter how old or young--is really cool to see.

Wayne Hartman
+2  A: 

Who does what, when and why?

This topic is sometimes called "process", or "development process".

Many, whole books are written about it!

I'd like to recommend this book:

Organizational Patterns of Agile Software Development

Because:

  • It's entirely about people: different kinds of teams and roles and ways people meet
  • It's about successful (rather than unsuccessful) teams
  • It addresses different kinds of team at different phases of the software development lifecycle
  • It's not about techniques (for example, estimating, design, coding, debugging, etc.)
  • The authors have studied this topic well.
ChrisW
+1  A: 

On a team that gels, that lacks prima donnas, and where people work collaboratively it is extremely rewarding, particularly the sense of satisfaction and competence you achieve.

On a team where every other person thinks they're a genius and everybody else is a maundering dolt - its hell!

most teams fall somewhere in between.

kloucks
Great word: http://en.wiktionary.org/wiki/maunder
Mike Woodhouse