├── README.md ├── certificate.png ├── cover.png ├── week-1-quizz-open-source-software.md ├── week-1-quizz-successful-oss-projects-examples.md ├── week-1-quizz-why-use-open-source-software.md ├── week-2-quizz-continuous-integration.md ├── week-2-quizz-oss-licensing-and-legal-issues.md ├── week-2-quizz-working-in-oss-projects.md ├── week-3-quizz-github-and-other-hosting-providers.md ├── week-3-quizz-leadership-vs-control-and-why-projects-fail.md └── week-3-quizz-respecting-and-encouraging-diversity-in-oss.md /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 | ## Overview 6 | 7 | In this course, we will define what open source software is, we will go over the history of open source software and what benefits it has provided to the world’s technology infrastructure over the decades. The course aims to teach you how to work in open source projects productively and gain a lot of benefits from it, and really understand what the advantages are. You will learn about collaboration best practices, and how to encourage diversity in open source projects. We will discuss the different licensing models that are available, as this will help you decide what the best license is for your project. We will talk about methods that are commonly used, such as Continuous Integration, and use of GitHub and other hosting providers as a central meeting place for open source projects, and we will provide some examples of successful open source projects. 8 | 9 | This course is elaborated by Jerry Cooperstein. He has been working with Linux since 1994, developing and delivering training in both the kernel and user space. He has overall responsibility for all training content at The Linux Foundation. During a two decade career in nuclear astrophysics, he developed state-of-the-art simulation software on many kinds of supercomputers and taught at both the undergraduate and graduate level. Cooperstein joined the Linux Foundation in 2009 as the Training Program Director. 10 | 11 | ## Key Concepts 12 | **Week 1** 13 | * Define Open Source Software (OSS) 14 | * Outline the history of OSS 15 | * Distinguish and explain three different governance models 16 | * Illustrate the advantages of OSS for important stakeholders 17 | * Enumerate successful OSS projects 18 | 19 | **Week 2** 20 | * Discuss how to work effectively in an OSS community 21 | * Explain Continuous Integration, Continuous Delivery and Continuous Deployment, and how they are interrelated 22 | * Compare costs and benefits of using Continuous Integration 23 | * Estimate the value of each product over time 24 | * Recognize the common Fear, Uncertainty and Doubt (FUD) charges against OSS, and how to counter them 25 | * Know the best way to join an OSS project and begin to contribute properly and productively 26 | * Appreciate the importance of encouraging a diverse community of contributors in strengthening a project 27 | 28 | **Week 3** 29 | * Explain how good leadership can empower contributors to do their best work 30 | * Analyze the elements that contribute to the success or failure of open source projects 31 | * Discuss the importance of encouraging and respecting diversity in open source projects 32 | * Illustrate collaboration best practices in an open source project 33 | * Explain how Git enhances collaboration in open source projects 34 | 35 | 36 |

37 | 38 |

