I am currently doing my 1st accademic project where we have to work in groups of 4 to develop an application (java ...). Anyways, how might work be assigned so that there is less dependencies on each other and we can work separately instead of waiting on one another?

I suggested 1 person develop 1 layer: Model, View, Controller, Data Access. I am working on Data Access but I find I need Model classes: For example

My EventsDataAccess has a findEventByName(String name) that returns an Event, which is developed by another person. How should I proceed? Here Event is a very small class so it shouldn't take long, but suppose its big, it might be a long wait?

How is work usually split up for developers in a small to medium sized team? Its so much easier to work in say a very small familiar team with, say 2 persons only


I applaud your use of MVC architecture. This makes it easy to assign each member of your group to develop a different layer of the application. You still need to all meet together to discuss what belongs in each layer, but it's a good start. Explicitly defining the interface (i.e. interaction) between the different layers will make everyone's individual development easier.

In order to collaborate effectively, make sure you are all using source control. I cannot stress this enough. This way you will all be able to see each other's work and be up-to-date on each other's changes.

As far as individual development goes, you could always fake the objects you aren't responsible for developing so that you don't get stuck waiting on someone else. Define a simple interface you can use temporarily or if you've already defined your interfaces (as mentioned earlier) you can use these instead. Your fake objects implement these interfaces in a simple way to give you something to work with without having to fully implement the real objects that are someone else's responsibility.

Good luck!

| improve this answer | |
  • Yep. First work together to agree on an interface between each layer and then break off to work on each layer. Or you could split the tasks vertically and have more SOA style and give a service or set of services to each team member. You'd still ned to agree on a contract first though. Programme to an abstraction :) – Rob Gray Feb 22 '12 at 4:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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