Punit Gandhi .


So I recently came across the Open Source communities and it fascinates me. I am interested in knowing more about it and have a few questions, for me to understand how the open source network works.

1) Trust: A lot of big companies are now on open source (Android, FB, etc.). How do they manage safety of their users? Who approves the codes written on their platforms? A hypothetical scenario: Can I as a coder change certain lines of code which would leak the user information?

2) Compensation: Github offers 40 million developers for their service. Now as a software company, can you utilise these developers to help you develop the software? Will these developers get credits for working for you in form of recognition or is it monetary?

3) Liabilities: Subpart to question 2. If the developer is just helping you out as a hobby, is he/she liable for any bugs in the system?

4) Project Management: Does someone manage how to distribute work or divide the work tasks or the volunteer/helper can work on whatever they like? If latter, does certain areas of work have more interest from helper/volunteers or do we assume that as the community is large, it is easy to find resources in all different fields?

5) Sustainability: Can a fulltime freelancer sustain monetarily if they helped coding on GitHub or RedHat?

6) Knowledge Transfer: Has any organisation/company tried shifting this kind of work into consulting structure (general consulting and not related to coding)? What challenges do you foresee if anything like that could be planned?

I am currently work in developing innovation in the field of urban area. I am trying to understand the model to see if it is possible to replicate it in any other field.

Originally Posted Here

Apurva Raj

Git is a version control system

Github is a software that makes version controlling bit easier

Developers tend to open source their projects (especially their side projects)

Most of the tools we see or use in development are open sourced

Anyone can grab whole source code of any of those open source project and start playing around it.

If anyone make any changes or improvements on code, they would ask git to mark his changes and tell the owner about the changes

Owner sees the changes and test if it working really well, it’s upto the owner, if they approve, then your changes is reflected on main project.

Your name is now in contributors list.

Didn’t really understand your most of the questions

But know that “Android” is open sourced. Not fully though. Around 5% of it is still private- that could be for any reason

But you could still copy android code in your system and play around it.

You can ask developers to have deploy “bad code” but it won’t be accepted by the owner of that project

And even if by some mistake they accept it, someone is definitely going to find out about it and run a fix.

Many Developers voluntarily work on open source projects mainly for to learn -
1. To learn more (only way you can actually learn coding is by doing it)
2. To get recognition
3. Hobbiest work anything on they like but usually big or active open soruce projects have core developer team who definitely do project management

Open source doesn’t mean free and doesn’t mean all the contributors are not getting any monetary compassions out of it

Some open source projects are legit startup and work as a startup

Some projects are funded (donation) by big companies

5. Github is a software that helps you manage your codebase. Redhat is an open sourced OS. It’s not super easy to contribute to Redhat and there is no money one getting out of it directly but continuously working on it will definitely open up lots of opportunities.

Punit Gandhi

