Week 5 Open Source - Sheets & Articles Flashcards
What does a “cathedral” stand for in software engineering? (Raymond, 1997)
Software built like a cathedral: carefully crafted by individual wizards or small bands of mages working in splendid isolation, with no beta to be released before its time.
What does a “bazaar” stand for in software engineering (Raymond, 1997)?
Software built like a bazaar: release early and often, delegate everything you can, and be open to mix-and-matching (promiscuity).
What is Linus’s law?
Given enough eyeballs, all bugs are shallow.
What are the necessary preconditions for the bazaar style (Raymond, 1997)?
- You cannot code from the ground up
- When you start community-building, you need to be able to present a plausible promise
-> it MUST run and convince co-developers that it can
evolve into something really neat in the future - Coordinator needs to be able to recognize good design ideas from others
- A project coordinator must have good people and communication skills to build a dev. community and to attract interesting people.
What are three factors for the increased interest in open source software development (Lerner & Tirole, 2002)?
- Rapid diffusion of open source software
- Significant capital investments in open source projects
- The new organization structure
Name some examples of open source software.
Apache, Linux, Sendmail, to name a few from (Lerner & Tirole, 2002)…
What motivates open source programmers (Lerner & Tirole, 2002)?
Based on two incentives: career concern & ego gratification. In total = signaling incentive
Careers concern: future job offers, shares in commercial OS-based companies, or future access to the venture capital market
Ego gratification: desire for peer recognition, reputation building
How can one increase the signaling incentive for open source programmers? (Lerner & Tirole, 2002)
- More visible performance to the relevant audience
- Higher impact of effort on performance
- More informative the performance is about talent
An open source project may lower the cost of the programmer. Give two reasons why. (Lerner & Tirole, 2002)
- Because the code is freely available to all, it can be used in schools & universities for learning purposes; it is already familiar to programmers (Alumni effect);
- Cost can be offset if the activity brings about a private benefit for the programmer and his/her firm.
What are some of the open-source production’s requirements? (Lerner & Tirole, 2002)
- Modularity; small, well-defined tasks (modules) that individuals can tackle independently
- Existence of fun challenges to pursue
- Credible leader/leadership (vision, attracting programmers, keeping the project together)
- Organization consistent with the nature of the process
Why are programmers relatively easy to attract at an early stage of an open-source project? (Lerner & Tirole, 2002)
- At the start, challenging problems are abundant
- If the project is successful, early contributors’ work will be very visible.
What are the 3 strategies to commercially capitalize on the open-source movement? (Lerner & Tirole, 2002)
- Providing complementary services and products not supplied by the community
- Releasing existing proprietary code
- Be the intermediary; create a platform and ask fees for the online marketplace and other features
What is open source?
Type of software in which source code is open for study, modification, and redistribution.
Give a summary of the history of open source.
1990s: Linux released, open source dominance; Golden age
2000s: IT companies participate in open source
2010s: IT companies embrace open source (Microsoft purchasing Github for example)
What are the two licensing types of OSS?
- Restrictive licenses (every software using the code should adopt the same license; socialist ideology; Linux Kernel)
- Permissive licenses (permits the user to change the license; Python; liberal ideology
What is GitHub?
The most famous OS development platform.
- It is a version control system
- It is a collaborative environment, community building
- > repositories are projects
- > Owner - creates project, assigns license
- > Contributor - building new features and/or identifying bugs
Explain the two systems of version control - CVCS & DVCS
Centralized version control system (like Subversion)
- Central server - checking code changes once done
- Problems: security (only 1 copy), conflicts
Decentralized version control system (like GitHub)
- Entire project is copied to local system
- They serve as backup (security)
- Conflicts lower - test before merging, conflicts resolved locally
Why is it hard to determine a workflow in OSS development?
It is often dynamic, hence every project may have a different workflow.
Explain the basic workflow & feature branch workflow
Basic workflow:
- Sequential & incremental
- Each developer forks the project, works locally, then sends a pull request (A, AB, ABC, ABCD…)
Feature branch workflow:
- Create a feature branch and merge after development (after resolving conflicts)
What are the two main roles of OSS development?
- Collaborator / Write Access contributor
- > Core contributors
- > Community given status
- > Identify features, bug fixes etc.
- Contributor / No write access
- > Peripheral contributors
- > Any individual can submit code
- > Less active
- > Large workforce
What are the GitHub created roles (5)?
Read, Triage (moderator-like), Write, Maintain, Admin