Feedback

What's your question?

By: [ Editor ] Asked from United Kingdom

Pros and Cons of releasing R&D to the public... And OpenSource vs Binaries.

Hi all,

I'd love to get your thoughts on something that's been going around in my head for the past week or so...

If you've developed some quite cool tools in-house, and are considering releasing them to the wider world (let's say either giving away or selling, just for the sake of discussion - selling is not something I'd want to go anywhere near in my current situation), what do you think the advantages and disadvantages of doing either are?

And, on a very connected level, if I were to release what I've been working on, what are people's thoughts on releasing it with the source, or just the binaries?

Obviously don't just answer from the end user's point of view - think about it from both a facility viewpoint and a developer's. (I'm in the relatively rare situation here of being a user of the tools, the programmer of the tools, and one of the owners of the facility where they were developed...)

(I've cross-posted this to VFXTalk.com too, to see what the people over there think...)

Add comment viewed 542 times Latest activity 11 months ago

or Cancel

9 answers

  • 5

julik [ Editor ]

I tend to divide the tools that are in-house R&D into two categories:

  • a) hardcore image processing and maths stuff which is giving you substantial competitive advantage (like the accumulating post moblur solution one company has that does moblur that bends with the motion instead of streaks). This is usually less than 5 percent of all the software developed, takes years, gives you cojones and the ability to do projects others just won't do.
  • b) general utilities written to spare time.

For everything that falls under section a) you have to be careful since this kind of stuff can either simplify the life of your competitors too much, or it can be commercially viable to distribute it shrink-wrapped. To have in-house SW of this kind also usually means hiring a master in computer science or a genuine math geek to actually do it.

For everything under section b) (and if you are a small company most likely all of your stuff is in section b) you are doing a proactive disservice to the community by keeping these closed. You could spare alot of people alot of grief by giving them access to what you have, and get the same in return. "Your code can be stolen for commercial softwares" is not an argument because a good open-source license usually specifically allows for such use. Otherwise everyone ends up writing their format converter, their own render manager and their own poly shell cutter and their own relight node, instead of collaborating on something genuinely usable from the start. Also you are preventing others from finding and sometimes even correcting your bugs.

Other thing to consider: R&D that you have is what distinguishes you from companies or entities that achieve the same by raw manpower (joints in China/India). If this collective knowledge could be tapped into there would be a level playing field since even with preexisting software solutions you need to learn and investigate them.

Also, releasing OSS gives you a +200 boost in karma among your peeps, since it means that you are not only keeping all the tasty bits for yourself.

or Cancel
  • 3

carsten kolve

Releasing open source as a company makes you look cool and attractive to new employees. If I had to choose between two otherwise equal offers, I would choose the company with a more open policy towards using and releasing open source. Good documentation, usage examples are key for others adopting your code (so that might mean actually quite a bit more work than just keeping the code inhouse).

NN comments
julian
-

Thats a really good point – a company with an open policy attracts better programmers!

or Cancel
  • 2

dbr [ Editor ]

The most obvious benefit to open-sourcing a plugin is you get feedback, feature-requests, bug-reports and patches from more people outside the company.

There's also the slightly more "vague" reason, which is helping the VFX community in general, sharing code, reducing redundancy. Plus, the more companies that open-source stuff, the more interesting code there will be to use..

And, on a very connected level, if I were to release what I've been working on, what are people's thoughts on releasing it with the source, or just the binaries?

Source (or source with binaries)!

From a more facility-level, there's many Nuke plugins I want to use, but I'm hesitant to do so because they are binary-only..

If it's a plugin by "some random person on the internet", there's absolutely no guarantee it will be maintained. If something breaks, or the plugin is missing some functionality, or needs compiled for a newer version of Nuke - updates mean relying on some mostly-unknown third party.. but, if the source were available, I could make the changes (and contribute them back)

If it's being sold by a company, you at least are giving them money to develop the plugin, and they will likely have dedicated support people and so on..

Sometimes having the source out-weights decent support, sometimes having a binary with decent support out-weights having the source. Given you mention not selling them, there's very little reason to provide only a binary..

NN comments
sambo
-

Agreed that it is not really possible to base any critical part of a pipeline on random binaries from the internet.

or Cancel
  • 2

julian [ Admin ]

Open sourcing your stuff and contributing to other open source projects can do wonders for your career, and by extension the company you represent. Your brand will be cooler - opeNvisible perhaps? ;)

At 37Signals they advise using open source contributions as a guide to recruiting because you get to see what people are capable of, not just what they say they are capable of.

As others have said, you also benefit from having people contribute for free, and that in turn will expose you to new programming tricks, styles and resources, which all helps you improve as a programmer. It also encourages you to remove dependencies and barriers to getting the thing built.

Re: binaries, if the source is out there, other people may be willing to keep binaries up to date, and you can just point to their site in your docs.

