I've been working as part of my service company for a client (ClientA) for a year now on building a platform.

A few weeks ago another client (clientB) asked me for a quote for building a similar product. I said to clientB that we have been working on a similar product for a client and that we have a mature platform that they may use without all the hassles of doing it from scratch. So I sugested that they partner with my other client to use his platform instead.

Unfortunately, the negotiation didn't went well because of many factors:

  1. ClientA don't want to have a partnership with ClientB but instead want to keep owing the platform and provide it to clientB as a SAAS service: which I can understand because of the investment already made.
  2. The platform doesn't have all the features that ClientB wants, so they need to invest money in developing those. However they are reluctant to invest such money in a platform they don't own. They are planning to sell it to thousands of their own clients, so basing their whole business on a product they don't have control over is not a good move for them.

I've done my best to make them agree, but seems like they can't because of each one wanting to have control on the platform.

Now clientB wants, as he already wanted at first, my company to build a similar platform and wants my company to partner in this. We'll share any ROI with them.

It is a tough decision for me to take because I understand that we can't as a company keep working on those two platforms at the same time.

The first version of the platform was obtained from a freelance website under the "work for hire" clause, so the code belongs to clientA. So we cannot reuse any part of that work.

As a company manager, I'm in a dilemma because I suspect that clientA will take that move as an unfair one.

What are your thoughts on that matter?

Edit: There is no signed NDA and anyway would not have signed an NDA with a non competing clause.

  • 7
    Sounds like something that can be come very expensive if you breach one or more contracts.
    – user1249
    May 7, 2011 at 8:54
  • 3
    Check with a lawyer, but if you did the work under a work for hire clause, you will certainly not be allowed to reuse the code. What knowledge you gained in doing so is yours to reuse. If you are going to accommodate ClientB , I would make very sure that all copies of ClientA's source are not accesible in any way, shape or form to the team that will work for ClientB and that no-one works for both clients. If you don't it will become incredibly more difficult to prove there was no breach of contract with ClientA if/when ClientA suspects their code has been illegally re-used and sues you. May 7, 2011 at 10:41
  • @Marjan Venema: I totally agree with the assessment. But sticking these artificial divides into a company and ALSO then proving they exists are really hard. The lawyer bit is going to be absolutely the most important part of this equation. May 7, 2011 at 11:19
  • I don't think it is wise to keep the same project at the same time in the company. The problem is that i've talked alot of time with local lawyers and i each time they proven to not know much about IT laws. This is why i also hope to have some advice from maybe a lawyer here.
    – clide313
    May 7, 2011 at 11:35
  • 1
    @Martin: true. The only realistic way would be to delete all ClientA's code from all the company's assets. If they continue to help maintain their version of the platform, they have to do it at the client's premises, on their computers. That may be difficult as I take it that they are in different countries, though they could perhaps involve a third party in the same country as clide313 that could provide the "off-site"-ness for work on ClientA's code. No matter what though, unless there is a clean break with ClientA or not taking on ClientB, they will be walking on egg-shells. May 7, 2011 at 12:24

5 Answers 5


If you're concerned about the law, ask a lawyer. Ethically, if both ClientA and ClientB know what you're doing, and agree for you to do it, then it's fine. But your primary loyalty must be to your existing client. If ClientA says "no", then you tell ClientB "Sorry, can not" (CC to ClientA if possible).


I have been in similar situations in my company. You need to think in your own interests. If both clients are paying you, then why not develop two solutions. Of course you must not share any code between the two. Try to involve different developers, but same project manager, so that experience from one project can help you delver other more efficiently.

If either of your client gets frustrated about you working with other, you might need to decide, if you want business from both, or it's safer to avoid the trouble and refuse to the client which you haven't started developing for.

My advice is - look out for yourself. Your clients will figure out their problems on their own. Don't dig your grave by sharing code between both.

If you are sharing profit with one of those two, then simply refuse working with other.

  • Thanks for the answer. Having two separate team is not a workable solution for us as we have a small team. we will share ownership with clientB so this offer sound more interesting than just working for clientA as actualy with him deciding where to take the pltform without any roadmap. My main concern now is how to end up smoothly the relationship with clientA without hurting him too much. We've been working together on the project for long time now, moreover my team knows the codebase very well an i think that it will be hard for him to find another team to takeover the project smoothly.
    – clide313
    May 8, 2011 at 7:23
  • @clide, frankly, that's his problem. I would be surprised if he haven't considered this possibility yet. Offer him something in terms of training new team or leaving documentation. What I learned is if I put myself into position of my clients, I end up being a fool without money and 500% over-spend on the budget.
    – romaninsh
    May 8, 2011 at 14:26

I'm pretty sure that as long as you haven't signed any no-competition agreements or NDAs, you're free to do whatever you want. If there is an NDA, it will probably be a bit difficult to stick to, so you might have to turn the other client down.

Making two versions of essentially the same thing will probably end up being boring, but if you feel up to it, why not?

Note that IANAL (and you forgot to mention where in the world you are - that might make a difference), if you want to be really sure, ask a lawyer.

we can't as a company keep working on those two plateforms at the same time.

Why not? Two separate code bases, two different development teams that don't talk to each other, if you're concerned about accidental cross-pollination


Perhaps client A is willing to agree to sell the rights to reuse the source code on a one time copy basis. It would basically allow you to work on a fork for client B.

Client A could potentially benefit also for any work you do on Client B's system.

Without any agreement client B's system may end up being quite a bit more powerful, due to past experiences from working on client A's system.

If you are looking to specialize in client's domain you should focus on the commodity aspect (that what both parties will have anyhow without it causing a competitive advantage) and take ownership of the code. You could consider selling client B a product, not a project. You'd need to invest in it yourself though.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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