I'm in the middle of developing an asp.net webforms application to a customer, i've been using DataAccess and BusinessLogic layers in a folder structure within my application, in which my DataAccess classes use ordinary SQL queries to access the data. Then for certain reasons, for the remaining part of the project, I've decided to go for the entity framework and create separate DataAccess and Business Logic layer projects to retrieve the data.

I've been planning to move the whole folder structure of the old DataAccess and Business Logic layer to the newly created layer projects and use entity framework instead.

But at this moment, my client has decided to terminate the project and he would like to get the source code. I'm confused about what to deliver to him, since I haven't still adjusted my code to use entity framework only, so I would describe my code at this moment as "messy".

Should I just give him the code this way ? Or should I move all the old folder structure to the newly created projects and use entity framework instead, knowing that this would take almost 3 or 4 work days, which i doubt my boss would accept. Is there an intermediate solution ?

closed as primarily opinion-based by user22815, user53019, user40980 Nov 12 '15 at 3:00

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Do you usually hide 3-4 days of work from your boss? – JeffO Aug 26 '15 at 11:06
  • 5
    Your client has canceled the project. Don't do any more work. If you've been paid for the work you have already done, deliver what you have in whatever state it is in to your client. If you haven't been paid for that work, don't even do that. When projects are canceled and the work to date is collected and archived, it's inevitable that the result is an incomplete, not very pretty, and somewhat inconsistent piece of work. – David Hammen Aug 26 '15 at 11:48
  • Related reading: Terminating a freelance contract before completion. I also recommend searching for similar questions as there are many on this site already. – user22815 Aug 26 '15 at 21:12

Explain, in detail, in terms your boss can understand, why, in your opinion this should be done. Explain also the testing that would need to be done to make sure it really works. Explain why spending the money / taking the time would make sense for your boss. Remember that software changes should be justifiable to the business in terms they can understand and then they can make the decision about whether to spend money that way. A "good thing, a good idea, a 'should be done'" need to come from the business, NOT just from your sense of "the right thing to do". The right thing to do includes persuading the business that they should take this time and spend that money. You should explain the positive and negative consequences of doing / not doing it. The more impartially you are able to do this the more believable you will be.

I question your estimate of 3-4 days. Does that include testing? qa? documentation? Most project where I have felt there is 3-4 days of work have turned out in the end to be 3-4 weeks. It's always assumed that this is an anomaly due to the business, the people, the project, the software, the infrastructure, the whatever. After 30 years of doing this I've got to know that there are ALWAYS reasons why it takes much longer than anticipated.


The project is like the parrot - dead. So you will not get paid for working on it, so you zip it all up and deliver it as-is, nasties, bugs and everything.

You could add a quick readme if you want to salvage some professional pride explaining the intended migration path, but I wouldn't even attempt to fix up any more code. Worst case is that you deliver something that does not work like the customer's existing drops and that will only make them be very concerned that they didn't get the full release of source code (I assume they may have run pre-releases so far, and maybe that they will develop it further in-house)

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