I have had mixed success with groups. When I allow students toform their own groups they choose their friends and unvariably there are one or more students that are not picked. I find it far more conducive to group dynamics to assign group members so that the weak are put with the strong so that all students participate and learn.
But this can also be disasterous. I had one group where they allowed the "stronger" student to write the program for a microcomputer for their final project. He went onto the internet and copied the program. This caused his dismissal adn it also hurt the final grade for every member of the group since the project was not actually completed. I did make allowances, but since no one could complete their part of the project the grades were affected.
And then there was one group who divided the tasks. And one individual decided that another student was not doing the quality of work he expected of his fellow students, so he told her to stop and he would do her part. Unfortunately, this was done outside of teh classroom and I had no idea it was happening until after the project was completed and handed in.