39 | -------------------------------------------------------------------------------- /certificate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lis-r-barreto/coursera-open-source-software-development-methods/fb8609126f96b9ad28a7294fea9976d6a680f169/certificate.png -------------------------------------------------------------------------------- /cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lis-r-barreto/coursera-open-source-software-development-methods/fb8609126f96b9ad28a7294fea9976d6a680f169/cover.png -------------------------------------------------------------------------------- /week-1-quizz-open-source-software.md: -------------------------------------------------------------------------------- 1 | ## Open Source Software 2 | 3 | **Q1. What are the main types of Open Source Software (OSS) licenses? Select all answers that apply.** 4 | 5 | Answer: 6 | * restrictive 7 | * permissive 8 | 9 | **Q2. Linux began:** 10 | 11 | Answer: in 1991 with an internet post by a student in finland 12 | 13 | **Q3. Which method best describes the way Android is developed?** 14 | 15 | Answer: company-led 16 | 17 | **Q4. Which method best describes the way FreeBSD is developed?** 18 | 19 | Answer: governing board 20 | 21 | **Q5. Which method best describes the way Linux kernel is developed?** 22 | 23 | Answer: benevolent dictatorship 24 | 25 | -------------------------------------------------------------------------------- /week-1-quizz-successful-oss-projects-examples.md: -------------------------------------------------------------------------------- 1 | ## Successful OSS Projects: Examples 2 | 3 | **Q1. The git version control system arose from needs of which project:** 4 | 5 | Answer: The Linux Kernel 6 | 7 | **Q2. Which of the following are OSS projects used to construct a graphical user interface (GUI)?** 8 | 9 | Answer: 10 | * GNOME 11 | * KDE 12 | * Wayland 13 | * X Window System 14 | 15 | **Q3. Which of the following are projects emanating from the Free Software Foundation?** 16 | 17 | Answer: 18 | * gdb 19 | * gcc 20 | * glibc 21 | * bash 22 | 23 | **Q4. Which of the following are widespread fully OSS Projects (Select all that apply):** 24 | 25 | Answer: none of the above 26 | 27 | **Q5. Which of the following document preparation systems are OSS projects (Select all that apply):** 28 | 29 | Answer: 30 | * LibreOfiice 31 | * TeX,LaTeX and related versions 32 | -------------------------------------------------------------------------------- /week-1-quizz-why-use-open-source-software.md: -------------------------------------------------------------------------------- 1 | ## Why Use Open Source Software? 2 | 3 | **Q1. From a business perspective, use of OSS (Select all answers that apply):** 4 | 5 | Answer: 6 | * Makes marketing easier as some ingredients are already well-known and trusted 7 | * Enables use of ingredients from other sources and speeds development 8 | 9 | 10 | **Q2. OSS is (Select all answers that apply):** 11 | 12 | Answer: 13 | * Can be more secure because many developers can easily see the code, look for problems, and mitigate problems when they are discovered 14 | * Secure or insecure depending on the quality and priorities of the project maintainers, but at least users can judge this by open discussion and code inspection 15 | 16 | **Q3. For school systems at any level, use of OSS (Select all answers that apply):** 17 | 18 | Answer: 19 | * Can lower costs by letting older hardware be used 20 | * Can lower costs by letting low-cost or free software be used 21 | 22 | **Q4. School systems can benefit from using OSS because (Select all answers that apply):** 23 | 24 | Answer: 25 | * Students may learn how to join projects and contribute from an early age or stage in their education 26 | * Students can more easily learn about how things really work as compared to using closed source operating systems and applications 27 | * As the world's IT infrastructure becomes more and more OSS-based, students will be better prepared to enter the work force especially as developers 28 | 29 | **Q5. Developers working in OSS will:** 30 | 31 | Answer: 32 | Will often find it easier to get good jobs because their work will be more open to inspection 33 | 34 | -------------------------------------------------------------------------------- /week-2-quizz-continuous-integration.md: -------------------------------------------------------------------------------- 1 | ## Continuous Integration 2 | 3 | **Q1. Continuous Integration (Select all answers that apply):** 4 | 5 | Answer: 6 | * Can put a strain on developers who have to submit changes constantly 7 | * Can speed development, as wrong paths can be discovered before they are pursued for a long time 8 | * Can be costly to set up, as it requires a server and staff and training developers to use properly 9 | * Minimizes regression bugs, since thorough testing is done at every stage before release (i.e. continuously) 10 | * Speeds up the development process, as builds and tests are fully automated 11 | 12 | **Q2. What is the correct order of the Continuous Integration process stages?** 13 | 14 | Answer: Integration, Delivery and Deployment 15 | 16 | **Q3. Which statement is true?** 17 | 18 | Answer: Use of Continuous Integration and revision control methods are independent, but are usually employed together 19 | 20 | **Q4. The Linux Kernel Continuous Integration Project was initiated by:** 21 | 22 | Answer: Linaro 23 | 24 | **Q5. There are many tooling suites used for Continuous Integration. The most widely used one is:** 25 | 26 | Answer: Jenkins 27 | -------------------------------------------------------------------------------- /week-2-quizz-oss-licensing-and-legal-issues.md: -------------------------------------------------------------------------------- 1 | ## OSS Licensing and Legal Issues 2 | 3 | **Q1. What are some considerations that go into OSS license selection (Select all answers that apply)?** 4 | 5 | Answer: 6 | * Should all modifications be public 7 | * Policy on patents 8 | 9 | **Q2. Which of the following is a "copyleft" license?** 10 | 11 | Answer: GPL 12 | 13 | **Q3. FUD stands for:** 14 | 15 | Answer: Fear, Uncertainty and Doubt 16 | 17 | **Q4. Select the true statement:** 18 | 19 | Answer: OSS and Closed Source Software can co-exist in a product, but careful analysis should be done to make sure proper boundaries are respected and enforced 20 | 21 | **Q5. Select the true statement:** 22 | 23 | Answer: Use of OSS has no predetermined effect on legal costs. It can lower them, since proper license enforcement can be built-in early, or it can raise them by having more people pick at the code if attribution has been sloppy 24 | -------------------------------------------------------------------------------- /week-2-quizz-working-in-oss-projects.md: -------------------------------------------------------------------------------- 1 | ## Working in OSS Projects 2 | 3 | **Q1. When first getting involved in an OSS project, you should (Select all answers that apply):** 4 | 5 | Answer: 6 | * Consider what it is you would like to work on, either because it is needed by you, or it just interests you 7 | * Start by helping test and report results 8 | 9 | **Q2. When working on an OSS project, the best strategy is to:** 10 | 11 | Answer: Submit changes one at a time in a sequential manner, even if the full change will not do much until the entire patch series is incorporated 12 | 13 | **Q3. When there is someone in the project community that gets abusive or just difficult to deal with, you should (Select all answers that apply):** 14 | 15 | Answer: 16 | * Let established community members moderate the conflict 17 | * Actually read what they are saying; even if phrased in a nasty manner, the points might need addressing, and you can respond to them calmly 18 | 19 | **Q4. You have worked hard on implementing a new feature for an OSS project and submitted your work. A senior maintainer liked you ideas, but ignored your implementation and substituted their own new one to the same end. You should:** 20 | 21 | Answer: If the other implementation is successful at achieving its purpose, you should accept the result gratefully (after registering your displeasure that rather than reviewing and modifying your work, it was abandoned), and contribute to improving the new implementation as needed 22 | 23 | **Q5. On a project mailing list, someone inserts an irrelevant political, religious, or philosophical comment into an otherwise technical discussion and this is at least mildly offensive to you. A good and proper response could be (Select all that apply):** 24 | 25 | Answer: 26 | * Ignore the comment and just answer the technical issues 27 | * Politely ask the poster to not make such comments. If they counter with more and stronger statements, ask any discussion moderators to quiet the issue offline if needed. 28 | 29 | -------------------------------------------------------------------------------- /week-3-quizz-github-and-other-hosting-providers.md: -------------------------------------------------------------------------------- 1 | ## GitHub and Other Hosting Providers 2 | 3 | **Q1. Select the correct statement. GitHub:** 4 | 5 | Answer: Is a private company acquired by Microsoft in 2018 6 | 7 | **Q2. Sites that offer services similar to GitHub include (select all that apply):** 8 | 9 | Answer: 10 | * GitKraken 11 | * Launchpad 12 | * GitLab 13 | 14 | **Q3. When using a GitHub public repository:** 15 | 16 | Answer: Anyone on the Internet can download the data, but only authorized collaborators can upload information and modifications 17 | 18 | **Q4. To use Git, you:** 19 | 20 | Answer: Be on any operating system and version that has Git installed, and almost all do 21 | 22 | **Q5. To use GitHub and the other sites that provide repository hosting:** 23 | 24 | Answer: You can work from either a graphical interface or a command line 25 | -------------------------------------------------------------------------------- /week-3-quizz-leadership-vs-control-and-why-projects-fail.md: -------------------------------------------------------------------------------- 1 | ## Leadership vs. Control and Why Projects Fail 2 | 3 | **Q1. The abbreviation BDFL stands for:** 4 | 5 | Answer: Benevolent Dictator For Life 6 | 7 | **Q2. The job of a mentor includes:** 8 | 9 | Answer: 10 | * Teaching contributors how to handle criticism, as well as how to give constructive criticism 11 | * Finding ways to empower people to give their maximum contribution 12 | * Training new project contributors in how to submit their work successfully in the right form 13 | 14 | **Q3. If a project fails in the sense that it stops moving forward, it is likely because (Select all answers that may apply):** 15 | 16 | Answer: 17 | * There are not enough developers contributing 18 | * There is insufficient interest in the wider community of developers 19 | * Leadership is poor 20 | 21 | **Q4. Which statement is true?** 22 | 23 | Answer: A project should have a clear license to begin with. It may possibly make a change later if it really needs to, but that is often non-trivial if there are quite a few contributors 24 | 25 | **Q5. Most open source projects fail in the sense that they stagnate and fade away. Is this bad?** 26 | 27 | Answer: It is not bad. Many seeds are planted and only some bloom, and it is difficult to predict which ones. It is always good to encourage a lot of new ideas and methods, and let them compete until the winners emerge. 28 | 29 | 30 | -------------------------------------------------------------------------------- /week-3-quizz-respecting-and-encouraging-diversity-in-oss.md: -------------------------------------------------------------------------------- 1 | ## Respecting and Encouraging Diversity in OSS 2 | 3 | 4 | 5 | **Q1. OSS projects should explicitly encourage diversity with respect to (Select all answers that apply):** 6 | 7 | Answer: 8 | * Race 9 | * Sex and gender identity 10 | * National origin and language 11 | 12 | **Q2. The majority of OSS projects carry out their discussions in English. Therefore (Select all answers that apply):** 13 | 14 | Answer: One should always speak as clearly as possible, and while not being dull, think about the audience and what they will be familiar with 15 | 16 | **Q3. With respect to criticism, an OSS contributor and reviewer should (Select all answers that apply):** 17 | 18 | Answer: 19 | * Not hold back, it is important to have open and forthright discussion 20 | * Answer thoughtfully and point out where one agrees or disagrees, where changes are accepted or not. 21 | 22 | **Q4. Some one on an OSS mailing list introduces a political aside and perhaps a preference during a technical discussion. Appropriate responses include (Select all correct answers):** 23 | 24 | Answer: 25 | * Ignore the point and just address the technical issues as needed. 26 | * Acknowledge the issue but briefly without putting down anyone with differing opinions. Avoid amplifying 27 | 28 | **Q5. You propose a new way of doing something, or adding a new feature. Another contributor points out this idea was reject previously. You should (Select all answers that apply):** 29 | 30 | Answer: 31 | * Ask whether or not technical abilities have evolved to the point where something that was not feasible can be done today 32 | * Ask whether the need for this feature has grown; the earlier discussion may have been premature 33 | * Study the previous discussion and see whether it applies, including whether or not differences between your ideas and the old ones were not seen 34 | --------------------------------------------------------------------------------