Building a Better Development Team? 60
mlawmlaw asks: "I'm part of a development team that provides internal applications for a large pharmaceutical company. The team consists of about a dozen members, some coders, some application developers, and some vendor managers. About twice a year we do some sort of group exercise that almost always focuses on team building. After doing this for the past few years, we have found that while we have built a team that works well together, we have missed the boat when it comes to developing other team skills. We need to focus on better ways of identifying and solving technical problems and developing stronger critical thinking skills. But how do we do this? Teambuilding was easy, bring the team together and do exercises in trust, recognizing diversity, and discovering your teammate's backgrounds. So I am asking the Slashdot community, what have you found to be effective in building a better team other than exercises in teamwork?"
team effectiveness (Score:5, Funny)
Re:team effectiveness (Score:2, Insightful)
Consider the Olympic method (Score:2)
They have already determined that you can't take any random group of people and put them together under the moniker 'Team' and have a great coach or training methodology or awesome facilities turn them into winners.
They view the entire country as an applicant pool and go out, determine who is the BEST of the BEST and they 'hire them' onto the team. They make an attractive offer (th
its hard to train people ... (Score:2)
You can try mental exercises with the group. Have them start with solving 'fake' problems. Make up scenerios and then how you would solve the problems. Not really knowing what your company does it is hard to say exactly how to do that.
Re:its hard to train people ... (Score:1)
Teambuilding (Score:2, Insightful)
Hmmm...sounds like someone has been taking all those Dilbert cartoons seriously...
OK, jokes aside, sure you trust each other, but are you friends with one another? There is a very important distinction and I've found that friends
Re:Teambuilding (Score:4, Funny)
I'd much rather be able to trust someone to do their jobs than be friends with them. But I suppose that if none of you get anything right you all spend a lot of long days together. Me, I have actual friends outside of the company.
A company full of incompetent friends and an empty sack is worth the sack. Which is what some of your friends sound like they should get.
Re:Teambuilding (Score:1)
The point I am trying to make is that IMHO, it is more important to build friendship first. Being a friend in the sense that I meant it means knowing a little about them and, as I said, being "comfortable approaching them" with issues. I think that building a basic understanding of the people you work with will enable better communication with them. And I think that communication is more important than trust in terms of teamwork.
I said I "do not always trust the
Re:Teambuilding (Score:2)
Re:Teambuilding (Score:4, Insightful)
I am far more interested in professional behaviour than friendship. Leave your emotions, personal problems, politics, ego and anything else I may not like about you and you may not like about me at home. I don't want to have the opportunity to dislike someone because of their interests, views or behaviour - it makes for trouble in the workplace. And this is a big danger in teambuilding, and why teambuilding often does not work well, especially in the tech community in which you find heros.
I consider myself Pretty Damn Good. That doesn't mean I'm above asking colleagues for help if I think they have experience with a particular problem and can help me solve it faster than I can alone. It also doesn't mean I look down on people who ask me. Being a professional means behaving in a manner which looks out for the interests of the job as well; so learning and teaching are all part of life.
Re:Teambuilding (Score:2)
I've been through a couple of team-building processes. Both failed miserably, imho because they concentrated on New Age-ish "bonding" exercises while failing to address the unprofessionalism and interpersonal issues rampant in both groups at the time.
Other than this, I have nothing to add. Good post.
Re:hire me for a wekk to tell you what is wrong (Score:4, Funny)
Re:hire me for a wekk to tell you what is wrong (Score:1)
Re:hire me for a wekk to tell you what is wrong (Score:1)
From what I understand, (Score:1)
Re:From what I understand, (Score:1)
Re: .sig (Score:1)
I'm sure it was in Neil Gaiman's books (was that line spoken by the voice in the desert?), but I don't think that that was the original source.
Re: .sig (Score:1)
Feature Driven Development (Score:4, Informative)
http://www.nebulon.com/fdd/index.html
Part of the impetise for creating this methodology was to produce a project structure that naturally builds (and rebuilds) a competent team.
a few bits of wisdom (bits, get it? :) (Score:2)
I also worked at a web dev company once where people who had certain skills would give little classes in-house about their expertise, to help pass on their wisdom to others.
Re:a few bits of wisdom (bits, get it? :) (Score:2)
The company I work for does something like this. Once a month, one of the developers gives a little mini-class on a topic of interest... we call it TechShare, and I think it's a cool way to get people on the same page regarding technical stuff.
We also have a monthly "technical staff meeting", where all the developers get together in a
Time for the Ultimate Geek response... (Score:2, Interesting)
It doesn't have to be AD&D either. Among man
Re:Time for the Ultimate Geek response... (Score:2)
Hahaha!
Loser!
Re:Time for the Ultimate Geek response... (Score:2)
This is actually quite good advice. There are a lot of systems architects that advocate role playing as a means to test your architecture and design. Not AD&D and family, mind you -- each team member is responsible for one or more components of the system (the definition of component depends on the level at which you are testing the system). The the "end user" initiates an action by asking the UI component for something, and (s)he must "ask" (send messages to) other components, until you demonstrate
Re:Time for the Ultimate Geek response... (Score:1)
Frankly, I think the submitter's problem is that his development team is just not as smart as he thinks they are, and his only solution is to higher better people.
Re:Time for the Ultimate Geek response... (Score:1)
Some suggestions (Score:5, Interesting)
one other suggestion I would throw in: It might help to rotate the members around a bit with different job assignments. For example, One person might work on fixing bugs, the other on adding features; flip the rolls, and have the two talk with each other about their processes in the job function and see if they learn from each other.
and most importantly, do the bar thing. it sees that thursdays works out best for people. you can all swap previous work condition stories. like "I remember when we had this one programmer who would store ALL OF THE USER'S DATA INCLUDING THEIR CREDIT CARD NUMBER in an unencrypted cookie, and my supervisor wouldn't fire him because he owned (as in responsible) the code for the registration."
=)
Excellent post but I have one more... (Score:2, Informative)
Re:Excellent post but I have one more... (Score:2)
But only if you want to end up with a program that is already out of date.
(If you specify a program and it takes six months to write, then you end up with a program that's doing what you wanted six months ago. But instead if you specify it while it's being written, and release it often, and allow change (and plan for change, and dare I say embrace change [c2.com]), then you'll end up with a program that does what you want today.)
Re:Excellent post but I have one more... (Score:4, Informative)
I feel you can do both. There is an importance for all involved to know what is it that the application should do before a line of code is started. It's like taking a road trip, I'm going from point A to point B along this route. But somewhere along the route I learn that one of the exits I was supposed to take was closed due to unforeseen events, so I take a short cut, it adds some time to my trip. I get back on course, and learn from someone along the way (you have to take a pitstop everyonce in awhile) that there's a short cut, I take it and save time.
Ultimately, everyone knew where we were heading, what we needed to do to get there, and how to compensate for unforeseen events. The same thing can apply to software design. You need to know your overall goal. That overall goal will never be the same as it will be when it's done, because we are creatures of trial and error. If you're building something for the first time that's never existed before, there's bound to be some changes. You probably won't drastically differ from the overall idea; ie: making a RTS game instead of the original idea of a turn-based rpg, unless the market just one accept it. Remember, we are creatures of trial and error. Somethings work the first time, and sometimes they don't. And when they don't you take a different approach to make it work.
I've worked in a situation where we built an in-house shopping cart system with user-filled products for a wholesale market place. Once we built it, we ran into something unexpected, we didn't account for item types. Sure we had the name of the item, the description, but we had no way to say in the system that a 'cap' and a 'hat' were the same. The shopping cart did everything as requested from the overview, but that one glitch, prevented a more enhanced search system.
As for building things that are already out of date, we still use software that is years old, does it mean that it's out of date? Well if you wish to equate the original planned designed to the outcome of the product, then yes it's true, but just because something might be out of date in that respect, doesn't mean it's out of use. So I'm not entirely sold on the out of date argument.
Re:Excellent post - Mod parent up (Score:1)
Re:Some suggestions (Score:2)
There was a coding competition held by barclays (uk bank - europe too?) - I passed the first round, and so did 2 others.
We went down to london for the coding competition, and had a series of 5 coding problems. I assumed that everyone had the same strengths and weakness that I have. I went first, coded up my solution to the problem, and then the next guy took over the computer and coded up the solution for the next problem.
So 2 of us
I'm confused (Score:2)
How about identifying technical training needs of specific individuals and funding some decent training?
Re:I'm confused (Score:1)
Re:I'm confused (Score:2)
Programming is still part (black?) art. Portions of the skill set needed to properly write code are mutually exclusive with some accepted western social norms. Computers can't be bullied, bargained with, convinced or bluffed. A good programmer needs to be able to tell his or her boss that what they're asking for is impossible when it is. I don't think I
Book: Working With Emotional Intelligence (Score:4, Informative)
Its premise is that there are different emotional competencies, and that these competencies distinguish outstanding performers from the merely average. One of the points is that the technical skills required are merely the threshold -- you have to meet these requirements to get the job. How you manage yourself and your relationships with others is what makes your breaks you.
The studies mentioned indicate that the more technical the job -- the more rarified the subject matter -- the more these emotional competencies matter to job performance.
This isn't a self-help book. However, it does break these competencies down into several areas and discusses each one with research and anecdotes.
Most important, it has a chapter dedicated to what you should be looking for in training programs that purport to increase the emotional competency of the people being trained.
Seriously -- go to your public library and check it out. Just being aware of these factors gives you a different perspective on your day-to-day life.
Re:Book: Working With Emotional Intelligence (Score:2, Interesting)
You might try De Bono (Score:4, Interesting)
You could try running one of those courses I guess.
Puzzle Day (Score:4, Interesting)
My teams were 10 to 15 people, but two teams of 5 or 6 would probably work. Come up with some fun but HARD problems. Hard means that 5 people working for 12 hours might solve 5 out of 10 problems. Try to have a theme.
Puzzles come in all shapes and sizes. Cryptogram word-search puzzles are one example: take a word search puzzle, then replace all A's with G's, B's with T's, etc.
The best puzzles are layered: After solving the word search, the uncircled letters make up the phrase "fear of the great mole rat", and the final answer to the puzzle is "Zemmiphobia". Then all of the answers to all of the puzzles come together to solve one final puzzle...
Maybe this isn't your cup o' tea, but I sure found it fun...
Re:Teamwork != Innovation (Score:1)
Successful innovation requires 2 components. The innovative idea and the method by which that idea becomes a reality. The innovative people do not neccessarily have the experience or skills to organize the operational or logistic issues that involve bringing an idea into reality. Plus, if the idea is worthwhile, the logistical issues are going to require the participation of more than one person.
Look at teamroles (belbin) (Score:5, Informative)
The generic idea is that there are 8 or 9 roles that surface time and again in teams. You've got someone sprouting ideas like there's no tomorrow. You've got some finishers that want to get the job done.
Once you know what roles are available in your team, you can start some serious thinking. You might miss the 'bitching' type that rightfully shoots wrong ideas before they're implemented. You might have too many captains on one ship. Etc.
From what you say, it sounds like you're perhaps missing one or two roles in your team. It's very possible that one of the existing team members is perfectly capable of fulfilling that role (but doesn't know it or doesn't dare it). After such a session you at least know what's available and what's missing.
Good luck!
reinout
Drink Beer (Score:1)
Re:Drink Beer (Score:2)
When the cops come, run like scared schoolgirls. As the owner of the car you can choose not to press charge
Effective Communications (Score:4, Insightful)
The foundations of this:
It's so important for a development team to understand the general direction of what they are working on. That direction is outlined in the higher level project documentation, which comes from outside the team (with input from the architect, senior whatever, or someone else with a good idea of what is possible).
Now I know this sounds like a tirade on development processes and stuff (and I know many readers are thinking "I am not going to work like a civil servant"), the point is that a certain amount of process can bring certainty into a team. What takes certainty away is lack of communications - management overreacts to lack of visibility, with astounding detrimental effect
Fred (Score:2)
Pair Programming (Score:2)
If you pair promiscuously [c2.com] (i.e., change pairs many times a day) you'll transfer knowledge between many people.
Extreme Programming? (Score:1)
I think Extreme Programming [extremeprogramming.org] was intended in part to address this.
Can't say as I've actually been in an environment that tried it/used it.
Short of that, I would try to get your team involved with more technical workshops, conferences, courses, etc. Staying on top of the research is important, too.
Of course, both of those things seem to be highly budget sensitive, but if you are already going on work-weekends to do ro
Missing the Question? (Score:1)
I think the poster is looking for help improving team technical skills, team problem-solving skills, etc.
(I must be feeling pretty PC today...all the he/she business.
developing cricitcal thinking skills (Score:2, Insightful)
Few tips on interviewing for these skills: Have typical questions in your interview where you ask for previous experiences where they demonstrated their problem solving ability. Give them hard questions and see how they approach them and/or solve them. Pose hyporthetical situations and see their response.
Even now you can selectively hire & fire to first get a proper team with the proper mix of skills and
The team that drinks together... (Score:2)
Critical thinking (Score:1)
Maybe the people have enough critical thinking skills.
But when i think something is going wrong i dont tell. If i tell what the problem is people will say i think i know it better then the others and treat me as an impolite person. The people will eventually discover the problem themselves and then it will be solved.