start your open source project

44
Start your open source Start your open source project project Ahmed Medhat Osman Ahmed Medhat Osman [email protected] [email protected] Software freedom day (Alexandria University) Software freedom day (Alexandria University) August 2010 August 2010

Upload: ahmed-othman

Post on 10-May-2015

1.715 views

Category:

Technology


0 download

DESCRIPTION

Start your open source project

TRANSCRIPT

Page 1: Start your open source project

Start your open source Start your open source projectproject

● Ahmed Medhat OsmanAhmed Medhat Osman

[email protected]@gmail.com

● Software freedom day (Alexandria University)Software freedom day (Alexandria University)

● August 2010August 2010

Page 2: Start your open source project

OutlinesOutlines

● IntroductionIntroduction● Brif History of open source softwareBrif History of open source software● The cost of open sourceThe cost of open source● Barriers to open source adoptionBarriers to open source adoption● Open source licensing overviewOpen source licensing overview● How to How to contribute in OSScontribute in OSS● How to start OSSHow to start OSS

Page 3: Start your open source project

IntroductionIntroduction

● Open Source vs. Free SoftwareOpen Source vs. Free Software● Many people do not understand the definition of open sourceMany people do not understand the definition of open source● There is no such thing as free softwareThere is no such thing as free software

● Benefits of Open SourceBenefits of Open Source● The potential for cost savings is the number one The potential for cost savings is the number one

motivation to use enterprise open source softwaremotivation to use enterprise open source software

– Software license costs is the most likely component where Software license costs is the most likely component where savings will occursavings will occur

– Cost savings in general are difficult to calculateCost savings in general are difficult to calculate

Page 4: Start your open source project

Introduction Introduction (cont.)(cont.)

● Benefits of Open SourceBenefits of Open Source

● Flexibility often turns out to be the most beneficial Flexibility often turns out to be the most beneficial result of using open source softwareresult of using open source software

● Enterprise open source software has cost the Enterprise open source software has cost the proprietary software industry an estimated $60 proprietary software industry an estimated $60 billion per yearbillion per year

● Many organizations do not have a formal process in Many organizations do not have a formal process in place to do a comprehensive financial analysis of place to do a comprehensive financial analysis of software commitmentssoftware commitments

Page 5: Start your open source project

HistoryHistory

● The idea of open source or free software has a The idea of open source or free software has a rich history that began in the 1960srich history that began in the 1960s

● 1969 - ARPANET - Advanced Research 1969 - ARPANET - Advanced Research Projects Agency NetworkProjects Agency Network● First operational packet switching networkFirst operational packet switching network● Predecessor of the InternetPredecessor of the Internet

● 1970s – Email (SMTP), File Transfer Protocol, 1970s – Email (SMTP), File Transfer Protocol, Network Voice Protocol (NVP) standards Network Voice Protocol (NVP) standards developeddeveloped

Page 6: Start your open source project

History History (cont.)(cont.)

● 1985 – Free Software Foundation – Richard 1985 – Free Software Foundation – Richard StallmanStallman● Universal freedom to distribute and modify Universal freedom to distribute and modify

computer software without restrictioncomputer software without restriction● Founded to support the free software movementFounded to support the free software movement● Enforcement of the General Public LicenseEnforcement of the General Public License

● 1992 – Linux kernel released under GPL – 1992 – Linux kernel released under GPL – Linus TorvaldsLinus Torvalds

Page 7: Start your open source project

History History (cont.)(cont.)

● 1998 - Open Source Initiative (OSI) – Bruce 1998 - Open Source Initiative (OSI) – Bruce Perens and Eric RaymondPerens and Eric Raymond● Formalized open source software and brought the Formalized open source software and brought the

model to major software companiesmodel to major software companies● Formulated the Open Source Definition to Formulated the Open Source Definition to

determine which licenses are actually “open source” determine which licenses are actually “open source” licenseslicenses

● 1998 – Netscape Navigator releases source 1998 – Netscape Navigator releases source codecode● known today as Firefox and Thunderbirdknown today as Firefox and Thunderbird

● 1999 – Sun Microsystems releases StarOffice 1999 – Sun Microsystems releases StarOffice under GPLunder GPL● later renamed OpenOfficelater renamed OpenOffice

Page 8: Start your open source project

The cost of open sourceThe cost of open source● ““Open source” is not freeOpen source” is not free● Many open source software licenses are free, Many open source software licenses are free,

but some licenses have costs associated with but some licenses have costs associated with themthem

