Open Source vs. Collaborative Software: FOSS is Not Enough

Similar documents
SA4 Software Developer Survey Survey Specification v2.2

THE OPEN SOURCE DEVELOPER REPORT

Maven the Beautiful City. Healthy, Viable, and Productive Build Infrastructures

Software configuration management

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Moving a Commercial Forecasting Product to Open Source

Why this lecture exists ITK Lecture 12: Open Source & Cross Platform Software Development

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Software Engineering. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 16

Continuous Integration

Selection and Management of Open Source Software in Libraries.

Introduction to Programming Tools. Anjana & Shankar September,2010

CSPA. Common Statistical Production Architecture Descritption of the Business aspects of the architecture: business models for sharing software

Writing Open Source Software for BlackBerry

Maven or how to automate java builds, tests and version management with open source tools

Build management & Continuous integration. with Maven & Hudson

Software infrastructure for Java development projects

Continuous integration with Jenkins CI

Continuous Delivery. Alejandro Ruiz

Source Code Control & Bugtracking

Getting Started with Open Source Compliance

Continuous Integration Multi-Stage Builds for Quality Assurance

Open Source Software Development

Writing Books Using Open Source Software

Software Continuous Integration & Delivery

Software Development Processes For Embedded Development A checklist for efficient development using open-source tools

SOFTWARE DEVELOPMENT BASICS SED

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd

Software Configuration Management

Barely Sufficient Software Engineering: 10 Practices to Improve Your Research CSE Software

Software Package Document exchange (SPDX ) Tools. Version 1.2. Copyright The Linux Foundation. All other rights are expressly reserved.

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

vs. Web Site: Blog: blog.soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise

Source Control Systems

Java Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

Traditional Commercial Software Development. Open Source Development. Traditional Assumptions. Intangible Goods. Dr. James A.

On the Influence of Free Software on Code Reuse in Software Development

SEVENTH FRAMEWORK PROGRAMME Networked Media. Specific Targeted Research Project SMART (FP )

Metatron Technology Consulting s Strategic Guide to Open Source Software

Redmine: A project management software tool. January, 2013

Java Software Quality Tools and techniques

THE OPEN SOURCE DEVELOPER REPORT

Project Management. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies

Meister Going Beyond Maven

Introduction to OSGeo and QGIS

GPL, MIT, BSD, GEHC (and me)

Jenkins TestLink Plug-in Tutorial

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Impact CM: Model-Based Software Change and Configuration Management

Integrated version control with Fossil SCM

Software Configuration Management and Continuous Integration

TIME. Programming in the large. Lecture 22: Configuration Management. Agenda for today. About your Future. CM: The short version. CM: The long version

Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS. Craig Rodrigues

SAS in clinical trials A relook at project management,

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management

Anar Manafov, GSI Darmstadt. GSI Palaver,

Apache Gump. Continuous Integration on Steroids. Apache Software Foundation Building FOSDEM 2005

FOSS License Restrictions and Some Important Issues

How To Value Open Source Software

Keynote Speech. Free and Open Software: Features, Development, Experiences, Benefits and Opportunities

Advanced Computing Tools for Applied Research Chapter 4. Version control

Continuous Integration

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

Introduction to Agile Software Development Process. Software Development Life Cycles

Easing embedded Linux software development for SBCs

Continuous Integration: A case study

Continuous Integration. CSC 440: Software Engineering Slide #1

Jenkins on Windows with StreamBase

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

Software Sustainability Services. Some vague initial technical thoughts Chris Cannam, March 2010

Aaron Evans Software Quality Assurance, Test Automation, SDET, Web Developer

CONTINUOUS INTEGRATION. Introduction

My review of Webfaction

SOA-14: Continuous Integration in SOA Projects Andreas Gies

In depth study - Dev teams tooling

Teaching Software Projects at Universities in Tampere

Deliverable DS4.3.2: Report on Development Infrastructure Usage and Adoption

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8

An Introduction to Software Development Process and Collaborative Work

Google and Open Source. Jeremy Allison Google Open Source Programs Office

Transcription:

