quartz/content/notes/22-open-source-software.md
2022-06-16 14:16:07 +12:00

3.3 KiB

title aliases tags sr-due sr-interval sr-ease
22-open-source-software
cosc202
lecture
2022-06-19 3 250

Describe Origination

  • how to floss projects get created
    • forking an existing open source project
      • mangement of existig project "run out of steam"
      • users decide to take development of themselves
    • some decides to apply an open source licence
      • e.g., individual or member of team with appropriate responsibility
  • Motivation for release as floss
    • giving back to community
    • seeking addition team members, code or otherwise
    • grow ecosystem around the software system
      • essentially a form of publicity

Detail Roles

  • Team shape
    • depends of specifics and scale of project
    • small projects often driven by an individual
    • a few developers collaborate closely - often code founders
    • large potentially open team combine contributions
  • different jobs and skill sets beyond coding
    • documentation - creating and updating
    • code review - pre-merge and post-merge quality control
    • testing - developing tests (or test suites), and reporting back user bugs
    • community - keeping team motivated and focused

Contrast Governance vs management

  • mangement
    • day to day decisions
  • governance
    • controlling overall roadmap
    • setting priorities to reach intended milestones
    • often a spectrum between
      • commercial organisation that retain ownership
      • open community-led approach
    • community-led governance needs agreed stucture
      • e.g., executive, committees, voting process for key decisions

Sketch OSS foundations

# sharing development and governance

  • required governance processes similar in big projects
    • can benefit from manageing multiple projects together
  • e.g. apache software foundation (ASF)
    • american non-profit
    • manages more than 350 projects
    • can share governance, management, and commounity
      • conferences (apacheCon) bringing community together
  • many others e.g., free software foundation (GNU)

Incubation into open source foundations

  • foundations reputation: projects must he high quality
    • but also want to be boradly accepting
  • ASF has Apache incubator
    • new projects gain inital ASF linkage
    • see if projects demonstrate continued development activity
    • see if projects are popular iwth end users
  • Large organisations can donate code to incubator
    • need to be sure that code can be maintained
    • e.g., google wave

Understand sustainability challenges

  • need mechanisms to keep project resouced
    • e.g., financial support for key developers
  • sustainability - software is seldom "finished"
    • new features require development
    • bugs need fiing, but hobbyists don't give 24/7 service
    • older code within project may need maintenance
  • Development path can become contentious
    • e.g., too slow, or percieved to be in wrong direction
      • ...which can lead to project forks and split community

Examples

  • PEP python enchancement proposal
    • usually focis on language feature additions or changes
    • but sometimes relate to the governance of Python
    • PEP approval process involves input from:
      • python community
      • python steering council
    • Guido van rossum was 'benevolent dictator for life'
      • st ood d
  • JCP java community process
    • open collaboration to ratify java standards
    • JSRs java specification request