For me, I have a handful of projects that give my company a marketing advantage. I keep them private and all the rest are open.

One more advantage - github is free for open source.

NN comments
hugh_gid
-

opeNvizible, or maybe vizibleSource :D I like…

Still pondering on this one. I need to have a chat with the other guys this week… We agreed a while back that it was a good way to go, but I’m still uncertain myself.

Definitely leaning towards releasing right now, though…

or Cancel
  • 1

olivier gagnon [ Editor ]

It really depends for whom your wrote your code and for what reason.

Was it for practice ? Entertainment ? Things like that ?

Was the code created to make money ? To sell it ?

Was the code only to perfect your skills to add it to your CV ?

All those things you have to consider (like Yoda would say hehe).

There are legal things to consider. If you are an employee and you create a program, the program is property of the company. That is not true for a freelancer, except if it is specified in the contract.

You say you are in the direction (owners) of your company

That means you have total control of what you do with your Intellectual Property. The question that you are asking yourself is: would it be better if I release the sources of my hard work or I try to sell it ?

The answer is simple. In an economic point of view, would it be better for you to release the code and make yourself known to the public (the "community") or do I have the "tools" (connections, visibility, etc) to sell it and make enough money out of it.

I've studied in economics so I sound like an economist (sorry) ;-)

But that's the hard truth. By reading your post, you do not seem to have all the "means" to be sure you would make money out of what you made. But you are wondering anyway.

My conclusion, in your situation (I'm sure you do not have only ONE great code), I would release some good things from you open source to the public, with examples of what it can do. I would NOT put any other good works of yours and I would not put pay fees on the website. I would wait comments and if you get positive feedbacks, then you can begin to release your other codes for fees. Gradually (not at once). It would bring people and that's what you want. If you have great works and your are unknown, best things is to send some of your works to public. If they are interested and you want to make money, then you can sell your works.

Good luck !

NN comments
hugh_gid
-

Thanks Olivier, Some good stuff there. In my mind, what I’m really after clarifying here is what the intangible, non-financial benefits of releasing tools to the general public are…

olivier gagnon
-

From my experience, releasing open source codes to “make you seen” is what you should do if you want to be someone new on the scene and add great stuffs.

Just understand that, you need to be recognized in you peers. You need to be someone who gives something new.

By giving that, things will follow and then you will be able to make yourself a name and sell your things.

Well, that’s only my point of view :–)

or Cancel
  • 1

martin pengelly-phillips

One other point to consider perhaps is the resources that open sourcing your code will consume. In order to have a positive impact you need to initially put a lot of work into documentation, tutorials, support etc. Without this, it will be less likely that your code will be used and even less likely that folks will contribute back.

How often have you looked at open source software from other vfx houses and followed through to actually use it and contribute back? Did their documentation and the ease of getting up and running with their software make a difference? How often was their software still too tightly coupled to their internal workflow?

There is a big difference between just dumping some code you have in github and actually promoting and maintaining it to encourage feedback and contributions.

Having said that, if you have some time to put into it I would go for it as it will help raise the profile of your company.

or Cancel
  • 1

franssu_27 [ Editor ]

From a simple microeconomic point of view, I tend to think that if you do something that's good for your industry, it will be good for your company as well. And sharing source with a solid open-source license, and having others contribute to it is definitely good for the industry.

I personally am tired of seeing how people have to reinvent the wheel each time a new company opens or has to enter a new market.

or Cancel
  • 1

vfxoverflow_168 [ Editor ]

From an academic research point of view, I see the pros and cons as follow:

  • Pros
  • Increase your citation count : a tool which is released can be used either for comparisons (if just the binaries are released) or even for further improvements (if the source code is released).
  • It helps advancing research if many people are thus able to contribute.
  • In the end-user/researcher, it allows to avoid lots of implementations of the previous work and save you huge amount of time.
  • It forces some honesty : results obtained in the paper can be reproduced using your software (if just binaries), and technical informations provided in the paper are indeed what has been coded (if source code is released).

  • Cons

  • You're giving away your work and loose your advantage : others will be able to publish things that you may have easily done.
  • If the source code is released, people may be able to tell and criticize how crappy your code is, how many hacks there are, etc.
  • Your code could be stolen for commercial softwares.

At the end, maybe just releasing the binaries is a good tradeoff.

Cheers

or Cancel
  • 0

markc [ Editor ]

From my (end user with very limited programming skills) point of view and as someone who has spent a not so small fortune on software:

Giving your product away gets fast market share and exposes it to customers happy with established products in the same field.

Open source code would help the product develop a life of its own via collaboration

You might find many users still need bespoke tweaks - that's a chargeable service in anyone's language. I presume something in the small print stops open source being modded and sold on so you don't become another Antonio Meucci!

or Cancel