3

My team has to take over a project from an external company. They've provided the last state of trunk to us as a zip file and are trying to convince us, to accept this as a complete delivery of their development.

I strongly object this, as I consider source code as the following:

code = history of single commits + project structure (read branches, tags) + documentation (as much as there is)

In other words I deem this as a very incomplete delivery of a project, that would would do nothing but making future development more error prone. Needless to say, we cannot rely on support by the former developers to questions that arise because of legacy code.

I'm aware this question could be considered somewhat opinion based, but maybe it is still possible to find hard facts that define source code and when it can be considered complete?

Is there any literature that I can cite on that topic?

  • (Some years ago...) Third Party sent their code to us. They had removed all comments from it. But their comment removal tool had a "feature": there were still empty lines where previously was a comment... – Bernhard Hiller May 19 '17 at 7:09
  • 1
    Any literature won't change their point I think.Check with their client, if it's not enough check their obligations and get the thing to your legal people in your company if as stated in the papers this can mean they are legally enforced to give you the history, documentation and so on. – Walfrat May 19 '17 at 14:51
10

You're being offered a release with source. What you're asking for is the source code repository.

No modern developer would want to be without the history in the repository.

The question is, what is it worth to you? Have you looked at the contents of the zip? Have they left you a horrible mess you'd be better off without anyway? Is it in a usable state? Does it even compile?

You haven't explained why they're reluctant to give you any more. I'd hate to think they simply didn't use source control but I've heard worse stories.

If you start arguing about the definition of source code or claim to be holding them to the contract things will just go down hill. You need to understand why they're dragging their feet on this. You might be asking for something they don't have or something that will embarrass them or something they never thought you'd want or something they simply don't understand how to give you. A little diplomacy might solve this mystery and give you a better idea how to proceed.

You have your problems. They have theirs. Show them you care about theirs and they might decide to care about yours. Never burn your bridges with people who've touched the code before. You never know when a phone call might save you weeks of work.

  • OP also asked for documentation, not simply just the commit history. – SmallChess May 19 '17 at 4:21
  • @SmallChess yes but that's a detail that this same approach will sort out. – candied_orange May 19 '17 at 4:23
5

It's all about what you have in the contract. If the contract writes the delivery must include documentation, revision history then it must be delivered. Otherwise, you might not have legal grounds to ask for more than just the source code.

Writing documentation takes time, and should not be part of delivery unless it's agreed. Since the company is an external entity, it doesn't have responsibility to deliver you internal secrets such as revision commits unless it's specified in the contract.

The deliverables are whatever specified in the contract. You could ask for more (the best they could do is just a NO), but I'm not so sure it'll work without more payment.

  • 3
    Absolutely, if it's not in the contract then they could deliver the source code printed on paper. – Adam R May 19 '17 at 4:13
2

The history really doesn't give you anything worth arguing over. Are you ever going to roll back to an earlier version? Do you want to see which member of the external team introduced a bug?

Similarly with the other project meta data, Even if you literally had the entire thing with test results etc you wont have the internal knowledge required to quickly read, understand and make use of it.

I would ask for:

  • A compiled working version of the software (Or admission that its unfinished)

  • Complete source code for that version (or latest) and instructions on how to compile.

  • List of, copies of and licences for all third party components used.

  • All assets such as data/artwork etc in both editable and in use formats

  • Any and all documentation of architecture, code, apis and interfaces and user manuals that has been produced or is in production.

  • Any databases used

  • 2
    I agree. Besides being useless, I do not think the version control history is any of the receiver's business. I would even argue it would violate basic privacy principles if it were provided. It would be a bit like including employee appraisals or project reports in the delivery. It should be a snapshot of the product, not the company's internal private history. What would be useful though is a consultancy period, a developer who is familiar with the product providing assistance for a couple of weeks, helping to set up the new version control and/or delivery system. – Martin Maat May 19 '17 at 11:49
  • yes, you can totally understand why the third party might not want to give it away – Ewan May 19 '17 at 11:57
0

If it is not specified in the contract, it isn't required of them.

Since you are taking over the project, there isn't much incentive for the management of the external company to provide the source code repository, they won't be getting any more money for it.

The developers might feel differently but usually they don't have a say on how this should be done.

By taking over the project, I assume you will continue development or maintenance of the said project. You might be able to make some progress talking to whoever is paying you (the "customer") to take over the codes and/or the person paying the external company to perform the development and hand over the codes to you.

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.