Session
FOSDEM 2021 Schedule
Open Source Design

Gain a Superpower in OSS as a Designer Through Code

D.design
Kartik Choudhary
My talk will be structured as follows followed by a short Q&A, Why do I need to learn to code? Helping OSS as a Developer-Designer The approach to coding for OSS complexity Stuff to keep in mind to make meaningful contributions How to tackle a particular issue? Receiving code reviews effectively Where do I go ahead with all this new found knowledge?
Gain a Superpower in OSS as a Designer Through Code Intro (Brief intro about myself, my past work for open source, why should you care what I have to say) Why do I need to learn to code? That's developer stuff... (5 mins) Being able to own your thoughts from design to implementation is definitely a strong skill on your designer toolbelt. So, why do I need to learn to code? Knowing how your mock can be implemented helps improve your approach to design. You’ll find yourself approaching problems differently and also get better at your work as you see things more practically. Knowledge of how difficult it would be for developers to materialize your design visually or in terms of performance is powerful and helps provide perspective. Understand developer jingoism and participate in conversations that revolve around your design. Also, being familiar with the terminologies can go a long way in improving communication. In case your team decides to build live code prototypes, you'll be able to adapt easily. Stand out amongst your peers because of your versatility and in depth knowledge around your domain. Apart from the topic of the talk, in my opinion, coding is something you should definitely dabble with before you decide it's for you or not. Helping OSS as a Developer-Designer (5 mins) You'd have a difficult time finding someone who believes that design in Open Source couldn't use help from a professional. FOSS in general is made with little to no contributions from skilled designers which leads to ugly looking UI and end up with poor User Experience. So many powerful Open Source tools lack the perspective from a designer and thus block out a large portion of users due to inaccessibility. Let's consider a scenario: Most open projects don't have teams of coordinated people working on different aspects of the software. We're all everyday people taking out some time to work towards a passion project. So if you add a designer in the story who can also help write the code for their work, it can improve the project quality significantly. And if you happen to be that person, it would not only help the project, but increase your standing in the FOSS community too. If you're already an Open designer, another common pain point that you may have come across is the loss in translation of design from a mock to code. However, gaining control over that will help you build much more accurate flows and improve the final product. The approach to coding for OSS complexity (5 mins) Open Source software can be really big and complex. So, starting off can definitely be daunting but it doesn't have to be demotivating. I won't focus on how to set up the local dev environment for a project because of the time constraint here but I'm aware this is a key hurdle. I'll discuss the next best thing, i.e stuff to keep in mind before you start contributing. Coming from a design perspective, your first approach should be to find the code responsible for generating the views, i.e the frontend. Play around with the code, make some changes that you can see on screen. This will also help generate confidence while writing code. Understand the structure of the code. Figuring out how a particular view is generated will help you know the exact files to modify and boost your understanding of the codebase. Ask for help. I've experienced running into many weeks of rabbit holes that could've easily been solved in a day had I just asked for help. This ranged from having trouble running the project, or just simply confused what a particular piece of code does. So even if you're struggling with simple problems like Git, remember we're all in it together, don't be afraid to reach out for help! So, "I know my way around the code, how do I tackle a particular issue?" Always break down the issue to it's smallest constituents. In terms of design work, break it down to the relevant components and the files that affect it. This will create an isolated environment for your work that won't (or should not) affect anything outside of what you're contributing to. Backtracking. Whenever you're pointed to a particular file that needs to be updated, go a step above and see where and how it is being used in the broader architecture of the codebase. This is a good practice which you should definitely include in your workflow as you start your coding journey. Where do I go ahead with all this new found knowledge? (3 mins) If my talk inspired you to pick up code for the first time, go ahead and use all the amazing learning resources out there to get familiar with styling, animations etc. Try coding your design on non-critical parts of a project. Advice, go for this approach on projects that you're already a contributor. This way you know the developers are open to mentoring you and can provide helpful reviews. You can apply the learnings from this talk to even your work, maybe try implementing some small design improvements if they let you. Pitch in Open Source Design jobs page to find opportunities paid and open source. Mention orgs like NextCloud that build design heavy OSS Also, if you would like to know more on this topic, I intend to release a blog soon that would cover some other points too, like, - How to take your PR through the OSS process. - How to properly receive a code review. - Engaging with other devs and deal with difficult conversations. Outro (Appreciation, extend help, links to my socials and all that jazz)

Additional information

Type devroom

More sessions

2/6/21
Open Source Design
Bernard Tyers
D.design
Every year we take some time to introduce the Open Source Design collective, what we do, where to find us and how to get involved.
2/6/21
Open Source Design
David Benque
D.design
CryptPad is an encrypted and open-source collaboration suite. One year ago I joined the team as a designer. In this talk I will present some of what has been achieved and reflect on the challenges ahead.
2/6/21
Open Source Design
Christoph Ono
D.design
Since the middle of 2020, an open community has formed around the goal of making Bitcoin more intuitive and accessible. Our big project is a Bitcoin Design Guide to help both designers and developers create better Bitcoin experiences faster. We also work to promote the idea of open design, to bring more designers into the space, and to help open-source projects adopt better design processes. This presentation will provide an overview of all these efforts, where we are (early) and what the future ...
2/6/21
Open Source Design
Sascha Eggenberger
D.design
In this session I'll talk about the brief history of Drupal & the Drupal interface, how it has evolved and why this redesign is an important step for the future of Drupal. As it's important to being inclusive and we treat this as a key value in the Drupal community we made inclusivity & accessibility the main priority. I will dive into the Design System, the principles behind it and the new interfaces which are based off this Design System: Claro The new, upcoming default admin ...
2/6/21
Open Source Design
Belen Barros Pena
D.design
Most of the free software projects I know do little to none research with their users. Well: the vast majority do absolutely none, and very few do a teensy little bit, most of the time with the most vocal members of their user base. Why is that? Why is free software afraid of user research? This presentation will propose a classification of free software types based on their ideas and attitudes towards user research. The classification is really just a joke, but I hope it will help me debunk ...
2/6/21
Open Source Design
Bernard Tyers
D.design
During 2020 we spent the year working with the maintainers of pip, the Python package manager. The project was to implement a new dependency resolver and improve pip's usability. It was a difficult project as personally, I knew very little about software package managers apart from doing "pip install". How do you do UX design with a piece of software used by hundreds of thousands (possibly millions!) of users on a small budget? Where do you find those users? Combined with this the maintainers ...
2/6/21
Open Source Design
Memo Esparza
D.design
Open up your design process is good for your creative health. How can we shift the design perspective to be more focused on the process than on the result? How can we collaborate openly with frameworks that help us learn from each other and build on each other's ideas? Open design can help transform organizations and projects by just unveiling the creative potential we all have within. We can learn how to dot, but we need to learn that together. In this talk, you will find inspiration and ...