+ 66
Programming Norms - Working in a team.
Teamwork is a basic thing. Most of us know how to get along with each other, but when it comes to a team of programmers, everyone of us have our different coding styles and naming conventions. What does it take for a group of programmers to be able to work on the same piece of code without conflicting code sections which will cause underlying and implicit errors? Is it compulsory for strict rules to be enforced? Would these rules, in turn, incur a negative effect of restricting programmer potential?
19 Answers
+ 59
tl;dr Do pair programming, use code style checkers, rules benefit the group as a whole
When you first form a team, you should agree on some ground rules as well as your team's coding standards. A good way to solve disputes is to first appoint a leader, who has the final say in every decision.
You could use some special software which checks your code style like ReSharper.
Pair programming can also help. One person codes for a bit and the second person reviews. Then they switch roles.
If you split your program into distinct parts (e.g. Business Logic, User Interface), you could have separate sub-teams which may have their own style.
Rules should be enforced. If programmer X works on a piece of code with a unique style and then leaves the team, no one else will be able to understand the code without a lot of effort. (Documentation would also help here too)
It will restrict individual potential slightly, but the positive productivity of the group outweighs that.
(Oops, I wrote too much)
+ 36
@Hatsy but we have to know as 9 women can't make baby in one month, so putting more programmers won't make it fast and better. As you, @Jafca and @Luka said making rule and leader may help in any project.
+ 31
I think everything that's said so far is absolutely true...
That needs a lot of small things, like a code style guide, a tool, which can check if everyone follows the style guide, a tool for versioning to merge conflicting changes and most important for me: frequently code reviews (also for having all team members at one level of knowledge). I like the code reviews best, because there's always someone who knows a better way, when your kind of 'code blind' ^^
+ 20
Collab skills:
validation....ability to affirm others' contributions..can be a nod or "good" etc. doesnt have to be long
listening...ability to actively listen to their thoughts/comments
positive attitude...frame everything with expectation of reaching goal
own your s.....when you make a mistake or have a weakness acknowledge it
frame/define the problems so all can see
seek/share resources for all team members
+ 15
@daevaunn
Post a new question and describe your problem in detail.
+ 15
I've been thinking about this a lot...thank you for your well framed question and careful answers Hatsy, Tashi, Luka, Jafca.
+ 11
All the great in a software firm or a firm of software developers always had one thing in common..... That was a Awesome hardworking supportive die hard Team
+ 8
When there is a team leader, it will be more easier to follow the rules.
+ 8
divide workload based on team mates strength and specialties. Not everyone is good at everything but all are good at something so use that.
+ 8
Pair programming to understand each other's styles. in larger teams, cross pairing.
+ 8
Here is were modularity comes into the picture. The whole code is split into small modules enabling all the team members to work on the modules assigned to the them by their team leader. This helps in finishing big projects faster.
+ 8
Whenever differences are involved in a single cause, I believe standardization will ensure most probable conflicts are avoided, and a team mindset is adopted. Rules are necessary to mark a scope of freedom whilst strictly preventing unnecessary or explicitly unwanted occurrences. I don't think potential is affected as it remains a discrete quality, but I think coding habits are basically what's affected in teamplay. Also having the big picture clearly understood helps know exactly what the endgame is and causes the team to prospect and build on each others ideas toward the common endgame.
+ 8
I heard that pair programing can be usefull if programers are switch every 10-15 minuts. If one in pair programing too long another one start to think vary diferent things than code. Do You agree?
+ 7
Rules, Just talk to each other and place the basics, take it in mind and start to code, don't forget take a look the code searching some bad things...
+ 6
Modularization, I think.
+ 3
groupwork
+ 2
Hi guys.... I'm new here...
What are the thing that I require before starting...?
+ 2
Team work is best. Because human mentality is good in finding others errors so, when we work in team then we can easily find our errors. And when we know the errors we can solve them.
+ 1
together we stand stronger💪🏼