Developing Software in Groups
CS 412/413, Spring 2001
Andrew Myers

Like most medium to large software projects, compilers are generally developed by groups of people of about the size of your project group. In fact, this size is nearly optimal for developing such projects -- if the group functions effectively. One of the goals of this class is to give you experience doing real software development; an important part of this experience is learning how to make a small group work.

I thought it might be helpful to share a few lessons about working in groups that I have learned during a number of group projects in industry and academia. A group project like this will only be successful if every member of the group is doing useful work. The projects in this course are very difficult if not impossible for a single person to finish in the time allotted. So your goal is to organize the project development so that everyone is helping to make the project happen. The strategies suggested below all are largely common sense, but do think about whether you could improve your development process by applying them. I recommend the classic The Mythical Man-Month, by Fred Brooks: a great source of ideas for and cautionary tales about group projects. Another nice article is How Software Doesn't Work, by Alan Joch.