● Many mature open source projects, especially Many mature open source projects, especially operating systems, earn money from paid operating systems, earn money from paid support and documentationsupport and documentation

Page 9: Start your open source project

There are many different types of hard costs associated with leveraging open source software

for enterprise IT projects● Software LicensesSoftware Licenses

● Referring to the licenses themselves, not legal terms and Referring to the licenses themselves, not legal terms and conditionsconditions

● Often offers the most potential cost savings vs. proprietary Often offers the most potential cost savings vs. proprietary softwaresoftware

● HardwareHardware● Open source software often has reduced hardware Open source software often has reduced hardware

requirementsrequirements

● SupportSupport● Often more but less mature options for support in open Often more but less mature options for support in open

source projectssource projects

Page 10: Start your open source project

Open source costs (cont.)

● DevelopmentDevelopment● Access to source code can help make development easier Access to source code can help make development easier

and less costlyand less costly● Lack of feature parity with proprietary software may create a Lack of feature parity with proprietary software may create a

need for more custom developmentneed for more custom development● Opportunity to give source code back to the open source Opportunity to give source code back to the open source

community community

● Professional ServicesProfessional Services● Development, installation, and configuration costsDevelopment, installation, and configuration costs● Offered by many open source software vendorsOffered by many open source software vendors

Page 11: Start your open source project

Open source hard costs (cont.)

● TrainingTraining● Offered directly by software vendorOffered directly by software vendor● Through a professional training center or educational Through a professional training center or educational

institutioninstitution● On-site or off-site, or onlineOn-site or off-site, or online

● TestingTesting● Unit testing, performance testing, functional testing, test Unit testing, performance testing, functional testing, test

scripts, use-case scenarios, quality assurance costsscripts, use-case scenarios, quality assurance costs

● StaffingStaffing● No conclusive evidence to show that staffing open source No conclusive evidence to show that staffing open source

projects is cheaper than for proprietary projectsprojects is cheaper than for proprietary projects

Page 12: Start your open source project

Open source hard costs (cont.)

● Operations (Manageability)Operations (Manageability)● Mix of labor, management and monitoring tools Mix of labor, management and monitoring tools

configuration, creation of manuals to support operationsconfiguration, creation of manuals to support operations● Open source tends to have less mature management Open source tends to have less mature management

capabilitiescapabilities

● Maintenance ContractsMaintenance Contracts● 15-25 percent of the license costs or equipment costs per 15-25 percent of the license costs or equipment costs per

year. year. ● Calculated using the list price, not the actual paid priceCalculated using the list price, not the actual paid price● Treated separate from support contracts in many open Treated separate from support contracts in many open

source projectssource projects● Costs associated with patching and updating software over Costs associated with patching and updating software over

timetime● Often free with most zero-cost open source software Often free with most zero-cost open source software

licenseslicenses

Page 13: Start your open source project

Open source hard costs (cont.)

● MigrationMigration● Especially for system replacement projects where existing Especially for system replacement projects where existing

data must be migrated to the new applicationdata must be migrated to the new application

● EnvironmentalEnvironmental● Datacenter and hosting costs, floor space, power, Datacenter and hosting costs, floor space, power,

bandwidth, hardware leasingbandwidth, hardware leasing

● DocumentationDocumentation● Often coincides with the training category aboveOften coincides with the training category above

● ConfigurationConfiguration● Often captured with the development and operations Often captured with the development and operations

categoriescategories

Page 14: Start your open source project

Open source Open source soft or intangible costssoft or intangible costs

● DowntimeDowntime● financial impact of system outagefinancial impact of system outage

● IP RiskIP Risk● Legal/litigation costsLegal/litigation costs

● License Auditing RiskLicense Auditing Risk● Resources required to perform a vendor-required license Resources required to perform a vendor-required license

auditaudit

● License ManagementLicense Management● Resources required to manage deployment of licenses and Resources required to manage deployment of licenses and

purchase of additional licenses as the deployment growspurchase of additional licenses as the deployment grows

● License Negotiation OverheadLicense Negotiation Overhead● Legal costs required in negotiating the software licensing Legal costs required in negotiating the software licensing

contractcontract

Page 15: Start your open source project

Open source Open source soft or intangible costs soft or intangible costs (cont.)

● PlanningPlanning

● Resources for planning and overheadResources for planning and overhead

● Process InefficienciesProcess Inefficiencies

● Lost time and costs related to process activitiesLost time and costs related to process activities

● Procurement OverheadProcurement Overhead

● Purchase cost and resources required to procure the softwarePurchase cost and resources required to procure the software

