realizing the benefit of (re-)using open source software

52
Realizing the Benefit of (Re-)using Open Source Software Chris A. Mattmann Senior Computer Scientist, NASA Jet Propulsion Laboratory Adjunct Assistant Professor, Univ. of Southern California Member, Apache Software Foundation

Upload: diella

Post on 13-Jan-2016

24 views

Category:

Documents


1 download

DESCRIPTION

Realizing the Benefit of (Re-)using Open Source Software. Chris A. Mattmann Senior Computer Scientist, NASA Jet Propulsion Laboratory Adjunct Assistant Professor, Univ. of Southern California Member, Apache Software Foundation. Roadmap. Areas for Open Source within the NASA context - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Realizing the Benefit of (Re-)using Open Source Software

Realizing the Benefit of (Re-)using Open Source Software

Chris A. MattmannSenior Computer Scientist, NASA Jet Propulsion Laboratory

Adjunct Assistant Professor, Univ. of Southern CaliforniaMember, Apache Software Foundation

Page 2: Realizing the Benefit of (Re-)using Open Source Software

Roadmap• Areas for Open Source within the NASA context• Strategies and Decision Points• Discuss outcome from the NASA OSS• Discussion and Recommendations

– All of the above will take 30-45 mins, then we’ll have Robert Downs present for ~20 mins, and then the last 20-25 mins for discussion

• This is a shorter version of a longer, half day breakout on NASA Open Source that I led at the 9th NASA Earth Science Data System Working Group Meetings in October 2010

• http://s.apache.org/anM • Also check out NASA OSS slides that inspired this:

http://s.apache.org/pw • ESIP Summer 2011 Session: http://s.apache.org/Wd0

4-Jan-12 2ESIP-WINTER12

Page 3: Realizing the Benefit of (Re-)using Open Source Software

And you are?

• Apache Member involved in– OODT (VP, PMC), Tika (VP,PMC), Nutch (PMC), Incubator (PMC), SIS

(Mentor), Lucy (Mentor) and Gora (Champion), MRUnit (Mentor), Airavata (Mentor)

• Senior Computer Scientist at NASA JPL in Pasadena, CA USA

• Software Architecture/Engineering Prof at Univ. of Southern California

4-Jan-12 3ESIP-WINTER12

Page 4: Realizing the Benefit of (Re-)using Open Source Software

The NASA ESDS Context

4

Where is open source most useful?

Which area should produce open source software?

4-Jan-12 ESIP-WINTER12

Page 5: Realizing the Benefit of (Re-)using Open Source Software

Concerns in the Open Source World

• Licensing– GPL(v2, v3?), LGPL(v?), BSD, MIT, ASLv2– Your own custom license approved by OSS

• NASA OSS license?• Caltech license?

– Copy-left versus Copy-right• Redistribution

– Can you take open source product X and use it in your commercially interested software Y?

• If so, do you have to pay for it?– Should others pay for your open source product if they use it in their

commercial application?• Open Source “Help Desk” Syndrome versus Community

– Are you trying to simply make your open source software (releases) available for distribution (aka help desk)?

– Are you trying to get others to “buy in” to your open source software?

54-Jan-12 ESIP-WINTER12

Page 6: Realizing the Benefit of (Re-)using Open Source Software

Concerns in the Open Source World

• Intellectual Property– Who owns it?– How does the Open Source Software affect your IP?

• Open Source Ecosystems– Where can you find the “killer app” you need?– Which communities are conducive for longevity?– How relevant are “generic” open source software communities to NASA Earth

Science Data Systems?• Contributing

– Are you even allowed to contribute to a OSS community?– Can you do it on “company” time?– What’s required?– What’s the governance?

• Responsiveness– How response is the OSS community to your projects’ needs?

64-Jan-12 ESIP-WINTER12

Page 7: Realizing the Benefit of (Re-)using Open Source Software

Concerns in the Open Source World

74-Jan-12 ESIP-WINTER12

