I've been working as part of my service company for a client (ClientA) for a year now on building a plateform.
A few weeks ago another client (clientB) asked me for a quote for building a similar product. I said to the client 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 hashles of doing it from scratch. So i sugested that they partner with my other client to use his plateform instead.
Unfortunatly, the negociation didn't went well because of many factors:
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 plateform.
Now the clientB as he already wanted at first, want my company to build a similar plateform and want my company to partner in this. We'll share any ROI with them.
It is a thought decision for Me to take because i understand that we can't as a company keep working on those two plateforms at the same time.
The first version of the plateform was obtined from a freelance website under the "work for hire" clause. So the code belong to the clientA. So we cannot reuse anypart of that work.
Now as a company manager i'm in a dilema because i suspect that clientA will take that move as an unfair one.
What are your thoughts on that matter?
Early in my 15 years of freelancing I decided to never take on work from anyone considered a direct competitors to one of my current customers. I ran into a variety of situations exactly like you described, and in all cases I called my original client and described the situation, and told them that I would turn down the work in order to avoid any potential conflicts of interests. The original customer was always impressed, and this concern for their feelings often led to great referrals and testimonials.
Competing with a customer is a terrible idea - here's why. I'm assuming you don't have a non-compete agreement in place with Client A. So let's imagine what's likely to happen if you go ahead and partner with Client B to go into competition with Client A.
In the US, it's common in situations like this for Client A to sue you, claiming that while they were your client, you received confidential information about their business or technology, and are using it for your competing product. It's very expensive to defend against such suits, and it can be hard to prove them wrong.
You can expect your product to sell badly, because Client A can frighten away your potential customers by pointing out how risky it is to use a platform that's the target of an intellectual property lawsuit.
Your service business will also probably lose its client base. Every one of your current and potential customers who hears about this will wonder if you'll go into competition with them, too.
There are also ethical issues involved. As a bespoke software developer, I normally won't even work for two clients in the same industry unless there's been several years' gap, or the earlier client is out of business.
I applaud your having encouraged Client A and Client B to partner in some way. But when it was clear they weren't going to come to terms, if I had been in your shoes, I would have just told Client B, "I'm sorry, I can't help you further. It would be a conflict of interest with my responsibilities to Client A."
If I were in your position (and I have been) I would not take the business from client B. Instead, I would refer them to another service provider whom I know provides good work. I would also check in with client B from time to time to make sure my referral was satisfactory.
Of course, in business nothing should ever be given away for free. I would request a royalty from the other service provider.
This is a tricky but ultimately good position for you to be in.
Really, long term if YOU were to own the "core platform" as a white label service and they put their own brand name and additional features on top.
Given the original contract you don't seem to own it unless you were to rebuild in a different langauge ... if you could do it fast enough. We have done this sort of thing previously where the customers didn't want to be "software developers" they just wanted to be better at their own industry. Thus the mostly "shared" nature of the product suited them because they weren't "out on their own" and didn't have to support a development house alone.
Given this I would try talk to both sides again, saying that they have both common and unique aspects to their businesses. With an appropriate architecture both sides can invest $X per year in the common base and $Y per year in their own additions.
In this scenario ClientA should be paid an amount upfront to cover their investment to date and ClientB should consider it as they will be able to go to market with the basics straight away rather than waiting a year to catch up.
If this fails, which it sounds like it might, then you are probably down to choosing which one to go with. The current client doesn't have an exclusive drive on you if you wanted to swap.
It comes down to you and your companies feelings on which is a better long term strategy and how much you "owe" the current client in terms of loyalty.
... I would be approaching clientA first and saying "we see a long term future, this proves there its a good market, we want to go in with you to develop this ... (maybe ask for a 20% stake in exchange for a 20% drop in hourly rate if you can afford it).
If they have first right of refusal then you are probably in a better position all round.