In low level courses, group projects are not only a terrible teaching tool, but are also a waste of student time. By forcing students to move around an already busy schedule and work with others that have varying levels of commitment, the projects become more hassle than they are worth and a poor example of group work in a company.
A group of four people will have four different schedules to work around. The result of those four schedules is likely to result in about one day per week that the group can meet, and the odds of it being during normal working hours are low. This time issue is critical, and to fix it, there should be enough class time dedicated to complete a bulk of the project.
The trouble is that this alternative is not viable in an introductory course since its purpose is to teach the fundamentals. The course will need the entire semester to accomplish this. So the next alternative would be to move the group work to a higher level course that can afford to sacrifice lecture time.
If group projects were postponed until higher level courses that could accommodate them, similar to senior design projects in engineering schools, then the project would become an efficient teaching tool. Students would have the baseline knowledge needed to complete the project and thus not need as much class time dedicated to lectures. That means the students now have a scheduled slot available to meet multiple times a week: class time.
There is also the commitment level to take into consideration when placing students into groups during introductory courses. Some of the students are in the class because they want to be, but others will be there simply for the required credits. This means that, when paired together, some students may not get as much as they want out of the project.
If group projects were moved to higher level courses, the class would be filled with a much larger percentage of students that have a interest in the material. This makes the group project not only more enjoyable, but also more realistic. That's an objective that group projects in introductory courses fall short of.
One of the argument for group projects, particularly those that pair you up randomly, is that they are preparing you for some real world scenario where you will be forced to work with someone you may not get along with. Still, many companies are trying harder than ever to create teams of people that work seamlessly together.
Of course, the objective may not always mirror reality, so there may be those that are despised at the workplace. However, if the manager is doing their job then they will know which people they should and should not put on projects together.
Additionally, teamwork in the workplace usually comes with its own benefits. If there is something an employee needs from another department, they’re going to go to the person they know will get it done. The positive attitude of that person is going to spread and the manager will award them praise and maybe even a bonus.
The idea that group projects prepare students for real world work further solidifies that they should be done during class time. Companies expect the bulk of their employees, whom are paid hourly, to work during normal working hours.
If the company needs a team to work overtime, around their household schedule, then they will compensate accordingly. So if the intent of group projects is to mimic a real world scenario, the instructor should compensate the students, such as putting bonus points to their grade.