Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm doing my first group project in a class where most quarters 40% of the students have failed. I believe the reason for this is the poor quality of teaching in the class. For example, the instructor did not know that scriplets in JSP was bad practice. (I learned JSP this week and I know that.) He didn't know that Swing GUIs were supposed to go on the EDT. He didn't know that static imports were bad practice. I could go on.

The project is to design a web application for a quiz website. There is a lot of extra credit available, and it is possible to get 200%. This is my first group project. I am worried about the failure of most of my peers, and I want to avoid it.

What obstacles might I face when working on a project like this and how can I overcome them?

share|improve this question
7  
Follow my suggestion Eva; you'll get upvotes: Describe the problem you're facing on your group project, don't just ask for a list of things. Tell us what sucks about it and then ask a specific question about it. Also, make sure your question is about programming. Right now, you could be talking about an art project. Make sure you add specifics so that no one can question that it's a problem that only happens on programming group projects. Do this, and you'll get upvotes. Good luck! :) –  jmort253 Aug 1 '12 at 7:02
1  
My problem is that my poorly taught class does not give students the tools to succeed in group projects and overcome the obstacles they face. How do I rework my question so that it asks about that problem? –  Eva Aug 1 '12 at 7:14
1  
Thank you. I have edited the question, and I hope that it is better now. –  Eva Aug 1 '12 at 7:32
3  
Eva, if you still want my feedback, ask for solutions to your problem ;) (Replace "What are the biggest obstacles to working on a group programming project?" with something like "What can I do to make sure that I'm successful when working in group programming projects under these conditions?") Make overcoming the obstacles the focal point of your question. Good luck on your project! I hope it works out for you :) –  jmort253 Aug 1 '12 at 7:59
1  
Learn what CYA stands for, and learn to document your attempt at work and your teammates lack of work. CYA is a real thing in the real world. –  Jarrod Roberson Aug 1 '12 at 20:49
show 3 more comments

closed as not constructive by thorsten müller, jmort253, Yusubov, gnat, Walter Aug 1 '12 at 12:29

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

3 Answers

My biggest problem in University was team members who did little or no work. Some through laziness, others through being too busy with other work, others through manipulation and knowing that they could get away with it. Through trial and error, these were the strategies that I found to work in getting them to participate:

  • Project Manage them. When everyone divvies up the work, give each piece a deadline and agree to have status updates. Be sure to ask if the person needs extra help, early and often. This also includes agreeing to dedicate a certain number of hours to the project, and tracking (hopefully honestly) how much time each member spends.

  • Give them the "fun bit". If they aren't going to enjoy the work, they won't do it. If it's going to help my grade by writing all of the boilerplate and output formatting and documentation, that's fine. I'll at least be familiar with the code when the slacker ends up partially completing the fun bit and I have to step in to help.

  • If it comes down to it, threaten (and follow through) on arbitration with the lecturer / tutor. Document your hours, be honest, and have a consistent story with the other (participating) team members. Most of the time when the slacker gets 1-on-1 with the person in charge, they'll admit their laziness and negotiate a lower grade for themselves, leaving you to be judged on the merit of your work.

share|improve this answer
    
1+ for the notion of team members who did little or no work. I guess the biggest thing I've learned from working in groups regardless of university setting or not is: It is always a people problem. –  Spoike Aug 1 '12 at 7:41
1  
I'd add that you may run into the "Who put you in charge?" Problem. In which case offer them the "In charge" position but demand that they fulfill the requirements of it. Splitting up work, chasing people etc. You may also want to keep notes of meetings, emails etc should you need to go into arbitration. –  Jaydee Aug 1 '12 at 8:18
add comment

Some of the things to look for to avoid risk of failure are:

  • Team should be composed of people who can communicate and accept a leader and ready to work on tasks as assigned by the leader. Team leader to clarify roles and responsibilities. Team members ether to accept or reject and if they accept, they should commit.

  • Leader must be able to assign tasks and follow through.

  • Team competency in the technology must be adequate. Otherwise, team leader must factor in training or downsize the scope or expectations.

  • The requirements must be clear and expectations must be reasonable, e.g. fancy GUI may be great but can you afford it? This is a PM call. Aim for simplicity as much as you can.

  • The team must have an expert resource to turn to resolve tech. issues that might arise.

  • Project must be based on a design, even a simple high level one where database is stable and UI style is determined. You want to avoid massive changes because of time limitations.

  • Team leader must measure progress and document the effort, obstacles, etc. This is part of the deliverable. Have defined milestones and gather the team members and talk face to face about the situation.

  • Team must be willing to go the extra "10 miles" to achieve success.

  • Team must be motivated.

  • Focus on main functionality first, deliver it, then work on nice-to-haves. Prioritize deliverable. Understand how marks are allocated.

Never mind if the instructor is not as competent, as long as you have other sources of knowledge.

share|improve this answer
add comment

I like @jozzas answer overall, but I believe I can add a little to it. The wrong people tend to end up doing the work. The smart people who know what's going on tend to let the others do the work. The dumb people in the group tend to like to hoard the majority of the project. They also tend to mangle it badly enough that the average people in the group throw up their hands in frustration and give up. So, the project ends up being the worst case as far as quality goes. UNLESS, someone steps up and manages the workload...

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.