Thank you for the response.
So I didn`t understand what is a version control system?
So what kind of opportunities does it open up for people contributing to a lot of projects?

Apurva Raj

Git allows us to track our whole codebase. Each line we add, each branch we create, who added which line of code and on what branch. From the beginning of writing code. Meaning one can navigate through codebase history till present.

We can rollback changes to something that worked before, people can create branches and work on it separately without affecting the main code and if all good then merge it with the main branch.

This essentially helps big teams working collectively on the same project

I can fork (copy) any open-sourced project. I can see it's whole history of code work. I can make changes and send a pull request(ask owners to merge my code within main codebase) if they accept, my changes will be merged (this will be logged in git)
Git also helps in emerging and solving code conflict.

Bharatwaj Rao

In Open-source, the code gets publicly available.

Do understand that, once it’s open source.. it’s not yours, it’s everyone’s.

So any developer can come and add his own contribution.
Normally in opensource there are main devs who maintain the code and they verify the contributions and if they find it valuable then only they allow it to be added.
For example Linux - it’s open source from start - I can go and contribute myself but if it’s valuable then only it shall be added.

It also answers your trust part.

Compensation is normally in terms of name, many devs are happy that they contributed to a project, so just credits are fine.

Liability again is nil in dev side, as it’s open source.

There is no project management sort of thing, although there is a list normally written like - contributions to this part of code is appreciated. But nobody can be forced.

Normally this people are not for the money but they value the knowledge who contribute, so full time freelancer won’t mostly come in opensource , this are usually people who are devs but have either retired, younger college students, even doing full time job in side and just want to do something..

Also main point - Once you make it open source - anyone can fork it and make their own, so for example - I can make my own Operating system with the help of Linux as base although it’s a huge thing but can be done.

Punit Gandhi

Thank you for the response.
As you mentioned in the last paragraph, anyone can fork it and make their own system. So if someone does it, and make a new software/os/platform out of it, can they legally earn from it or would they be required to acknowledge or pay to the contributors?

Bharatwaj Rao

Yes they can earn from it. They have to add something of their own of course on top of it.
Best Example -Wordpress.organdWordpress.com
Wordpress.orgis free and Open-source whilewordpress.comis managed and hosted so is paid.

Saurav Chirania

I'm trying to keep the technical jargon as limited as possible while answering your questions.
1) The big companies you mentioned aren't open source - they have open-sourced some parts of some of their products. Which means there's a lot of things theyhaven't open-sourced. Of course no, you can't leak their information.

2) I am not sure if I understood this question correctly. As a software company, you can get help from other developers, but for that, you will have to open-source your software first, which you may not want to do. Moreover, even after you open-source, the probability that anyone good will come to contribute to your project is pretty low, because there are already a lot of projects open-sourced and your project will just become lost in the crowd. However, if your project has a large number of users (at least 50k+), then developers may come to contribute. You may or may not give compensations in any form, that's completely up to you.

3) Generally speaking, no. But if you are giving them monetary compensation, you can make them sign a contract stating that you want them to be liable.

4) Volunteers take up tasks themselves. And yes, some areas have much more contributors than others. Again, if you are giving monetary compensation you can clearly state what work you want to be done, but if they are doing this voluntarily, you can't say them which task they should take.

5) There are some (very few) developers who sustain by contributing to open-source, and they are generally being (monetarily) compensated by the project they contribute to.

6) I couldn't understand this question too:P

Punit Gandhi

Thank you for your response.
So this is a bit confusing for me from trust point of you.
As a company, I have made a part of my code open source. Now, developers work on it to make it better. But those developers can also be from rival companies. Wont this lead to information leaking about future developments of a software or OS?

Saurav Chirania

Of course. If you think your idea is so sensitive that you don't want to even let others know what future developments are taking place, you should not make your development process open source.

I more point I want you to know is open-sourcing a project generally means giving the project so that others can use it for their benefit, not giving your code to others so that they improve your code. And generally, no one works in the open-source world with the hope of giving/getting money. I have myself contributed to many open-source projects but never asked for any money.

Akhil Mohan

Interesting questions !

TL;DR Open Source is not like "free beer", Open Source is like "freedom". Freedom to be able to choose, decide and hack something open source to your satisfaction without liabilities be it legal or financial or of any other kind.

Any comparison of open source with selling something for free or assigning it a monetory value being earned or lost is completely a wrong approach. Making something open does not mean it has to come for free. The product essentially is only 5% of any offering and remaining 95% of it is everything from packaging it, customising for end use, delivering it to the customer and a lot more. All of that may or may not be included when a product is open sourced.

It's also important to understand that most of the good things in the world would have not existed unless open source products in particular did not exist. For e.g., all of the internet companies and many others would have not existed if they did not have access to open software for building what they have built over the years. If they had to get into commercial licenses, they are generally prohibitively limiting in both monetory and capability terms. For e.g. if Facebook or Google had to pay for the programming environment to Microsoft and/or Database Management to Oracle, they would need to charge for the services they wanted to offer. This would limit their ability to explore possibilities as they would need to build what the customers would pay for and not what the customers would want to experiment with ! This would take away the freedom to choose both for Facebook to build what they want and also for their users if they would want to use it or not. Everyone will be entangled in the web of making money, profits and doing only what serves in that direction. The same is just not limited to internet companies.

Lastly, intent to make profit out of open source software is purely a personal choice. While we have billion dollar comapnies from Redhat to Oracle, we also have individuals who sustain only on donations they receive despite creating value worth billions of dollars. One can fall anywhere in the whole open source spectrum and live happily without trouble.

Now answering your questions:
1) Trust: You can definitely take the open source project and make whatever changes you may like which is generally termed downstream but the original author is absolutely free to choose if they wish to include your changes in their variant or not generally termed upstream. As you see, absolute freedom !

2) Compensation: Same as trust both the parties have volunteered with no expectations/ liabilities/ commitments. They are free to engage in monetory compensation as they may decide but there is no mandate.

3) Liabilities: No there are no liabilities in an open source environment allowing to experiment and make mistakes

4) Project Management: All the impactful open source projects have very strong headed project managers making those projects so good. For e.g., you can read about Linus Torvalds who hasn't spared anyone up to Intel for smallest of their mistakes !:-D

5) Sustainability: Freelancing is as wide as open source but they cannot sustain if they do not understand that 99% of their offerings are built on top of open source projects for which they have never paid. Now for something that they got absolutely free at the first place, if they wish to charge for their contributions I don't see a meaningful discussion there !:-)

An example will be cURL library which is familiar to most of the freelancers who work on software projects. Infact, if today cURL is simply eliminated a good majority of these freelancers and their projects would crash. This stellar project is managed just one person from project management to development. He definitely had a lot of help in the last 22 years on the project but ultimately even today there is no replacement for him. If you have time read his response to the question asked why he made the project open source:https://stackoverflow.com/.../what-is-the-incentive-for...

This is the impact of open source ! Will it be right to even ask him for compensation for a piece of code that a freelancer may have written overnight against 22 years of single handed effort to sustain the building blocks for Internet. I think it would be impolite.

This by no means would mean that people do not get paid for their effort but essentially it's a matter of choice and freedom to choose, the core premise of open source.

6) Knowledge Transfer: There are a number of companies that provide consulting on top of open source projects. Freelancers again, would be 99% of that group. However a proper example would be Percona offering consulting support on MySQL which is an open source product current under ownership of Oracle.

P.S.: Do not get carried away by a lot of companies these days using the word "Open Source" in their marketing. Do look at real open source products/ projects and communities around them.

Punit Gandhi

Thank you for your response. I will surely go through the link you have attached.
I do understand a bit of how open source came into being helped disrupt monopolies of companies like microsoft.
How can I make sure that they are real open source products/projects?

Akhil Mohan

Open Source projects are all about 3 things:
1) License: If you look at open source project ask for the license under which the project has been open sourced. A good start can be GPL, Apache, MIT or BSD licenses. There are many more than might be in use but these would enforce the most strict open source mandate.
2) Community: This is one what will make or break an open source project in the longer run. You ultimately need a team of people so see how many people are actively contributing to the project. This helps in understanding how quickly new features will get added and how quickly problems like bugs in the code will get solved. More than anything else the larger the community, more number of eyes on it. More attention means lesser possibility of something going wrong before it's identified and fixed.
3) Commitment: This is probably the most misinterpreted part even to the people who may be contributing to open sourc projects. A lot of times companies use Open Source as a way of marketing by bringing out a small part of the product or project which in many cases does not hold monetory value for author. Most of these projects fail very quickly. A sad example of it was Tesla patents open sourced by Elon Musk over a tweet !:-Dwith minimal and vauge details on license under which the patents were open sourced and without any effort to engage community around them. Such acts are generally nothing more than marketing stunts.

Most of the successful open source projects open up everything. They do not sit and decide what to open and what not to open up. Moreover, they very clearly outline the license under which they are opening the project. They just don't declare that their project is open source but they make very hard effort to make sure it's adopted by community and reaches as many people as possible in the most open manner.

A good way to know if the project is open source and of some value is to look for it's acceptability. In case of software projects, see if the various linux distributions like Debian are making an effort to package them. Also how extensively are these projects are being made part of academic circles in top 10 universities. You may also look at their github profile to see how actively people are contributing to them. Another good place is StackOverflow like forums where problems related these projects might be getting discussed. Not all projects will fit into these criteria but still be very good open source projects but you will end up covering 90% of them

Punit Gandhi

Thank you. This is quite insightful.

Join India’s
most active community
and interact with 20k+
like-minded entrepreneurs