Page 8: Realizing the Benefit of (Re-)using Open Source Software

The NASA ESDS Context

8

The aforementioned OSS concerns are cross cutting against the whole ESDS enterprise!

4-Jan-12 ESIP-WINTER12

Page 9: Realizing the Benefit of (Re-)using Open Source Software

Licensing• Relates to: redistribution, intellectual property,

contributing, legal strategies

• There are tons of OSS approved licenses– What’s the difference between them?

• The difference mostly has to do with – Commercialization– Redistribution– Attribution

94-Jan-12 ESIP-WINTER12

Page 10: Realizing the Benefit of (Re-)using Open Source Software

Redistribution• So you’ve built some awesome piece of NASA ESDS Software• And you’re wondering

– What are my options for distributing it to• Other DAACs?• Other SIPS?• Other funded proposal efforts we’re collaborating with (ACCESS, MEASURES)• Any other collaborators?

• Question: what license are you going to choose?– Hopefully one that supports redistribution under your own terms!

• How to redistribute the software?– Requires infrastructure– Who’s going to set it up?

104-Jan-12 ESIP-WINTER12

Page 11: Realizing the Benefit of (Re-)using Open Source Software

OSS Ecosystems• Where should you go to for your open source project?

• Should your org have its own?• Should your project (SIPS, DAAC, proposal) have its own?

114-Jan-12 ESIP-WINTER12

Page 12: Realizing the Benefit of (Re-)using Open Source Software

Apache Maturity Model• Start out

with Incubation

• Grow community

• Make releases

• Gain interest• Diversify

• When the project is ready, graduate into– Top-Level Project (TLP)– Sub-project of TLP

• Increasingly, Sub-projects are discouraged compared to TLPs

12ESIP-WINTER124-Jan-12

Page 13: Realizing the Benefit of (Re-)using Open Source Software

• Apache is a meritocracy– You earn your keep and your

credentials• Start out as Contributor

– Patches, mailing list comments, etc.– No commit access

• Move onto Committer– Commit access, evolve the code

• PMC Members– Have binding VOTEs on releases/personnel

• Officer (VP, Project)– PMC Chair

• ASF Member– Have binding VOTE in the state of the foundation– Elect Board of Directors

• Director– Oversight of projects, foundation activities

13ESIP-WINTER124-Jan-12

Apache Organization

Page 14: Realizing the Benefit of (Re-)using Open Source Software

SourceForge (a different model)• Project Proposal

– Accepted? Get going!• No foundation-wide oversight• Tons of dormant projects with

no communities of interest• Goal is to host infrastructure and

host technologies• Goal is not to build communities• No foundation-wide rules or guidelines for committership or for

project management – Dealt with locally by the progenitor of the project– Can lead to BDFL (benevolent dictator for life) syndrome

• No foundation-wide license requirements– BSD, GPL(v2, v3), MIT, LGPL, etc all allowed

14ESIP-WINTER124-Jan-12

Page 15: Realizing the Benefit of (Re-)using Open Source Software

OSS Ecosystems• FTR, there are tons of concerns here

– Should the ecosystem impose license restrictions?• Only support license X or Y?

– What are the redistribution policies?– What’s the community?– What’s the IP?– What’s the infrastructure support?– Is it a foundation with rules, or just free for all?

• Elephant in the room: What is the exposure? How many people are going to community C and are going to see your software and perhaps want to use it, improve it, file bugs against it, file patches, etc.?

• Where/how does this matter to ESIP?– Standing up our own OSS ecosystem may make sense for large, coarse-

grained federations– A LOT more difficult to justify OTOH, for fine grained components, and module

reuse

154-Jan-12 ESIP-WINTER12

Page 16: Realizing the Benefit of (Re-)using Open Source Software

Community versus “Help Desk”• How do you want to have your open source software

project run in the open?– Do you expect folks to come to you and only file bugs?

