Organizing code in a 2 man team

I’ve been working with a buddy of mine on a school project. We forecast it’ll take ~2 months, so it isn’t a small scale project at all. Communication and splitting the work effectively has been a NIGHTMARE though.

He doesn’t have a phone, which makes communicating outside of the one 1 hour class we have together difficult.

Basically what’s been happening is we end up working on the exact same thing, or we write code for components that doesn’t work with components the other person has written. Because of this, we spend about 20 or 30 minutes each day in class making both copies of our code work together, and figuring out what stays and what goes. It’s horrible for efficiency.

I looked into github but it looks so ridiculously overkill for this 2 man team. Also I was unable to find github tutorials for specifically what I’m looking to do (They’re all too technical for someone with 0 git expeience or tackle things unrelated to my needs).

How can we organize this project more effectively and efficiently?

7

There are a couple of things here that need to be addressed.

First, there is the two code bases. You’ve got your code. Your friend has his code. Wen you do a merge (somehow) you’re doing it without the ability to see the changes that did it before.

You don’t need github to do this. You could have a master git repo on a thumb drive, and then merge to and from that. Github makes it easier to do this (and harder to lose it). Working from the thumb drive though, you wouldn’t have as complete a set of tutorials on how to use it or the other things that github has that are quite nice.

Next, there are the issues. You don’t have a clear division of labor and tracking of this labor:

  • Who is working on what?
  • What changes fix what?

The github issue tracker within github allows you to assign who is working on a given issue and identify what state it is in. It also hooks up nicely if you tag the commits with the issue number, which then shows back in the issue tracker part of Github. This makes it clear when you later want to go back and see “what did I change to make issue #5 work?” – you can go to issue 5 and see the commits.

This doesn’t prevent anyone from actually working on anything though. You or your friend could disregard the issue tracker and work on whatever. Working with other people takes discipline – properly communicating what you are doing, taking tasks, finishing tasks, and saying that they are done and then moving the changes into a place where other people on the project can make use of them.

If you, or your coworker are not disciplined to do this you will have problems.

Git or any VCS will not fix the problem of “basically what’s been happening is we end up working on the exact same thing, or we write code for components that doesn’t work with components the other person has written” on its own. You could do that today – write out all the specs on paper and have a stack of index cards with all the things that need to be done. Divvy up the index cards and work on them according to the written spec. No git involved in that process at all. An online version control system makes it easier to do this, if you are willing to work with it. But, if you aren’t going to take the steps to actually be disciplined in your work habits in the first place, its just going to be extra tedious work.

As to overkill? Nope. Its not overkill. Its a very useful tool set that has a lot of features that you will use some day. There are simpler version control systems (I used RCS back in the day and it worked fine for my college projects with partners (drunken checkins are easier to revert than begging the lab staff for a restore from the nightly backup). Aside from the cloud and server nature of git, it had just a steep of a learning curve as RCS.

Note that many IDEs today have git support built in that make using it much easier. You’ve got this tagged with netbeans – consider reading Using Git Support in NetBeans IDE.

2

Your question is about code organization (as specified in the title) and many here seem to be talking about VCSs, that might not solve your problem at all. You do not seem to need version control, your problem seems to be something else.

Basically what’s been happening is we end up working on the exact same
thing, or we write code for components that doesn’t work with
components the other person has written.

If you got to talk to each other, you could decide what each of you will do, right? You are stepping on each other’s toes by, as you said, working on the exact same thing.

I looked into github but it looks so ridiculously overkill for this 2
man team. Also I was unable to find github tutorials for specifically
what I’m looking to do (They’re all too technical for someone with 0
git expeience or tackle things unrelated to my needs).

I mean no offence. But if you fail to find GH tutorials, you will fail to find tutorials for anything. Give a try to Pro Git (or any introductory Git book). It may be overkill, but, in the end, it stills kill it. Plus, you are likely going to have to learn at least one VCS someday.

How can we organize this project more effectively and efficiently?

What about organizing it? No VCS will be able to merge what you are doing if you two are doing the exact same thing every day.

As you said, it is not a small scale project, so two things must be clear:

  1. GitHub (or any VCS) is not overkill.
  2. You two are likely to have different things to implement / refactor / work on.

He does not have a phone? Does he have internet access? Can he create an e-mail account? Use any messaging service?

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật