Lately we've been getting into a bit of co-development, and I don't think I'm making recommendations as I should for doing this efficiently. I've been working with third-party contractors hired by the client, the client's developers (and of course my own internal developers). Is it ridiculous to think these scenarios can even work out long term, and if so, what pitfalls do I need to be aware of?
views:
43answers:
4Biggest Pitfall: Having no idea who has what responsibility.
It is likely that there are going to be a lot of toes stepped on unless everyone gets together and hashes out a roadmap that details who is in charge of what, when, and where. Proper delegation of the responsibilities is going to be crucial in a project with that many cooks in the kitchen.
It can only work out if there's a clear line of responsibility & leadership. Apart from the client itself, is your firm in charge, overseeing the 3rd-party guys? Vice versa?
If there's no clear "decider", it's gonna be hell.
Frequent updates. You should try to get everyone together every two to three weeks to make sure your code works together, otherwise you'll spend weeks at the end trying to mash it all into a working program.
The considerations are:
- Consistency. Agree on language to use, code styles, documentation format in advance
- Ease of collaboration. Set up SVN or GIT to ensure all changes are logged and accountable
- Planning. Nobody should be writting any code until you've throughly mapped out what the application does.
- Communication. Make sure communication is well organised. You don't want different things being said to different people. Set up an email list or forum so people are kept in the loop.
- Changes. How will changes and features be added.
- Responsibility. Where do your responsibilities end and the contractors start. If the contractor sends data your part can't handle is it your responsibility to correct the data or theirs? This is the biggest problem because it can be hard to foresee these things. Especially do not assume the lines are obvious as often responsibilities overlap. Define the limits of your responsibilities clearly and early.