• Then you and your team are the only ones who can fix them?• Then you and your team are the only ones who can release updates?• ”Help Desk” open source project• Examples: Sourceforge.net, Google Code, etc.

– Do you expect to grow a community of interest where volunteers actively engage in software development?

• Are volunteers empowered to pick up a shovel and help dig the hole?• Can volunteers (including your own paid employees) file issues?• Do you want to give the community a stake/vote in the overall

process?• “Community Building” open source project• Examples: Apache Software Foundation, Eclipse Foundation, etc.

164-Jan-12 ESIP-WINTER12

Page 17: Realizing the Benefit of (Re-)using Open Source Software

Communities• Working on common software

– Measured not in terms of what center contributor works for, but in terms of

• Number of patches contributed (high quality)• Mailing list questions answered• # of releases made, or helped with• Tests written• Documentation added

– Take the politics out of it and just work on “core” common code of mutual interest

• Deciding on the right redistribution mechanism and license– Apache Software Foundation and ASLv2 provide openness and

ability for center-local redistribution, commerciality and other decisions (for internal distributions and beyond)

174-Jan-12 ESIP-WINTER12

Page 18: Realizing the Benefit of (Re-)using Open Source Software

Intellectual Property• Centers can similarly (if they so choose) have their own

customizations/distributions of OSS – NASA Langley DAAC’s FooBar powered by Apache Hadoop– NASA AIRS SIPS’s Baz built on Apache Pivot powered by Linux

• NASA protects its marks through the New Technology Report process– Uncover marks– Uncover potential patents– License/etc., as appropriate– We see this less on the ground side than we do with the flight– Mostly NASA wide, but some center specifics (e.g., Caltech)

• Takeaway: the answer to “who owns it” is still “the Center” or “the project” who initiated the software development, with or without OSS. OSS may have its own restrictions/rules, so need to be wary of that (recall copyleft syndrome)

184-Jan-12 ESIP-WINTER12

Page 19: Realizing the Benefit of (Re-)using Open Source Software

Contributing to OSS• OSS communities are built around “contributions”

– But what does it mean to contribute?• Mailing list help/discussions

– Yes those are contributions• Reporting/filing bugs and new feature improvements

– Yes those are contributions• Writing documentation and user guides

– Yes those are contributions• Volunteering to make releases

– Yes those are contributions• Positively contributing towards the evolution of the project with

your thoughts and ideas– Yes those are contributions

• NOTE: What did I leave out?

194-Jan-12 ESIP-WINTER12

Page 20: Realizing the Benefit of (Re-)using Open Source Software

Contributing to OSS: code• Yes yes, code is important (but not the only contribution)• How should you go about your code contributing process to open

source?• Relates to: “Help Desk” versus Community• Do you want the members of your project to be the only folks who

can actual touch the source code of your OSS project?– Only bug reports?– How “open” are you?– How “open” do you want to be?

• Do you want to accept code contributions from the community?– Patches?– Allow community members to become “committers” (assist in the

development of the code?)– RTC versus CTR

204-Jan-12 ESIP-WINTER12

Page 21: Realizing the Benefit of (Re-)using Open Source Software

Responsiveness• Measure of a “healthy” community• Does your patch sit?• Do your mailing list questions go unanswered?• Is the project electing new “committers” (if it’s in community

mode)?

• How should your group decide whether or not an OSS project you want to use is responsive?

• How should your group decide how responsive it will be?

• Heavily influenced by:– Community mode: “Help desk” versus “Community”

214-Jan-12 ESIP-WINTER12

Page 22: Realizing the Benefit of (Re-)using Open Source Software

Getting help?• Using Open Source Software is different than producing software intended

for distribution in open source– Either way: what’s your strategy for getting help?– It used to be: you can’t rely on OSS for any “real time” support– Not anymore: companies stood up “around” OSS technology, dedicated to

providing support• Apache Hadoop: Cloudera• Apache Solr/Lucene: Lucid Imagination• Apache Cassandra: Riptano• Apache Maven: Sonatype• …others?