● ProductivityProductivity

● Efficiencies from using the softwareEfficiencies from using the software

● ReliabilityReliability

● Financial impact of improved system reliability and uptimeFinancial impact of improved system reliability and uptime

● Support QualitySupport Quality

● Resources required for software supportResources required for software support

Page 16: Start your open source project

There are a variety of business models that have proven to work for There are a variety of business models that have proven to work for companies who want to make money using open source softwarecompanies who want to make money using open source software

● Support Sellers (otherwise known as "Give Away the Recipe, Open A Support Sellers (otherwise known as "Give Away the Recipe, Open A Restaurant")Restaurant"): :

● Give away the software productGive away the software product

● Sell distribution, branding, and after-sale serviceSell distribution, branding, and after-sale service

● This is what RedHat does.This is what RedHat does.

● Loss LeaderLoss Leader

● Give away open-source as a loss-leader and market positioner for closed Give away open-source as a loss-leader and market positioner for closed software. software.

● Netscape, Digium (Asterisk)Netscape, Digium (Asterisk)

● Widget FrostingWidget Frosting

● Hardware company goes open-source in order to get better drivers and interface Hardware company goes open-source in order to get better drivers and interface tools cheaper. tools cheaper.

● Silicon Graphics (Samba), Apple (Darwin)Silicon Graphics (Samba), Apple (Darwin)

● AccessorizingAccessorizing

● Selling accessories – books, compatible hardware, complete systems with open-Selling accessories – books, compatible hardware, complete systems with open-source software pre-installedsource software pre-installed

● O'Reilly Associates, OLPC,O'Reilly Associates, OLPC,

source: The Open Source Initiative: http://www.opensource.org/advocacy/case_for_business.php source: The Open Source Initiative: http://www.opensource.org/advocacy/case_for_business.php

Page 17: Start your open source project

There are many barriers to open source adoption in IT There are many barriers to open source adoption in IT organizations, most of which are risk relatedorganizations, most of which are risk related

● Open source licenses are viralOpen source licenses are viral

● Open source software lacks formal support and trainingOpen source software lacks formal support and training

● Software changes too often and is difficult to keep upSoftware changes too often and is difficult to keep up

● Lack of a long term road mapLack of a long term road map

● Sunk costs in existing projectsSunk costs in existing projects

● Switching costsSwitching costs

● De facto industry standardsDe facto industry standards

Page 18: Start your open source project

There are many different open source licenses and it can There are many different open source licenses and it can be difficult to distinguish one license from anotherbe difficult to distinguish one license from another

● Most popularMost popular

● GNU General Public LicenseGNU General Public License

● GNU Library or Lesser GPLGNU Library or Lesser GPL

● Apache Software LicenseApache Software License

● Berkeley Software Distribution Berkeley Software Distribution (BSD)(BSD)

● Special PurposeSpecial Purpose

● Educational Community LicenseEducational Community License

● NASA Open Source Agreement NASA Open Source Agreement 1.31.3

● Open Group Test Suite LicenseOpen Group Test Suite License

● MIT LicenseMIT License

● Mozilla Public LicenseMozilla Public License

● Eclipse Public LicenseEclipse Public License

● MiscellaneousMiscellaneous

● Adaptive Public LicenseAdaptive Public License

● Artistic License 2.0Artistic License 2.0

● Open Software LicenseOpen Software License

● Qt Public LicenseQt Public License

● And many more…And many more…

● http://www.opensource.org/licensehttp://www.opensource.org/licenses/categorys/category

● http://en.wikipedia.org/wiki/Comparhttp://en.wikipedia.org/wiki/Comparison_of_free_software_licencesison_of_free_software_licences

Page 19: Start your open source project

Open source software licenses can range from very Open source software licenses can range from very simple to relatively complexsimple to relatively complex

● Software LicensesSoftware Licenses● Cost of the actual licenseCost of the actual license

● Many open source vendors have a dual license modelMany open source vendors have a dual license model

● Not the legal licensing terms or conditionsNot the legal licensing terms or conditions

● Seen as the greatest potential for savings in an open source projectSeen as the greatest potential for savings in an open source project

● Savings on licenses often used to offset training and professional Savings on licenses often used to offset training and professional services costsservices costs

● Can include client access licenses, desktop licenses, database license Can include client access licenses, desktop licenses, database license and development toolsand development tools

● Based on the number of CPUs or number of usersBased on the number of CPUs or number of users

● Every vendor has their own rulesEvery vendor has their own rules

