Can developers reuse the code and share on their blog or as a FREE plugin if a client has hired them to develop and paid for it?
A very important question that I am sure every developer freelancer must-have. it is related to the code that a freelancer has developed for a client and can he reuse the code for which he is already paid by the client:
My question is, can I re-use the code from one client for which I am paid for in a project of other clients. Moreover, you recommend blogging and sharing code, can I use the client code and share it on my blog?
Very interesting question and thanks for asking. Ideally, you shouldn’t be sharing anything that you are paid for as free on your blog or to the open-source community or even resell them to other clients.
So the short answer to the question is no, you can share the exact same code for which you have been paid. Here are a couple of ways to do it the right way.
1. Ask for Permission
You can ask clients that you wish to share the code or the plugin. Most clients will agree to it.
Here is a Facebook Open Graph Images for threads and forums plugin I developed for a client and shared it as a free plugin to the XenForo community. When I asked the client, he agreed to it. He also shared a very positive review of it.
The client agrees to such a request because it means they get a reliable plugin that will be maintained and upgraded over time.
All the clients may not agree with it. They may want to keep the functionality only for their site. So offer them a discount on the price to be able to share it or offer them extra support for the plugin.
In short, add more value for the price they are paying.
2. Build Something Different
If a client doesn’t want his functionality to be available for others to use, build something different, or remove specific functionality.
As an example, when I was working at Lexmark International as a C++ Programmer, I learned a lot about GUI based C++ programming. Here is a couple of code from 2006-2007 time I shared.
- OutputDebugString with a variable number of arguments – In Lexmark, we all wanted to have such an option to debug the issues faster. So on one weekend, I just wrote it and shared it on my forums for everyone including people from Lexmark.
- Custom Image Button – We were working on a GUI rich applications in Visual C++. I wanted to learn to code GUI rich components in Visual C++ from scratch. Often when you are dealing with huge code, you don’t tend to learn the tiny nitty-gritty, especially in Visual C++. There are PAINT methods in each of the parent and subclasses of many such elements. So one may not know what is being painted and invalidated from where. I wanted to understand them so I created a minimal code with my understanding and shared it.
So if a client doesn’t allow you to reuse the code he already paid for, you can’t share them. So either convince the client to share them or create something from what you have learned as shareable.