• How good is the documentation for the OSS Project?– Healthy wiki?– Healthy “cook books”?– Is the documentation baked in or separate?– Javadocs (or equivalent) on all public methods?– Use cases?

224-Jan-12 ESIP-WINTER12

Page 23: Realizing the Benefit of (Re-)using Open Source Software

Getting help: DIY• Build expertise and intellectual capital in existing open

source technology– If you are pulling it in and using it– Involves: “Community” model, but also works in “Help Desk”– Involves: active participation– Involves: friendly license (especially if you want to redistribute)

• If you are building your own technology that you want to put into open source– Others may “help” you– Solve challenges at ZERO cost to you

(well not ZERO but minimal)– Free cycles of interest

234-Jan-12 ESIP-WINTER12

Page 24: Realizing the Benefit of (Re-)using Open Source Software

Interactions with Open Source

• Case Study: Mailing lists communications*

24* Taken from: http://wiki.apache.org/nutch/Becoming_A_Nutch_Developer

4-Jan-12 ESIP-WINTER12

Page 25: Realizing the Benefit of (Re-)using Open Source Software

Interactions with Open Source• Mailing list interaction very important

– Most immediate feedback you get when contributing to open source, and also when creating your own open source project

– Is the biggest thing that turns people away to start out with– “who are these nerds and why don’t they have any manners?”– It’s all about “learning” their “language”

• Sure, the cost may be high in terms of ego and attitude, but the reward (free work!) is well worth it

• Following and understanding the practices of the OSS project are hugely important

– Know the license for an OSS product– Know whether they are “community” versus “help desk”– Know its history– Read its documentation– Be informed!

• Danger: thinking the OSS community is your personal helpdesk (or vice versa, you are its)

254-Jan-12 ESIP-WINTER12

Page 26: Realizing the Benefit of (Re-)using Open Source Software

Architectural and Implementation issues

• How to design for open source?• Extension points

– Places in your code for “plug ins”– Plugins should be well documented

• Public facing “javadoc” (or similar)• “Cookbooks” for integrating• Wiki pages• Baked in documentation

• Use of shared component marketplace– Many times PL specific– PyPI – Python– Maven Central/Ibiblio – Java– CPAN – Perl– STL, GNU, Autoconf, Make, etc. – C/C++– YMMV, some are

• Webified, have package metadata, searchable, etc.

264-Jan-12 ESIP-WINTER12

Page 27: Realizing the Benefit of (Re-)using Open Source Software

Leverage active technologies• Don’t expect to use Haskel and have a huge OSS community there

to assist you• Some modern active OSS languages

– Python– Perl– Ruby– Java

• Don’t just be a consumer, be a producer– Pick up a shovel and help dig the hole– Instead of overlooking the OSS

community and telling them how the hole should be dug to meetyour needs

– Will help you get needed OSSfeedback for your technology

274-Jan-12 ESIP-WINTER12

Page 28: Realizing the Benefit of (Re-)using Open Source Software

Legal Issues• Understand patent law

– Or pay people to understand it for you• Understand OSS licenses and what you sign up for when

you use relevant technologies and their licenses• Look for open APIs and open specs

– Understand what “open” means• Vendor lock in

– Try to avoid it through the use of all the techniques of OSS which we’ve discussed

• Engage the community and understand what’s “really” free an what isn’t

• Get legal’s buy-in– Don’t insulate them

284-Jan-12 ESIP-WINTER12

Page 29: Realizing the Benefit of (Re-)using Open Source Software

Legal Issues• Understand “marks”

– Trademarks– Their implication to patents

• What will your agency support in terms of licensing?– Center specific– Depends on IP, export control, ITAR, compliance, commercialization– If you make it through all of the above and the software is cleared for

release, you really are in the driver’s seat• No agency wide guidelines• Most or all communities allowed• Most or all OSS approved licenses allowed