● Makes calculating project costs difficultMakes calculating project costs difficult

Page 20: Start your open source project

Open source software licenses can range from very Open source software licenses can range from very simple to relatively complex simple to relatively complex (cont.)(cont.)

● Dual license modelDual license model● Choose between an open source (free) license or a commercial license that Choose between an open source (free) license or a commercial license that

costs moneycosts money

● Trolltech Qt ExampleTrolltech Qt Example

● Motivated by market segregation based business models and license Motivated by market segregation based business models and license compatibility needscompatibility needs

● Open Core License modelOpen Core License model● core is GPL: if you embed the GPL in closed source, you pay a feecore is GPL: if you embed the GPL in closed source, you pay a fee

● technical support of GPL product may be offered for a fee (up for debate as to technical support of GPL product may be offered for a fee (up for debate as to whether it must be offered)whether it must be offered)

● annual commercial subscription includes: indemnity, technical support, and annual commercial subscription includes: indemnity, technical support, and additional features and/or platform support. additional features and/or platform support.

● Additional commercial features having viewable or closed source, becoming GPL Additional commercial features having viewable or closed source, becoming GPL after time bomb period are both up for debateafter time bomb period are both up for debate

● professional services and training are for a fee professional services and training are for a fee

Page 21: Start your open source project

Open source software licenses can range from very Open source software licenses can range from very simple to relatively complex simple to relatively complex (cont.)(cont.)

● Licensing cost comparison works for new Licensing cost comparison works for new projects, but not necessarily existing projectsprojects, but not necessarily existing projects

● Must be estimated over the life of the projectMust be estimated over the life of the project● Zero cost open source software has caused Zero cost open source software has caused

proprietary vendors to lower their prices and proprietary vendors to lower their prices and this trend will continue this trend will continue ● An estimated $60 billion per year is lost by An estimated $60 billion per year is lost by

proprietary software vendorsproprietary software vendors

Page 22: Start your open source project

How to How to contribute in OSScontribute in OSS

● Chose a projectChose a project● Organize your ideasOrganize your ideas● Spend some time in the projectweb siteSpend some time in the projectweb site

● Start with ” about ” pageStart with ” about ” page● Find or ask for newbie documentationFind or ask for newbie documentation● Look for source code and developer documentationLook for source code and developer documentation

– Observe how developers use commentsObserve how developers use comments– Review code style/coding guidlinesReview code style/coding guidlines

Page 23: Start your open source project

How to How to contribute in OSScontribute in OSS (cont.)(cont.)

● Mailing lists are criticalMailing lists are critical● Browse the archiveBrowse the archive

– You can't read evry thing – search !You can't read evry thing – search !● Detrmine the key playersDetrmine the key players● Asking questionsAsking questions

– write usefaul subject linewrite usefaul subject line– Show you have done your researchShow you have done your research– Waite for an answerWaite for an answer

Page 24: Start your open source project

How to How to contribute in OSScontribute in OSS (cont.)(cont.)

● Basic netquetteBasic netquette– Chose responseple handelChose responseple handel– Don't use text speakDon't use text speak– Be formal in your first few postesBe formal in your first few postes

Page 25: Start your open source project

How to How to contribute in OSScontribute in OSS (cont.)(cont.)

● Learn to love IRC (Internet Relay Chat)Learn to love IRC (Internet Relay Chat)● Read chanel topicRead chanel topic● Observe trafficObserve traffic● Don't ask to askDon't ask to ask● Wait for answerWait for answer

Page 26: Start your open source project

How to How to contribute in OSScontribute in OSS (cont.)(cont.)

● You have found your tribe way to get involvedYou have found your tribe way to get involved● Check the issue tacker for easy or beginner Check the issue tacker for easy or beginner

bugsbugs● Submit a patchSubmit a patch

Page 27: Start your open source project

How to How to contribute in OSScontribute in OSS (cont.)(cont.)

● Triage bugsTriage bugs● Answer question in IRCAnswer question in IRC● Poin people to the right directionPoin people to the right direction

Page 28: Start your open source project

But Wait, But Wait, I'm Not Technical (Enough)I'm Not Technical (Enough)

Free and Open Source Software Needs Free and Open Source Software Needs

AllAll Kinds of ContributorsKinds of Contributors

Page 29: Start your open source project

How to How to contribute in OSScontribute in OSS (cont.)(cont.)

● For writersFor writers● DocumentationDocumentation● Press releases and news lettersPress releases and news letters

● For artistsFor artists● LogosLogos● Project Bannares for conferancesProject Bannares for conferances● Web designWeb design

Page 30: Start your open source project
Page 31: Start your open source project

How to How to contribute in OSScontribute in OSS (cont.)(cont.)

● For MarketersFor Marketers● Project PresentationProject Presentation● Collateral: Data Sheets, Project BrochuresCollateral: Data Sheets, Project Brochures● Social MediaSocial Media● Swag!Swag!

● For the Socially InclinedFor the Socially Inclined● For TeachersFor Teachers

● Anyone who can share knowledge well is a teacher.Anyone who can share knowledge well is a teacher.

Page 32: Start your open source project

How to start OSSHow to start OSS

Page 33: Start your open source project

Why Open sourceWhy Open source

Reinventing the wheel Reinventing the wheel

vs vs

Continuous improvmentContinuous improvment

Page 34: Start your open source project

Why Open sourceWhy Open source

Review by few Review by few

Vs Vs

Review by moreReview by more

More correction and less bugsMore correction and less bugs

Page 35: Start your open source project

Why Open sourceWhy Open source

Closed building with few Closed building with few guardsguards

VsVs

Open building with more and more guardsOpen building with more and more guards

More SecurityMore Security

Page 36: Start your open source project

How to start OSSHow to start OSS

● You need to have new idea or have another You need to have new idea or have another implemntation for old ideaimplemntation for old idea

● factors that affect the success of open source factors that affect the success of open source software projectssoftware projects● Number of developers Number of developers ● Experience of developersExperience of developers● Target users type Target users type ● Programming language typeProgramming language type● Software typeSoftware type● License typeLicense type

Page 37: Start your open source project

HypothesesHypotheses● Hypothesis 1: Number of developers is positively Hypothesis 1: Number of developers is positively

associated with the success of OSS projectsassociated with the success of OSS projects● Hypothesis 2: Experience of developers is positively Hypothesis 2: Experience of developers is positively

associated with the success of OSS projectsassociated with the success of OSS projects● Hypothesis 3: Targeting developers as users is positively Hypothesis 3: Targeting developers as users is positively

associated with the success of OSS projectsassociated with the success of OSS projects● Hypothesis 4: Using a commonly used programming Hypothesis 4: Using a commonly used programming

language is positively associated with the success of OSS language is positively associated with the success of OSS projectsprojects

● Hypothesis 5: Development of application development Hypothesis 5: Development of application development and deployment tools is positively associated with the and deployment tools is positively associated with the success of OSS projectssuccess of OSS projects

● Hypothesis 6: Use of non-restrictive OSS licenses is Hypothesis 6: Use of non-restrictive OSS licenses is positively associated with the success of OSS projectspositively associated with the success of OSS projects

Page 38: Start your open source project

What do you needWhat do you need

● Place to host the project onPlace to host the project on● Revision control systemRevision control system● Issue tracking systemIssue tracking system● Continuous integration toolsContinuous integration tools● Mailing lists and IRC channelMailing lists and IRC channel

Page 39: Start your open source project

Place to host the project onPlace to host the project on

● GoogleGoogle● http://code.google.com/http://code.google.com/

● SourceforgeSourceforge● http://sourceforge.net/http://sourceforge.net/

● GithupGithup● https://github.com/https://github.com/

● GitoriousGitorious● http://gitorious.org/http://gitorious.org/

Page 40: Start your open source project

Revision control systemRevision control system

● Client–serverClient–server● CVSCVS● SVNSVN

● DistributedDistributed● BazaarBazaar● GITGIT● MercurialMercurial

Page 41: Start your open source project

Issue tracking systemIssue tracking system

● BugzillaBugzilla● JIRAJIRA● IBM Rational ClearQuestIBM Rational ClearQuest● Google Code HostingGoogle Code Hosting● ZentrackZentrack

Page 42: Start your open source project

Continuous integration toolsContinuous integration tools

● Apache GumpApache Gump● BambooBamboo● HudsonHudson● BuildBotBuildBot

Comparison : Comparison : http://en.wikipedia.org/wiki/Comparison_of_Continuous_Integration_Softwarehttp://en.wikipedia.org/wiki/Comparison_of_Continuous_Integration_Software

Page 43: Start your open source project

Mailing lists and IRC channelMailing lists and IRC channel

● Just make a good communication environment Just make a good communication environment

Page 44: Start your open source project

Thank you for attending, please let me know if you have Thank you for attending, please let me know if you have any questionsany questions

For later questions For later questions [email protected]@gmail.com