Open Source vs. Collaborative Software: FOSS is Not Enough Peter F. Peterson Much of the software at user facilities is developed is released by making the source code available and decorated with one of many open source licenses. Some projects go further than this and publish the source on a third party site with links to issue tracking and automated build results. While this is excellent for the user of the software, it doesn t go far enough to engage the larger community and ensure a well maintained project that can be easily contributed to and exist beyond the term of a post-doc. This talk will discuss the details of how to convert an open source software project into a collaborative software project. ORNL is managed by UT-Battelle for the US Department of Energy

What we want Written by a post-doc The source is the documentation It s on the cluster The post-doc runs it for everybody Post-doc gets a real job Archaeology reveals a VMS binary Irreproducible results 2 You should write collaborative open source software

The solution? Free Open Source Software 3 You should write collaborative open source software

Free as in beer - gratis /* * ---------------------------------------------------- * THE BEER-WARE LICENSE (Revision 42): * <phk@freebsd.org> wrote this file. As long as you * retain this notice you can do whatever you want with * this stuff. If we meet some day, and you think this * stuff is worth it, you can buy me a beer in return * Poul-Henning Kamp * ---------------------------------------------------- */ 4 You should write collaborative open source software

Free as in speech - libre 5 You should write collaborative open source software

Open Source Software 6 You should write collaborative open source software

Open Source Licenses Apache License 2.0 BSD 3-Clause New or Revised license BSD 2-Clause Simplified or FreeBSD license GNU General Public License (GPL) GNU Library or Lesser General Public License (LGPL) MIT License Mozilla Public License 2.0 Common Development and Distribution License Eclipse Public License 7 You should write collaborative open source software http://opensource.org/licenses/

Keep on trying Written by a post-doc The source is the documentation It s on the cluster department cvs server The post-doc runs it for everybody Post-doc gets a real job Archaeology reveals a VMS binary Irreproducible results 8 You should write collaborative open source software

Collaborative software Intentional group processes plus software to support them Software with a shared source 9 You should write collaborative open source software

Collaborative Open Source Software 10 You should write collaborative open source software

Required tools Source Control Management Issue Tracking Build System Communication Documentation 11 You should write collaborative open source software

SCM RCS - http://www.gnu.org/software/rcs/rcs.html CVS - http://www.nongnu.org/cvs/ Subversion - http://www.apache.org/dev/versioncontrol.html Git - http://www.git-scm.com Mercurial http://mercurial.selenic.com Bazaar - http://bazaar.canonical.com 12 You should write collaborative open source software

Issue tracking Bugzilla Fossil http://fossil-scm.org Github issues Jira Trac 13 You should write collaborative open source software

Build system Ant Autoconf/Autotools Cmake Make/NMake Maven Ninja Rake Scons 14 You should write collaborative open source software

Continuous Integration Systems Buildbot - http://buildbot.net/ Continuum Hudson/Jenkins Team City - http://www.jetbrains.com/teamcity/ Travis-CI 15 You should write collaborative open source software

Communication Meetings Phone calls Chat IRC Blogs 16 You should write collaborative open source software

Developer documentation Doxygen Javadocs Sphinx Wiki 17 You should write collaborative open source software

User documentation Blog Docbook LaTeX Sphinx Wiki Word 18 You should write collaborative open source software

Success Written by a couple of post-docs The source is the documentation is in the source and here is a manual It s on cluster department cvs server github The post-doc runs it for from everybody Post-doc gets a real job Archaeology reveals a VMS binary Build system Irreproducible results 19 You should write collaborative open source software

The CommitStrip Test http://www.commitstrip.com/en/2014/09/16/le-commitstrip-test/ 20 You should write collaborative open source software

21 You should write collaborative open source software

The Joel Test 1. Do you use source control? 2. Can you make a build in one step? 3. Do you make daily builds? 4. Do you have a bug database? 5. Do you fix bugs before writing new code? 6. Do you have an up-to-date schedule? 7. Do you have a spec? 8. Do programmers have quiet working conditions? 9. Do you use the best tools money can buy? 10. Do you have testers? 11. Do new candidates write code during their interview? 12. Do you do hallway usability testing? 23 You should write collaborative open source software