On a software development team, is it better to have people work on separate modules or on the same module?
When developing software, it naturally falls out into functional pieces. Is it better to have each team member responsible for a functional piece or to have multiple team members working on the same piece?
- Anonymous1 decade agoFavorite Answer
In my experience of over 15 years of software development, I have found that it is almost always better to have developers each work on separate modules, rather than have them work together on the same module.
Some of the reasons for this are:
1) It is easier to integrate the various modules and get them working together than to integrate pieces of code from different developers into each module.
2) Developers work better alone, because they often feel that they "own" the part of the code that they are working on . Remember the old analogy that managing a group of software developers is like herding cats? Don't fight it, use it to your advantage. The less your developers step on each others code, the happier and more efficient they will be.
3. Developers also work better alone, because they each have their own individual approach to solving a given problem. Code reviews are a good way to get the opinion of other developers on a particular approach, but there are often multiple ways to solve a problem that are equally acceptable. Time spent modifying code to reconcile differing code practices is often wasted time, in that it does not actually improve the code, it just makes it work correctly. Assigning separate modules to developers will reduce the amount of time spent on these necessary but time-wasting activities.
That being said, it is very important to establish some basic coding standards that the team adheres to, if you want the code to be easy to maintain and modify in the future. Define the interfaces among the modules as clearly and specifically as possible and immediately communicate any changes. Code reviews are also very important. You always want to be sure that all of the cats you are herding are headed in the same direction!
- 1 decade ago
Depends on your process and the type of software being developed. But usually, parallel design is quicker, but you need a way to piece the elements together efficiently. Rational has a suite for this, and I believe there is some freeware that will also do this.
The more complex the module, the more necessary division becomes. For a simple mathematical process, one person can probably do it, for a sophisticated algorithm to model traffic density in an urban subdivision.. This would need a team.
- nanceyLv 44 years ago
As a Mets fan i think of that David Wright might make a large captain. he's a chief on the sector and interior the clubhouse. he's an magnificent hitter and intensely a number of the Mets gamers seem as much as him. the different gamers might pay attention to him. i think of that Jason Varitek is a huge captain for the crimson Sox. Derek Jeter is likewise a large captain for the Yankees. I agree that catchers make the perfect captains. as long as they seem to be a veteran however. If there's a rookie catcher then no they might desire to no longer be a captain. The "C" might desire to continually be on a veterans jersey. no count if it relatively is a catcher or no longer. In my ideas catchers are the neatest gamers on the gang. they in many circumstances bypass directly to alter into large important league managers. (ex. Joe Torre, Joe Girardi)
- 1 decade ago
In my experience, if you will be having multiple people working on a single functional "piece", then you will need one "lead" or "coordinator" for each piece to ensure consistency of design and function, and to resolve any disagreements.
- How do you think about the answers? You can sign in to vote the answer.
- ChicLv 61 decade ago
IBM has people working on separate modules. I believe they do this so that no one person knows all the code, and therefore cannot run off with all the information.
- 1 decade ago
I think work on separate modules
At my old company we had AWESOME communication, therefore it was easy for me to work on a separate piece of the project because I knew exactly how it was going to interact with my co-workers sections.
- 1 decade ago
let me answer by giving an analogy--a basketball team. everybody has his own different role, and they are well-defined. but all, including the coach, has one and only one goal, to win the game. but no one player, no matter how good, can win a game by himself. each one plays his position (guard, forward, center) to get the ball to the basket.
so, make ur software development team play basketball from time to time :))