Skip to content

Commit

Permalink
Adding links back to contribution documents (#13)
Browse files Browse the repository at this point in the history
Adding the links back now that we can ensure that they open in a
new tab.
  • Loading branch information
gkunz authored Mar 5, 2024
1 parent ba3fd77 commit 8f250c9
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 25 deletions.
4 changes: 3 additions & 1 deletion Contribution-1-3-Ind.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ It is important for everybody who engages in the open source ecosystem to unders
![image](https://github.com/ExpertLearningLab/foss-learning/assets/126161450/18a93818-b7a2-49b1-a219-dfe38d0d3697)

The open source ecosystem is extremely heterogenous, i.e., open source projects differ greatly in terms of size of the development community, industry adoption, and governance models.
In terms of size, projects range from single-developer hobbyist activities to large scale industry driven projects such as the Linux kernel, OpenStack, or Kubernetes.
In terms of size, projects range from single-developer hobbyist activities to large scale industry driven projects such as the Linux kernel, OpenStack, or Kubernetes[^lf-census-ii].

[^lf-census-ii]: [Census II of Free and Open Source Software — Application Libraries](https://www.linuxfoundation.org/research/census-ii-of-free-and-open-source-software-application-libraries){:target="_blank"}

![image](https://github.com/ExpertLearningLab/foss-learning/assets/126161450/bf69b10c-07bd-47dd-a770-b325c920e5eb)
6 changes: 5 additions & 1 deletion Contribution-1-4-Ind.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@ permalink: /Contributions-1-4-Ind

Similarly diverse is the governance structure of projects, ranging from a single developer-lead model, sometimes also referred to as “Benevolent Dictator for Life” (e.g., the Linux kernel), via company-controlled projects (e.g., Android), to fully meritocracy-based governance models (e.g., OpenStack, Kubernetes). Meritocracy refers to a governance model in which the most valued contributors to a project obtain leadership positions in the project, often based on project-wide elections. Projects controlled by a single company typically lack community-based governance fora such as Technical Steering Committees, and more prominently, all Committers (see description of developer roles in Section 1.3.3) among the developers are employed by the controlling company, thereby gatekeeping all code going into the codebase.

Additionally, the size of the development community is an indicator of the adoption of a project, but not at all a clear cut criterion. Some widely used open source projects are maintained by just a small group of developers, despite being leveraged across countless commercial and non-commercial software. Famous examples are log4j or openssl.
Additionally, the size of the development community is an indicator of the adoption of a project, but not at all a clear cut criterion. Some widely used open source projects are maintained by just a small group of developers, despite being leveraged across countless commercial and non-commercial software. Famous examples are log4j[^log4j] or openssl[^openssl].

[^log4j]: [Log4j project team](https://logging.apache.org/log4j/2.x/team.html){:target="_blank"}

[^openssl]: [OpenSSL](https://www.openssl.org/about.html){:target="_blank"}

Given all this diversity, organizations and developers who intend to i) utilize and consequently ii) engage in open source must be aware of the nature of the development community and take their respective ways-of-working into account.

Expand Down
28 changes: 14 additions & 14 deletions Contribution-4-Ind.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ permalink: /Contribution-4-Ind
### Why be a contributor? Personal benefits of being a contributor

Contributing to open source software development can be a rewarding and motivating endeavor, offering a lot of reasons to get involved as an employee. It is worth noting that these motivating factors align with those that drive other individuals and organizations to contribute to open source initiatives, as described in Module 2.
From the developer's perspective, the commitment needed for engaging in open source contributions can vary. A general recommendation is that a developer should commit at a level where he or she has sufficient time to understand the issue, write code, and engage with the community while at the same time remaining flexible enough to manage other commitments and ensure a healthy work-life balance, (LogicaBeans, 2023) and (Wearedevelopers, 2022).
From the developer's perspective, the commitment needed for engaging in open source contributions can vary. A general recommendation is that a developer should commit at a level where he or she has sufficient time to understand the issue, write code, and engage with the community while at the same time remaining flexible enough to manage other commitments and ensure a healthy [work-life balance](https://www.linkedin.com/pulse/promote-work-life-balance-software-developers-logicabeans){:target="_blank"}, (LogicaBeans, 2023) and (Wearedevelopers, 2022).

Open source development can serve as a good platform for personal growth, (Nyakundi, 2023). Through contributions, a developer gains hands-on experience, collaborates with experienced developers, and experiments with the latest technologies, all of which enhance their skill sets and broaden their horizons. This platform allows developers to update their knowledge and skills regularly, offering a challenging but rewarding learning process.

When engaging in open source projects, developers get the opportunity to connect with professionals, make friends, and even find mentors who can provide guidance and support in your career. By navigating social dynamics effectively, developers build relationships that can contribute to personal and professional growth. Also, this sense of belonging and team spirit within an open source community, is a powerful motivator.

Open source contributions can enhance a developers professional portfolio, making the developer more attractive within the company as well as externally. These contributions highlight technical skills, commitment to continuous learning, and the ability to effectively collaborate within a larger and diverse community. Many companies value open source experience as it reflects developer’s dedication and competence.
Open source contributions can enhance a [developer's professional portfolio](https://medium.com/@jaybharadiya/6-benefits-of-contributing-to-open-source-projects-in-the-software-industry-562ea3f5abf6){:target="_blank"}, making the developer more attractive within the company as well as externally. These contributions highlight technical skills, commitment to continuous learning, and the ability to effectively collaborate within a larger and diverse community. Many companies value open source experience as it reflects developer’s dedication and competence.

Participating in an open source project can provide a sense of giving back to the community that has enriched developer skills and knowledge. Sharing expertise and mentoring others is a way to serve the community while simultaneously expanding the developer’s perspective.

Expand All @@ -27,7 +27,7 @@ Most open source projects often address real-world problems, making the develope

The open source world is vast with diverse range of projects that require various skills and expertise. People from all backgrounds participate, and open source communities usually welcome all suitable skills, which help build and improve their projects. Whether the involvement is minimal or substantial, the contribution will be valued and appreciated by the community. However, when companies consider appointing an employee to contribute to open source projects, certain skills and expertise can be more efficient than others. The specific set of skills required depends on what to achieve, the company’s strategic goal, and the available role.

The core skills and knowledge open source software projects often asks for are:
The [core skills and knowledge](https://medium.com/quick-code/essential-skills-that-every-open-source-developer-needs-d37ac668faf8){:target="_blank"} open source software projects often asks for are:

#### Technical skills

Expand All @@ -49,7 +49,7 @@ The core skills and knowledge open source software projects often asks for are:

Besides technical skills, open source projects always need and benefit from:

* Effective collaboration and communication skills.
* [Effective collaboration and communication skills](https://ca.indeed.com/career-advice/career-development/collaboration-skills){:target="_blank"}.
* Proficient writing skills to create clear, concise, and informative documentation and provide guidance.
* Ability to view and document from the user’s perspective.
* Project management skills to oversee software development and maintenance.
Expand All @@ -69,29 +69,29 @@ As contributing employee, it is crucial to

* Build legal and IP skills: Be knowledgeable about open source licenses, contributor license agreements (CLA), and developer certificate of origin (DCO) to ensure compliance and avoid legal pitfalls. Protect company IP and ensure not to share proprietary or otherwise confidential company information, see Chapter 3.

* Respect community norms: Each community has its own culture, norms, guidelines, agreements (CLA or DCO) and codes of conduct, see Chapter 3. Understand and respect these rules and guidelines, including contribution guidelines. Contribute in a manner that is in harmony with the community's culture. Ensure that these expectations are in line with the company's policies and code of conduct.
* [Respect community norms](https://chrisholdgraf.com/blog/2020/organizations-help-oss-guide/){:target="_blank"}{:target="_blank"}: Each community has its own culture, norms, guidelines, agreements (CLA or DCO) and codes of conduct, see Chapter 3. Understand and respect these rules and guidelines, including contribution guidelines. Contribute in a manner that is in harmony with the community's culture. Ensure that these expectations are in line with the company's policies and code of conduct.

* Be honest and sincere: Be transparent with company affiliation when contributing to open source projects. Identify and disclose any potential conflicts of interest. Always act ethically and contribute with integrity.

* Understand the objectives: Grasp the company’s overall strategic objectives and the project’s specific goals. Clearly understand the reasons for the company involvement in the open source software project, and ensure that any actions and contributions align with these objectives and the company’s broader mission, see Chapter 2.

* Keep high standards: Maintain the quality and professionalism expected of the company, including excellence in coding, documentation, and communication. Represent the company in a professional manner in all interactions within the community.
* [Keep high standards](https://architectak.medium.com/a-guide-to-building-a-strong-open-source-portfolio-as-a-software-engineer-cfa8fd429eb4){:target="_blank"}: Maintain the quality and professionalism expected of the company, including excellence in coding, documentation, and communication. Represent the company in a professional manner in all interactions within the community.

* Contribute meaningfully: Read through the project documentations, including issues trackers and learn from past discussions and ensure understanding of the community's needs, priorities, interests, and way of working. Prioritize features and issues that align with the company's interests and contribute to them. Document and explain why the contributions are important and valuable to the project and for the use cases.
* [Contribute meaningfully](https://developer.mozilla.org/en-US/docs/MDN/Community/Open_source_etiquette){:target="_blank"}: Read through the project documentations, including issues trackers and learn from past discussions and ensure understanding of the community's needs, priorities, interests, and way of working. Prioritize features and issues that align with the company's interests and contribute to them. Document and explain why the contributions are important and valuable to the project and for the use cases.

* Stay updated: Open-source projects evolve rapidly. Stay engaged and keep up with the latest updates and trends in both technologies used and the business industry. Cultivate a curious mindset and develop technical and communication skills.
* [Stay updated](https://architectak.medium.com/a-guide-to-building-a-strong-open-source-portfolio-as-a-software-engineer-cfa8fd429eb4){:target="_blank"}: Open-source projects evolve rapidly. Stay engaged and keep up with the latest updates and trends in both technologies used and the business industry. Cultivate a curious mindset and develop technical and communication skills.

* Collaborate: Work closely with internal teams to harness collective expertise and be efficient. Learn how the project members communicate, and participate in community discussions, forums, mailing lists, and building relationships. Build and maintain relationships among community members, company employees, and other technical leaders within software development.
* [Collaborate](https://ca.indeed.com/career-advice/career-development/collaboration-skills){:target="_blank"}: Work closely with internal teams to harness collective expertise and be efficient. Learn how the project members communicate, and participate in community discussions, forums, mailing lists, and building relationships. Build and maintain relationships among community members, company employees, and other technical leaders within software development.

* Cultivate community spirit: Embrace a positive and friendly attitude towards community members and company employees. Never disrespect or discriminate but foster an inclusive environment. Being nice and welcoming other contributors helps to build a supportive and collaborative environment.
* [Cultivate community spirit](https://www.freecodecamp.org/news/practical-skills-for-open-source-maintainers/){:target="_blank"}: Embrace a positive and friendly attitude towards community members and company employees. Never disrespect or discriminate but foster an inclusive environment. Being nice and welcoming other contributors helps to build a supportive and collaborative environment.

* Have patience and empathy: Be patient and understand that responses and deliveries could take time and respect that different contributors have different schedules and responsibilities.
* [Have patience and empathy](https://www.freecodecamp.org/news/practical-skills-for-open-source-maintainers/){:target="_blank"}: Be patient and understand that responses and deliveries could take time and respect that different contributors have different schedules and responsibilities.

* Value feedback: Listen to and learn from others. Be open to feedback and show willingness to change if necessary.
* [Value feedback](https://www.freecodecamp.org/news/practical-skills-for-open-source-maintainers/){:target="_blank"}: Listen to and learn from others. Be open to feedback and show willingness to change if necessary.

* Be firm: Advocate confidently and politely for what is right for the project and the company. People often demonstrate a greater capacity for understanding when approached with respect and provided well-reasoned arguments.
* [Be firm](https://www.freecodecamp.org/news/practical-skills-for-open-source-maintainers/){:target="_blank"}: Advocate confidently and politely for what is right for the project and the company. People often demonstrate a greater capacity for understanding when approached with respect and provided well-reasoned arguments.

* Practice a healthy work-life balance: Schedule and take regular min-breaks throughout the working day. Invest in personal time, be active and make time for what matters.
* Practice a [healthy work-life balance](https://www.linkedin.com/pulse/promote-work-life-balance-software-developers-logicabeans){:target="_blank"}: Schedule and take regular min-breaks throughout the working day. Invest in personal time, be active and make time for what matters.

While this list provides key principles regarding responsibilities and ethical considerations expected by an employee contributing to open source software projects, it is not exhaustive. In addition, the outlined principles can be adapted to suit various roles within open software contribution, when developing role-specific descriptions.

Expand Down
Loading

0 comments on commit 8f250c9

Please sign in to comment.