From d8219b6c164227b313518d3298aefcc831497a19 Mon Sep 17 00:00:00 2001 From: GBKS Date: Fri, 10 Jan 2025 14:16:04 +0100 Subject: [PATCH] Chapter 10 (Advanced Topics) revision based on reading session This is more of a light revision with text tweaks and formatting changes. Hope I managed to get all the feedback in we had in the reading session. --- content/10-advanced-topics.md | 155 ++++++++++++++-------------------- 1 file changed, 65 insertions(+), 90 deletions(-) diff --git a/content/10-advanced-topics.md b/content/10-advanced-topics.md index fd090fc..8e99066 100644 --- a/content/10-advanced-topics.md +++ b/content/10-advanced-topics.md @@ -27,113 +27,94 @@ preview: advanced-preview.jpg # Advanced Topics -## Leading Design Initiatives +## Championing Design Initiatives As you gain experience in open source, you might find yourself ready to lead design efforts. Here's how to approach this: -1. Understand the big picture: Get to know the project's goals, roadmap, and community dynamics. +1. **Understand the big picture:** Get to know the project's goals, roadmap, and community dynamics. +1. **Build trust:** Before proposing big changes, contribute consistently and show you understand the project's values. +1. **Communicate clearly:** When proposing initiatives, explain the benefits for users and the project as a whole. +1. **Be inclusive:** Involve other designers and non-designers in the process. Open source is all about collaboration and reaching consensus as a group. +1. **Break it down:** Large initiatives can be overwhelming. Break them into smaller, manageable tasks. +1. **Document everything:** Clear documentation helps others understand and contribute to your initiative. +1. **Be patient:** Change can happen slowly in open source. Stay persistent and positive. -2. Build trust: Before proposing big changes, contribute consistently and show you understand the project's values. - -3. Communicate clearly: When proposing initiatives, explain the benefits for users and the project as a whole. - -4. Be inclusive: Involve other designers and non-designers in the process. Open source is all about collaboration. - -5. Break it down: Large initiatives can be overwhelming. Break them into smaller, manageable tasks. - -6. Document everything: Clear documentation helps others understand and contribute to your initiative. - -7. Be patient: Change can happen slowly in open source. Stay persistent and positive. - -Remember, leadership in open source is often more about influence and inspiration than authority. +Remember, leadership in open source is often more about motivation and inspiration than authority. ## Creating and Maintaining Design Systems -A design system is like a set of building blocks for your project's interface. It includes things like color schemes, typography, buttons, and other reusable components. Here's how to approach this: - -1. Start with an audit: Look at the current state of design in the project. What patterns already exist? - -2. Define principles: What are the core ideas that should guide all design decisions? - -3. Create core elements: Start with basics like color, typography, and spacing. +A design system [C7](/7-design-for-collaboration#design-system-architecture){:class='chapter-link'} is like a set of building blocks for your project's interface. It includes things like color schemes, typography, buttons, and other reusable components. Here's how to approach this: -4. Build components: Design reusable pieces like buttons, forms, and navigation elements. +1. **Start with an audit:** Look at the current state of design in the project. What patterns already exist? Do you need a custom design system or can you use an existing one? +1. **Define principles:** What are the core ideas that should guide all design decisions? +1. **Create core elements:** Start with basics like color, typography, and spacing. +1. **Build components:** Design reusable pieces like buttons, forms, and navigation elements. +1. **Document everything:** Clear guidelines help everyone use the system correctly. +1. **Plan for maintenance:** Design systems need to evolve. Set up a process for updates and additions. +1. **Get buy-in:** Work with developers and other contributors to make sure the system is technically feasible and easy to implement. -5. Document everything: Clear guidelines help everyone use the system correctly. - -6. Plan for maintenance: Design systems need to evolve. Set up a process for updates and additions. - -7. Get buy-in: Work with developers to make sure the system is technically feasible and easy to implement. - -A good design system can dramatically improve consistency and speed up development in your project. +A good design system can dramatically improve consistency and speed up development in your project. Keep in mind that you are asking all contributors to change their ways of working and adopt this new design system. That is why transparency, an iterative process and continuous communication is so important. ## Handling Complex Design Challenges Open source projects often face unique design challenges. Here are some you might encounter: -1. Balancing customization and usability: Many open source projects pride themselves on being highly customizable. But too many options can be overwhelming. Find ways to offer flexibility without sacrificing ease of use. - -2. Designing for diverse use cases: Your project might be used by individuals, small businesses, and large enterprises. Design solutions that scale across these different contexts. - -3. Accessibility at scale: Ensuring accessibility across a large, complex project can be daunting. Develop processes to bake accessibility into every design decision. - -4. Designing for internationalization: Your project might be used worldwide. Consider how your designs will work with different languages and cultural norms. - -5. Bridging design and technical constraints: Sometimes, the ideal design isn't technically feasible. Learn to find creative solutions within technical limitations. +1. **Balancing customization and usability:** Many open source projects pride themselves on being highly customizable. But too many options can be overwhelming. Find ways to offer flexibility without sacrificing ease of use. +1. **Designing for diverse use cases:** Your project might be used by individuals, small businesses, and large enterprises. Design solutions that scale across these different contexts. +1. **Accessibility at scale:** Ensuring accessibility across a large, complex project can be daunting. Develop processes to bake accessibility into every design decision. +1. **Designing for localization:** Your project might be used worldwide. Consider how your designs will work with different languages and cultural norms. +1. **Bridging design and technical constraints:** Sometimes, the ideal design isn't technically feasible. Learn to find creative solutions within technical limitations. Approach these challenges as opportunities to innovate. Often, solving them can lead to insights that benefit the wider design community. -## Conducting Large-Scale User Research +## Conducting In-Depth User Research As projects grow, so does the need for more comprehensive user research. Here are some advanced techniques: -1. A/B testing: Test different design versions with real users to see which performs better. - -2. Analytics: Use tools to gather data on how people are actually using your software. - -3. Longitudinal studies: Follow users over time to understand how their needs and behaviors evolve. - -4. Segmentation: Analyze different user groups to understand their specific needs and behaviors. - -5. Participatory design: Involve users directly in the design process through workshops or co-design sessions. +1. **Research repository:** Create a place to document and discuss research and research findings. +1. **A/B testing:** Test different design versions with real users to see which performs better. +1. **Analytics:** Use tools to gather data on how people are actually using your software. +1. **Longitudinal studies:** Follow users over time to understand how their needs and behaviors evolve. +1. **Segmentation:** Analyze different user groups to understand their specific needs and behaviors. +1. **Participatory design:** Involve users directly in the design process through workshops and co-design sessions. Remember to always respect user privacy and follow ethical guidelines when conducting research. -## Balancing Open Source Work with Professional Commitments - -As you take on more responsibilities in open source, balancing this with your day job can be challenging. Here are some strategies: - -1. Set clear boundaries: Decide how much time you can realistically commit to open source work. - -2. Communicate with your employer: Many companies support open source contributions. See if you can incorporate it into your work. - -3. Focus on synergies: Look for open source projects that align with your professional work. - -4. Use your time efficiently: Tools like time-blocking can help you make the most of your open source time. - -5. Don't overcommit: It's okay to say no to new responsibilities if you're already at capacity. - -6. Take breaks: Avoid burnout by taking time off from open source work when needed. +::resources +- [Bitcoin UX Research](https://patestevao.com/work/bitcoin-ux-research/) by Patrícia Estevão +- [Bitcoin UX Research Toolkit](https://bitcoinresearch.xyz) +:: -Remember, sustainable contribution is better than burning out. +## Balancing Open Source Work with Other Commitments -## Navigating Open Source Project Politics +As you take on more responsibilities in open source, balancing this with your private life and day job can be challenging. Here are some strategies: -Large open source projects can sometimes involve complex community dynamics. Here's how to navigate them: +1. **Set clear boundaries:** Decide how much time you can realistically commit to open source work. +1. **Speak with other contributors:** Share what works best for you and find an arrangement that everyone is comfortable with. +1. **Communicate with your employer:** Many companies support open source contributions. See if you can incorporate it into your work. +1. **Focus on synergies:** Look for open source projects that align with your professional work. +1. **Use your time efficiently:** Tools like time-blocking can help you make the most of your open source time. +1. **Don't overcommit:** It's okay to say no to new responsibilities if you're already at capacity. +1. **Take breaks:** Avoid burnout by taking time off from open source work when needed. -1. Understand the governance model: Know how decisions are made in the project. +Remember, sustainable contribution is better than burning out. Your fellow contributors also want you to be happy and successful in your endeavours. -2. Build relationships: Get to know key stakeholders and understand their perspectives. +::resources +- [Maintaining Balance for Open Source Maintainers](https://opensource.guide/maintaining-balance-for-open-source-maintainers/) +:: -3. Be diplomatic: When disagreements arise, focus on finding solutions, not winning arguments. +## Navigating Project Dynamics -4. Stay neutral: Avoid taking sides in conflicts that don't directly involve you. +Every group of people has unique dynamics that shape the individual and collective behavior. It is good to be aware of these dynamics in order to have the impact you are striving for. Some tips: -5. Use data: When proposing changes, back up your ideas with user research or other evidence. - -6. Be patient: Big changes often take time and require building consensus. - -7. Know when to step back: If a situation becomes too contentious, it's okay to take a break. +1. **Read the docs:** Important community guidelines are often written down. +1. **Understand how decisions are made:** A very important dynamic to be aware and work with. +1. **Build relationships:** Get to know key stakeholders and understand their perspectives. +1. **Be diplomatic:** When disagreements arise, focus on finding solutions, not winning arguments. +1. **Stay neutral:** Avoid taking sides in conflicts that don't directly involve you. +1. **Use data:** When proposing changes, back up your ideas with user research or other evidence. +1. **Be patient:** Big changes often take time and require building consensus. +1. **Know when to step back:** If a situation becomes too contentious, it's okay to take a break. Remember, every open source project has its own culture. Take time to understand and respect it. @@ -141,22 +122,16 @@ Remember, every open source project has its own culture. Take time to understand As an experienced contributor, you can play a crucial role in bringing new designers into open source: -1. Create good first issues: Label some tasks as suitable for newcomers. - -2. Write clear documentation: Good docs make it easier for new people to get started. - -3. Offer constructive feedback: Be kind and specific when reviewing others' work. - -4. Share your knowledge: Write blog posts or give talks about your experiences. - -5. Be patient: Remember that everyone starts somewhere. - -6. Celebrate small wins: Recognize and appreciate all contributions, no matter how small. +1. **Provide simple entry points:** Whether it's good first issues or getting started tutorials. +1. **Write clear documentation:** Good docs make it easier for new people to get started. +1. **Offer constructive feedback:** Be kind and specific when reviewing others' work. +1. **Share your knowledge:** Write blog posts or give talks about your experiences. +1. **Be patient:** Remember that everyone starts somewhere. +1. **Celebrate small wins:** Recognize and appreciate all contributions, no matter how small. +1. **Reach out:** New contributors often strongly benefit from personal connection and guidance. By helping others, you're not just growing the project – you're strengthening the entire open source design community. ## Conclusion -These advanced topics represent some of the complex challenges and opportunities you'll encounter as you deepen your involvement in open source design. Remember, every expert was once a beginner. As you tackle these advanced areas, you'll not only improve the projects you work on, but you'll also grow significantly as a designer. - -Open source design is a journey of continuous learning and improvement. Embrace the challenges, stay curious, and keep pushing the boundaries of what's possible. Your contributions can help shape the future of open source software and improve the digital experiences of users worldwide. +These advanced topics represent some of the complex challenges and opportunities you'll encounter as you deepen your involvement in open source design. Remember, every expert was once a beginner. As you tackle these advanced areas, you'll not only improve the projects you work on, but you'll also grow significantly as a designer. \ No newline at end of file