Introduction to the CURIOSS Patterns Practice §
A public repository for the CURIOSS Patterns Practice.
For more information about patterns in general, please see the About Patterns section below.
CURIOSS Patterns §
We have listed the CURIOSS Patterns by the common challenges or priorities of CURIOSS members. Patterns may be listed more than once if they relate to multiple themes.
§
- Embedding the OSPO as Research Infrastructure
- Framework for Managing University OSS
- Host an Open Source Conference
- Integrating OSS into Institutional Software Pathways
- Lunch and Learn
- OSPO Mailing List
- OSPO as Co-Principal Investigator
- OSPO as Lead Principal Investigator
- Open Source Grant Commitment Letter
- Publish an OSPO Newsletter
- Senior Leadership Keynote
- Student Showcase Sessions at OSPO Events
- Supporting grant proposals with an open source component
§
- Event Tabling
- Framework for Managing University OSS
- Host an Open Source Conference
- Lunch and Learn
- OSPO Mailing List
- OSPO Student Ambassador Program
- OSPO Website
- Open Source Survey
- Organize an Open Source Hackathon
- Piggyback onto a larger conference
- Project Rolodex
- Publish an OSPO Newsletter
- Senior Leadership Keynote
- Set up an informal Communication Platform
- Student Outreach Strategy
- Student Showcase Sessions at OSPO Events
§
- Co-hosting Student Events
- Collaborate with External Partners on Open Source Hackathons
- Create a Donor/Sponsorship Prospectus
- Create template documents for GitHub Repositories
- Design a Collaborative Open Source Hackathon
- Embed wellbeing into Student Hackathons
- Enable Student-led Hackathons
- Engage a Hackathon Facilitator
- Event Tabling
- Facilitate connections at Open Source Conferences
- Host an Open Source Conference
- Individual consultations / Office Hours
- Informal OSPO focus group sessions at Open Source Events
- Lower the barriers to entry for Student Hackathons
- Maintainers & Contributors Roundtable
- OSPO Advisory Board
- OSPO Mailing List
- OSPO Student Ambassador Program
- OSPO Website
- Open Source Catalog
- Open Source Software Prize
- Open Source Survey
- Organize an Open Source Hackathon
- Piggyback onto a larger conference
- Project Rolodex
- Publish an OSPO Newsletter
- Secure sponsorship for an Open Source Conference
- Set up an informal Communication Platform
- Student Outreach Strategy
- Student Showcase Sessions at OSPO Events
- Template for 1:1 Campus Consultations
§
- Co-hosting Student Events
- Create a Donor/Sponsorship Prospectus
- Embedding the OSPO as Research Infrastructure
- Host an Open Source Conference
- Informal OSPO focus group sessions at Open Source Events
- Lunch and Learn
- OSPO Advisory Board
- OSPO Mailing List
- OSPO Website
- OSPO as Co-Principal Investigator
- OSPO as Lead Principal Investigator
- Open Source AI Pilot
- Open Source Grant Commitment Letter
- Project Rolodex
- Senior Leadership Keynote
- Source Industry Mentors for the I-Corps program
- Student Showcase Sessions at OSPO Events
- Supporting grant proposals with an open source component
§
- Design a Collaborative Open Source Hackathon
- Lower the barriers to entry for Student Hackathons
- Open Source Software Prize
§
- Co-hosting Student Events
- Collaborate with External Partners on Open Source Hackathons
- Design a Collaborative Open Source Hackathon
- Embed wellbeing into Student Hackathons
- Embedding the OSPO as Research Infrastructure
- Enable Student-led Hackathons
- Engage a Hackathon Facilitator
- Event Tabling
- Host an Open Source Conference
- Lower the barriers to entry for Student Hackathons
- Maintainers & Contributors Roundtable
- OSPO Student Ambassador Program
- OSS Tutorials using Authoring Tools
- Open Research Community Accelerator (ORCA)
- Open Source AI Pilot
- Organize an Open Source Hackathon
- Organize one-off workshops
- Piggyback onto a larger conference
- Source Industry Mentors for the I-Corps program
- Student Outreach Strategy
- Student Showcase Sessions at OSPO Events
- Summer Internship Program
§
- Create a Donor/Sponsorship Prospectus
- Embedding the OSPO as Research Infrastructure
- Enable Student-led Hackathons
- Host an Open Source Conference
- Individual consultations / Office Hours
- Lower the barriers to entry for Student Hackathons
- OSPO as Co-Principal Investigator
- OSPO as Lead Principal Investigator
- Open Source Grant Commitment Letter
- Secure sponsorship for an Open Source Conference
- Set up an OSPO Giving Page
- Source Industry Mentors for the I-Corps program
- Supporting grant proposals with an open source component
- Template for 1:1 Campus Consultations
§
- Embedding the OSPO as Research Infrastructure
- Host an Open Source Conference
- Individual consultations / Office Hours
- Informal OSPO focus group sessions at Open Source Events
- OSPO as Co-Principal Investigator
- OSPO as Lead Principal Investigator
- Open Research Community Accelerator (ORCA)
- Open Source AI Pilot
- Piggyback onto a larger conference
- Source Industry Mentors for the I-Corps program
- Student Showcase Sessions at OSPO Events
- Template for 1:1 Campus Consultations
§
- Event Tabling
- Maintainers & Contributors Roundtable
- Open Source Catalog
- Open Source Software Prize
- Open Source Survey
- Project Rolodex
§
- OSPO as Co-Principal Investigator
- OSPO as Lead Principal Investigator
- Open Research Community Accelerator (ORCA)
- Source Industry Mentors for the I-Corps program
§
- Collaborate with External Partners on Open Source Hackathons
- Create template documents for GitHub Repositories
- Enable Student-led Hackathons
- Engage a Hackathon Facilitator
- Framework for Managing University OSS
- Host an Open Source Conference
- Individual consultations / Office Hours
- Integrating OSS into Institutional Software Pathways
- Lower the barriers to entry for Student Hackathons
- Lunch and Learn
- Maintainers & Contributors Roundtable
- OSPO as Co-Principal Investigator
- OSPO as Lead Principal Investigator
- Open Source Software Prize
- Organize an Open Source Hackathon
- Organize one-off workshops
- Piggyback onto a larger conference
- Source Industry Mentors for the I-Corps program
- Template for 1:1 Campus Consultations
§
§
- Design a Collaborative Open Source Hackathon
- Open Source Software Prize
- Organize an Open Source Hackathon
§
§
§
- Collaborate with External Partners on Open Source Hackathons
- Design a Collaborative Open Source Hackathon
- Enable Student-led Hackathons
- Engage a Hackathon Facilitator
- Host an Open Source Conference
- Individual consultations / Office Hours
- Integrating OSS into Institutional Software Pathways
- OSPO Advisory Board
- Open Research Community Accelerator (ORCA)
- Open Source AI Pilot
- Organize an Open Source Hackathon
- Piggyback onto a larger conference
- Secure sponsorship for an Open Source Conference
- Source Industry Mentors for the I-Corps program
- Summer Internship Program
- Template for 1:1 Campus Consultations
About Patterns §
What Are Patterns? §
Patterns are reusable solutions to common problems within a specific context. Originating from architecture and urban design in the work of Christopher Alexander (see section on Origins), they were later adapted for software engineering, organizational design, and beyond. A pattern captures the essence of a proven solution in a way that can be applied flexibly to different scenarios, providing a shared language for understanding and resolving recurring challenges.
Sharing knowledge is a key goal of the CURIOSS Community - we hope to build our CURIOSS Pattern Practice to record how we tackle the common problems facing OSPOs in university and research institutions.
The CURIOSS Patterns Practice is based on the InnerSource Commons Patterns Practice and we would like to thank all those in that community for inspiring us in this effort.
Key Characteristics of Patterns §
- Context: Describes the situation where the pattern is applicable, including preconditions and constraints.
- Problem: Identifies the core challenge or issue the pattern addresses.
- Solution: Offers a general, adaptable approach to solving the problem.
- Consequences: Discusses the trade-offs and implications of using the pattern.
For CURIOSS Patterns we also include:
- Title: A phrase that helps identify the pattern
- Theme/Cateogry: To help us categorize our patterns
- Known Instances: information on known instances of the use of the pattern.
- Contributors: A list of all those who contributed to the creation of the pattern (inside and outside of GitHub).
In some cases, we have even included some personal inspiration from the pattern authors.
Benefits of Patterns §
- Encourage reuse of proven solutions.
- Foster shared understanding and communication within teams.
- Provide guidance without prescribing rigid processes.
- Enable scalability by breaking complex systems into manageable components.
Using Patterns §
Patterns are not standalone solutions but are often organized into pattern languages or collections. Practitioners use them as building blocks to address complex problems by combining and adapting multiple patterns. A common workflow includes:
- Identify the Problem: Understand the specific challenge and its context.
- Select Relevant Patterns: Look for patterns that address similar problems or contexts.
- Adapt the Pattern: Tailor the solution to fit the unique aspects of the current situation.
- Implement and Iterate: Apply the solution, observe its impact, and refine as needed.
We hope that those who implement or adapt patterns here will contribute back their learnings to help improve the overall practice.
Creating Patterns §
The process of creating patterns involves observation, abstraction, and testing:
- Observation: Identify recurring problems and successful solutions in practice.
- Abstraction: Extract the underlying principles and structure from specific instances.
- Validation: The pattern matures as it is applied the pattern in different contexts. This stage confirms its effectiveness and generalizability.
- Documentation: Use a consistent format to record the pattern, often as a template, making it accessible for others to use. Here is the CURIOSS pattern template.
As CURIOSS and the idea of Academic OSPOs is relatively new, we recognize that the CURIOSS patterns may not yet have significant validation (i.e. may only have been used in one university), but we hope to add further known instances over time.
Origins: From Architecture to Software §
The concept of design patterns originated in the field of architecture. Christopher Alexander, an architect, introduced the idea in his book “A Pattern Language: Towns, Buildings, Construction” published in 1977. Alexander’s work focused on identifying recurring problems in architectural design and proposing solutions that could be reused in different contexts. His patterns were intended to improve the quality of life by creating environments that are functional, aesthetically pleasing, and harmonious.
Alexander’s approach to patterns was revolutionary because it provided a structured method for solving design problems. His patterns were not rigid blueprints but flexible guidelines that could be adapted to specific situations. This adaptability made them highly valuable in architecture and laid the groundwork for their application in other fields.1
-
‘History and Evolution of Design Patterns: From Architecture to Software’, Design Patterns. Accessed: Dec. 12, 2024. [Online]. Available: https://softwarepatternslexicon.com/patterns-lua/1/3/ ↩