• Is there a Contributor License Agreement (CLA) or Corporate Contributor License Agreement (CCLA) to sign?– What are its implications?

294-Jan-12 ESIP-WINTER12

Page 30: Realizing the Benefit of (Re-)using Open Source Software

Free as in beer• “Something like the Apache foundation is the best place for released government software.

A previous attempt at release and public distribution via a private company was a truly dismal failure. OpenPBS (portable batch system) is supposed to be available to anyone that asks. However when you do ask a sales rep strings you along for more than a month trying to sell you something that they can't actually assure you will fit your requirements (and is no longer under development) even when the free one is documented as doing so. It was a truly stupid waste of the salesperson's time and mine that would have exceeded the price of providing the file for download or sending by email by several orders of magnitude and generated a lot of ill will. I'll go as far as saying it was blatant false advertising using a government funded open source product to do a bait and switch to try to sell me an unmaintained product they picked up in a corporate take over. My experience appears to have been identical to that of many that attempted to obtain this government funded open source software that NASA had declared was available for anyone. Eventually due to this open source project becoming closed the project just had to fork and the compatible Torque batch system was developed by people that had actually get hold of the original OpenPBS.”

– Slashdot user comment

304-Jan-12 ESIP-WINTER12

Page 31: Realizing the Benefit of (Re-)using Open Source Software

NASA Open Source Summit

4-Jan-12 ESIP-WINTER12 31

http://www.nasa.gov/open/source/

Page 32: Realizing the Benefit of (Re-)using Open Source Software

Discussion

• Let’s discuss the set of recommendations that came out of the NASA OSS

• They are very much applicable for the ESIP community as a whole– Each participating agency should be able to

answer how they are responding to these questions in their agency

– Forms the agency’s policy and strategy for open source software

4-Jan-12 ESIP-WINTER12 32

Page 33: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #1

• Communication and Publicizing NASA’s Open Source Efforts– In order for an Open Source policy to be

successful, NASA must make an effort to encourage both internal and external parties to participate in open source development.

– What does the agency need to do in order to make NASA’s open source efforts well known?

4-Jan-12 ESIP-WINTER12 33

Page 34: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #2

• Licensing– The NASA Open Source Agreement license

(NOSA) was originally developed in 2003 to enable NASA to provide software in source code form to the public, but software must already be considered complete.

– Which licenses should be allowed?

4-Jan-12 ESIP-WINTER12 34

Page 35: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #3

• Barriers to Involvement from the Open Source Community– As a government agency bound by significant

regulation and bureaucracy, what are the limits of community contribution For example, could a NASA originated codebase ever be handed over to a non NASA community member for long term support and maintenance? Is this legal? If it were legal, would it be practical?

4-Jan-12 ESIP-WINTER12 35

Page 36: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #4

• Barriersto Development Models and Ongoing Support– How do we ensure that “openness” does not

conflict with rigor? How narrow should the definition of “development team” be?

4-Jan-12 ESIP-WINTER12 36

Page 37: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #5

• Government Restrictions– How to we mesh open source software with

decidedly un-open policies such as ITAR?

4-Jan-12 ESIP-WINTER12 37

Page 38: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #6

• Limitations on Contributing to External Open Source Projects – What are the differences between contributing

minimal, incremental improvements or bug fixes and new features (as per NPR 2210.01)? And, who makes this decision?

– What lessons learned / best practices can be drawn from current NASA open source development “pathfinder” projects (and can these be applied “generally”)? What should be the policy of NASA personnel contributing in their off-hours? How do you handle / treat situations where people work off hours on things ‐ that derive directly, or are inspired, by what they worked on during duty hours?

4-Jan-12 ESIP-WINTER12 38

Page 39: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #7

• How does Open Source governance look within NASA? – There currently is a lack of information and

awareness towards licensing, legal issues, and activity in the open source software community at NASA. How does one receive guidance on open source contributions? What does the process look like?

4-Jan-12 ESIP-WINTER12 39

