Open source software Flashcards
Issues with open source
unrealistic expectations about the benefits of open source
- too few active developers
- open code needs to be understandable by strangers
- needs a development site and communication tools
Barriers to entry for new devs
Falacy that little or no PM is required for open source
Onion model of OS community structure
passive user active user peripheral dev active dev committers core team
onion model core team
consists of one or two developers who make decisions about the software direction and contributions to the code base
onion model committers
commit rights that allow admission of the code into the main code base
onion model active developers
regularly contribute to code repo
onion model peripheral developer
submit code as patches meaning that their code does not enter the main code base until a review from the core team
onion model active user
contribute to the documentation, localization, supporting user in discussion forums or filing bug reports
passive users (onion model)
download and use software without connecting to the community
advantages of open source
speed of development and time saving
more people fixing bugs and security flaws
open standards and standard interfaces - enables use of different solutions
less likely to have a vendor lock
basic open-source project components
community of software developers
software license
tools for project hosting and communicating
governance model
goal of open source foundations
help devs establish open source projects - doubt this is examinable
what are open source software licenses
license protects contributers and users
outlines the terms of use
can limit liability
important to understand legalities
some examples of popular software licenses
Apache license
BSD 3 clause new
BSD 3 clause simplified
GNU general public
Example of open source governance models
do-ocracy Founder-leader self-appointing council or board electorial corporate-backed foundation backed
what a project needs
web site mailing lists real time chat version control bug tracking
how to transform private vision into public one
choose good name
register domain
set up the website
Project homepage
mission statement
state that project is free
project communication
communication channels
developer guidelines
Project requirements, features and status
features - what does it do, list of features
Requirements - computing environment required to run the software
development status - goals and needs
project - accurate accounting of deficiencies
Identify issues in context
project distribution
downloads?
distribution channel should be convenient, standard and as low overhead as possible
Standardize build and installation procedures
project documentation - minimal criterea
tell reader how much technical knowledge and expertise they should have
basically - user manual
tutorial style example
Do anything vs GPL
do anything - if you’re okay with code being used i n propriety programs
GPL - dont want code to be used in propriety programs
How to apply software license
tell public about you intende to license (on web page)
for legal purposes, the software must contain the license.
- Full license text “Copying” or “License”
Setting team dynamics - how to set the tone
avoid private discussions - no inner circle
public discussion
Never let bad behaviour slide by unnoticed
issue life cycle
submission open diagnose resolution closed
Important things when setting up a new project
setting the tone
practicing conspicuous code review
version control (devs need access to realtime updates)
bug or issue tracker