The Lounge is rated PG. If you're about to post something you wouldn't want your
kid sister to read then don't post it. No flame wars, no abusive conduct, no programming
questions and please don't post ads.
Anything that is unrelated to elephants is irrelephant Anonymous - The problem with quotes on the internet is that you can never tell if they're genuine Winston Churchill, 1944 - I'd just like a chance to prove that money can't make me happy. Me, all the time
I consult to other companies for a living so I have an idea what's involved.
The answer is - it depends.
If it's a large app with a lot of extraneous parts scattered across different repositories, then it could be a fair amount of work. They probably want to also ensure that their not giving away any proprietary code(I wrote various pieces of code that I give them permission to use in a compiled form, but not the source). The rest is code I write specifically for them so they get the source.
Then they probably will also go through the code thoroughly before giving it up to make sure it's 'clean'.
Add to that their probably charging an hourly rate to have one or more developers/DB Admins do this.
Decrease the belief in God, and you increase the numbers of those who wish to play at being God by being “society’s supervisors,” who deny the existence of divine standards, but are very serious about imposing their own standards on society.-Neal A. Maxwell You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
Now that project is almost over we are asking for a source code + database
First off, bad on you for not asking up front, before anything is even written, for the keys to the repo. Haven't you guys been reviewing change logs to see if the billing seems reasonable for the work? Haven't you been verifying that you can build the code as the project develops? Haven't there been code reviews of the work?
Their estimate to deliver this will take 2 days and cost approx $3000.
Sounds to me like they haven't been using source control. Or if they have, the project is in shambles. But the price seems high, but not necessarily the timeframe. What are you paying these guys as an hourly rate?
and not sure about TFS
Having used TFS, it could very well take 2 days to get everything sync'd up, not to mention get it downloaded on your end!
Not much you can do about this now; the souroutsorceller  has you by the bollocks.
But, you can make sure you, or your company, never sign a contract that permits things like this to happen.
The principle recommended is: no milestone reached, no deliverable received and signed-off on = no payment, with final payment at least four times the amount of any milestone payment.
 yes, a portmanteau invented just for this post combining: "out" ... the OP is out money; "sour" ... this is not a "happy ending;" and a form of "ensorcell" (the archaic English verb with the sense of "casting a spell," or "bewitching") to indicate the possibility of bewitching seduction by the happy "outsiders" that allowed them achieve situational control and demand more money.
«In art as in science there is no delight without the detail ... Let me repeat that unless these are thoroughly understood and remembered, all “general ideas” (so easily acquired, so profitably resold) must necessarily remain but worn passports allowing their bearers short cuts from one area of ignorance to another.» Vladimir Nabokov, commentary on translation of “Eugene Onegin.”
I would think you are lucky to get away with a 3k bill. I know organisations that have been presented with a bill an order of magnitude bigger for the source of a project they did not nail down in a contract BEFORE starting.
I also seem to recall a thread here where the consultant was inquiring as to who should pay for the lawyer to write/vet the contract. The consensus was the company should pay that bill, ie YOU so 3k for that error is probably minimal.
Never underestimate the power of human stupidity
Not that the actual export would take that long, but rather to have a run through the code for "ugly" comments or indentations (in short: making it look "more professional") and also to make sure all is OK with the export (it compiles, it runs). Then I would make a clear and nice package and some release notes on how to setup the dev environment and to install and populate the database.
When I'm writing this, a week is even fast. Note that I assume they were not aware they should give the code up front.
In addition a consultancy firm (in Belgium) asks for anywhere between 450€ and 1500€ per man-day so if they put a few people on this 3000$ is not that much. I would even start to question if they are delivering quality product for that price.
With consultancy firms you're always in a fight and you're never sure what their actual work is. (unless they come work internal of course)
I know that as a consultant I would always insist that a clients work be developed in some sort of repository. SVN is simple, and using VSO and GITHUB makes it easy to share in the future.
Things to take away from this experience - always make delivery of code and data repositories part of the deliverables for the project, and indicate how it should be delivered (SVN or similar repository for code, database backup or generate script for database).
Probably the best way in the future to deal with this is to set up a git repository (GitHub or VSO work well), then let clone it. They can then easily push the work to you as part of the deliverables. And this lets you review and track the code that they produce.
I had a similar experience with a company I recently left. They had brought in an outsourcing company from India, and at least had set up a GitHub repository. Unfortunately it was the companies main repository, and the outsourcers were committing to it directly rather than to a clone, making things somewhat messy. But at least it was easy to track the work being done. Unfortunately before I came in the company was not managing the work being done, there were no clear requirements or specifications. It ended up that the developer "managing" this rejected the work, and the outsourcers would redo it in an seemingly endless cycle, all which was billed for. So I would suggest that any time you outsource something, that you have a very strong project manager overseeing everything, that the requirements are clearly defined, and that the work performed meets those requirements. Otherwise it is quite possible you will get billed for substandard work for things you didn't ask for.
[I have worked as a contractor/consultant for years, and know many other great contractors who are open and honest in what they do. But there are plenty also that only are concerned about billable hours...]
You think that's bad? I worked for a company where the consultant we were forced by the president of the company (my direct boss) to use was in another country and would send his code piece by piece via email or occasionally floppy disks and FedEx. Upon receiving the code we, usually myself or my #2, would have to rewrite it completely to make sure it worked without memory leaks or multi-threaded issues because it was so badly designed and written (without any comments or useful and meaningful documentation).
Any complaints from my team about the code in earshot of said president of the company resulted in instant dismissal. I managed to avoid this and my #2 quit for a better job. I was on an H1 visa at the time so I was effectively an indentured servant rather than the "Director of Software Development" my title declared.
Guess who turned out to be both my boss's gay lover and, wait for it... (we found this out much later after he had fled the country pursued by both the IRS and the FBI) love-child?
- I would love to change the world, but they won’t give me the source code.
Microsoft: When you ask me if I want to restart my machine and I say "no thanks: later is better" and then I'm in the middle of a bunch of complicated stuff with 20 windows open and stuff running, and then I turn away for a minute, please DO NOT RESTART MY BLOODY COMPUTER ON ME!
Seriously: would something like an idle check or time-since-last-keystroke before pulling the plug on everything be too much to ask?
If I'm not prompted for updates, I'll keep going forever without rebooting, but I want to be notified of updates as soon as they're available - turning off the update service would leave me in the dark.
I often find myself managing a lot of systems, with users I can't vouch for. So I tend to keep up with updates, even though the likelihood that I need them right now is pretty low. However, that's not the case with for the systems I look after. If any of those machines get owned, at least I know it's not going to be through some exploit that was already fixed days/weeks/months ago.
When you ask me if I want to restart my machine and I say "no thanks: later is better"
You do realise that they only give you this 'choice' because somebody somewhere wrote almost exactly the same post as this eons ago, right? They don't actually want you to get above yourself and actually take it. Would have thought a man of your standing would have known that by now!