Page 40: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #8

• How should Open Source Efforts Be Supported? – NASA needs to develop cooperative support into

project structure• Project Level - permitting code deemed outside the

purview of ITAR/EAR to be open source • Budget Level - allowing for hiring of floating talent as

temporary staff augmentation• Organization Level - designing organization to support

habits and practices of open source development

4-Jan-12 ESIP-WINTER12 40

Page 41: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #9

• How does NASAopen source *everything?*– After all, it’s taxpayer money, right?

4-Jan-12 ESIP-WINTER12 41

Page 42: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #10

• How to close the feedback loop between policy makers, developers and end users– How do we ensure that draft policies have

enough eyes on them, particularly from the people who may be most affected or who have the most detailed knowledge of those areas, and who can thus best understand the implications?

4-Jan-12 ESIP-WINTER12 42

Page 43: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #10

• How to close the feedback loop between policy makers, developers and end users– Policies should not put anyone in the position

of performing the mission by violating the policy, or adhering to the policy and thereby reducing the effectiveness or inducing the failure of the mission. Many times, our policies derive (or are simply copied) from Federal law, regulation, guidance or, more commonly, from the policies of other agencies.

4-Jan-12 ESIP-WINTER12 43

Page 44: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #10

• How to close the feedback loop between policy makers, developers and end users– Effective feedback provides opportunities to

modify or adjust policy based on practical, realistic feedback. Are we taking advantage of these flexibilities?

4-Jan-12 ESIP-WINTER12 44

Page 45: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #11

• How to encourage cultural change in hiring practices?

• How can NASA attract more open source savvy people in a world where companies like Red Hat & Google offer careers that encourage such participation? NASA is competing against these companies for the same skills.

4-Jan-12 ESIP-WINTER12 45

Page 46: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #12

• How to Package Open Source Software to be More Accessible? – Collaboration on open source software is dependent

on others who find the software useful. The barrier for adoption of OSS must be kept low. This also prevents the project dying on the vine. Is there a way we can package OSS to make it easy for others to try and adapt to their needs?

– How does NASA ESDSWG SRWG Packaging Rec fit here?

4-Jan-12 ESIP-WINTER12 46

Page 47: Realizing the Benefit of (Re-)using Open Source Software

Recommendation #13

• Combining open source software development standards with Office of the Chief Engineer Policies– Also interested here in coordinating with the

NASA Earth Science Data System WGs, and Software Reuse WG, and ESIP Federation

4-Jan-12 ESIP-WINTER12 47

Page 48: Realizing the Benefit of (Re-)using Open Source Software

Wrapup

• Open source is critical to the strategy of the organization

• A great method of sustainability and longevity of software and community beyond organizational boundaries

• Different licenses, communities, development practices– Know what the differences mean

4-Jan-12 ESIP-WINTER12 48

Page 49: Realizing the Benefit of (Re-)using Open Source Software

Alright, I’ll shut up now

• Any questions?

• THANK YOU!– [email protected] – @chrismattmann on Twitter

4-Jan-12 49ESIP-WINTER12

Page 50: Realizing the Benefit of (Re-)using Open Source Software

Backup

Page 51: Realizing the Benefit of (Re-)using Open Source Software

Implementation strategies• Concerns

– Insulation: how do I insulate my project from OSS change but still use OSS?

– How do I make my project’s OSS software available for redistribution?

– What technologies are the “best” for my project?– What communities are the best?

• Answers:– See next slide– It depends– It depends– It depends

514-Jan-12 ESIP-WINTER12

Page 52: Realizing the Benefit of (Re-)using Open Source Software

Insulation: one strategy• Missions maintain

their own local CMs• Local mission CMs

contain forks of existing OSS software– Forks can be patch

based or CM based

• Changes found particularly effectiveare discussed within the comm.And eventually brought before a CCB that reviews their generality, etc.

52

Fig Credit:Dana Freeborn

4-Jan-12 ESIP-WINTER12