class: center, middle # LINGI 2401 : Open Source strategy for software development Lionel Dricot lionel.dricot@uclouvain.be lionel@ploum.net @ploum - @ploum@mamot.fr ??? --- class: center, middle #A word about the exam - Dress for the job you want, not the job you have - A new, complex usecase to study and to talk about - You can have access to any resource you want --- class: center, middle #Pitch your project - Last 2 lessons - Elevator pitch - No power point! ??? Columbia disasters. Copy/pasting a powerpoint. --- class: center, middle #What are the pros and cons of using Open Source in entreprises? --- class: center, middle #Usecases ? ??? What are your ideas? --- class: center, middle #Usecases 1. Using open source software at work for non-product tasks 2. Using open source software in your product 3. Open sourcing an internal product 4. Open sourcing a released proprietary product 5. Developing an open source product --- class: center, middle #1. Recommending an open source software --- class: center, middle #Rule 1 Nobody will be fired for recommending Microsoft --- class: center, middle #Corolary If you recommend a solution, you will be held responsible for every problem happening with that solution. ??? And you will have a natural tendency to be emotionnaly attached to the solution --- class: center, middle #Two questions: - Why should we use this tool? - How should I convince the other? --- class: center, middle #Why? - Cost/benefits analysis - Is ideology important? - Long term advantages ??? Be transparent with yourself and others about ideology or even about your own preferences. Acknowledge whether your choice is rational or unrational. https://en.wikipedia.org/wiki/Cost–benefit_analysis --- class: center, middle #Consequences of Open Source? - Fear of contamination - Support - Adaptability --- class: center, middle #Change management - Every change has a cost ??? https://en.wikipedia.org/wiki/Change_management --- class: center, middle #Example: Firefox vs Chrome ??? And what if we are replacing an existing Chrome installation with Firefox? Example of replacing IE with Firefox but keeping the IE icon. --- class: center, middle #How to convince other? - Pitch to management - Experiment (sometimes hidden) - Recruit proponents ??? Don't ask for permission, ask for forgiveness. Don't present it as a global project but enlarge it gradually. Why is it interesting to take a risk to change ? --- class: center, middle #2. Using open source software in your product --- class: center, middle #Clarify legal implications - Contamination - Publication (BSD style) --- class: center, middle #Convincing Same as before: Why, How ??? Convincing should start with yourself. Be ready to hear new arguments and change your opinion. --- class: center, middle #Maintaining a private branch vs Contributing --- class: center, middle #Private branch - quick and dirty code - boss doesn't fear seeing the code "stolen" - your usecase might be so personal that it doesn't make sense upstreaming it - you can link with some propriatary code - be aware of the legal problems when redistributing your product - maintenance nightmare - No, really. It will become your worst nightmare. ??? Yes, it is really that bad. Example of using LibreOffice to convert documents. --- class: center, middle #Upstreaming - More upfront work - Nearly no maintenance - Good community karma - If your usecase is so specific, it is worth investigating why. - Need to be well clarified when distributing the product. - More upfront work, really. ??? Community Karma is also very good to influence the open source project future. --- class: center, middle #Best case - Hiring a contributor of the project - Paying an employee to become an active contributor - Very good community karma --- class: center, middle #Saying thanks - Donating to the project - Becoming a sponsor of the project - Hosting events related to the project --- class: center, middle #3. Open sourcing an internal product - When it's not your core business --- class: center, middle #Advantages - External contributions - Potential collaboration, even with direct competitors - Good community karma --- class: center, middle #Disadvantages - Maintaining a community is hard - And time consuming - Probably need to introduce stuff like dual-licensing if you want to keep control ??? External scrutiny is an asset for security. Don't forget the "security by obscurity" paradigm --- class: center, middle #Open sourcing is hard - Every line of code has to be legally owned by one entity - Every stakeholder needs to agree - Huge incompilable project with in-house spaghetti manuals cannot be released as a huge block ??? Open sourcing a big proprietary app is usually a huge project in itself. Anecdote : every company internal project needs several days (if not weeks or months) of work to be compiled (config of the computer). Usually, only one or two guys know how to do it. Learning to let things free (unlike Trolltech/Qt). Cow release. --- class: center, middle #The Bus Factor "How many people could get hit by a bus before ruining your project?" ??? https://en.wikipedia.org/wiki/Bus_factor In most proprietary companies, building the project is a full time job in itself with specific tools, specific hardware and only a few people knowing how to do it. --- class: center, middle #4. Open sourcing a released proprietary product - Usually, it requires finding a new business model ??? Let's be honest, most open sourcing happen when the business has no more money. Famous example : Netscape/Mozilla --- class: center, middle #Netscape - 94-98 : business license and support - 98 : Windows ships with IE 5 (First browsers war) --- class: center, middle background-image: url(https://github.com/ploum/lingi2401/raw/master/images/netscape.jpg) --- class: center, middle #Netscape - 94-98 : business license and support - 98 : Windows ships with IE 5 (First browsers war) - 98 : Netscape is freed and Mozilla is created (owned by AOL, who bought Netscape) - 02 : Experimental Phoenix fork --- class: center, middle background-image: url(https://github.com/ploum/lingi2401/raw/master/images/phoenix.png) --- class: center, middle #Netscape - 94-98 : business license and support - 98 : Windows ships with IE 5 (First browsers war) - 98 : Netscape is freed and Mozilla is created (owned by AOL, who bought Netscape) - 02 : Experimental Phoenix fork - 03 : name changed to Firebird, Mozilla foundation created and Mozilla suite deprecated - 04 : name changed to Firefox and 1.0 release - 08 : Google Chrome is released (Second browsers war) - 17 : Firefox Quantum released. Focus on privacy (against Google Chrome) --- class: center, middle #StarOffice - 85 : Proprietary Star Writer --- class: center, middle background-image: url(https://github.com/ploum/lingi2401/raw/master/images/starwriter.png) --- class: center, middle #StarOffice - 85 : Proprietary Star Writer - 98 : StarOffice becomes freeware - 99 : Stardivision bought by Sun (because cheaper than buying MS Office license for the company) - 00 : Free version of StarOffice : OpenOffice.org (dual licensing, two projects co-existing) - 10 : Sun bought by Oracle. OpenOffice.org becomes Oracle Open Office - january 11 : Developers left and create LibreOffice (The Document Foundation) - june 11 : Oracle donates OpenOffice.org source code to the Apache foundation --- class: center, middle #5. Developing an open source product --- class: center, middle #You don't have a good idea ??? https://ploum.net/votre-idee-ne-vaut-rien/ --- class: center, middle background-image: url(https://github.com/ploum/lingi2401/raw/master/images/idea.jpg) --- class: center, middle #Minimum Viable Product ??? Test your idea. Even only on paper. Try to sell it. Even to yourself! --- class: center, middle #Build your pitch --- class: center, middle #Business Model Canvas --- class: center, middle background-image: url(https://github.com/ploum/lingi2401/raw/master/images/Business_Model_Canvas.png) ??? https://en.wikipedia.org/wiki/Business_Model_Canvas --- class: center, middle # Discussion time