We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Get designers involved in your open source project!

00:00

Formal Metadata

Title
Get designers involved in your open source project!
Title of Series
Number of Parts
611
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Production Year2017

Content Metadata

Subject Area
Genre
Abstract
Designers are not allergic to open source – it often is just quite difficultand frustrating to get involved. Gladly there are some easy methods to make UX& UI folks feel welcome and get them contributing! :) This talk will show themethods we use at Nextcloud – which successfully helped us build an active andwelcoming design team. Some of these methods include: \- Describe clearly what your project does \-Being welcoming to designers \- Involving design from the start \- Usingdesign tags in the issue tracker \- Have an easy landing page to get involved\- Cultivating a culture of design-driven decisions \- and more! :)
17
Thumbnail
24:59
109
Thumbnail
48:51
117
Thumbnail
18:37
128
146
Thumbnail
22:32
162
Thumbnail
23:18
163
Thumbnail
25:09
164
Thumbnail
25:09
166
Thumbnail
24:48
171
177
181
Thumbnail
26:28
184
Thumbnail
30:09
191
Thumbnail
25:08
232
Thumbnail
39:45
287
292
Thumbnail
25:14
302
Thumbnail
26:55
304
Thumbnail
46:54
305
314
317
321
Thumbnail
18:50
330
Thumbnail
21:06
333
Thumbnail
22:18
336
Thumbnail
24:31
339
Thumbnail
49:21
340
Thumbnail
28:02
348
Thumbnail
41:47
354
Thumbnail
26:01
362
Thumbnail
18:56
371
Thumbnail
13:12
384
385
Thumbnail
25:08
386
Thumbnail
30:08
394
Thumbnail
15:09
395
411
Thumbnail
15:10
420
459
473
Thumbnail
13:48
483
501
Thumbnail
32:59
502
Thumbnail
14:48
511
518
575
Thumbnail
25:39
590
Thumbnail
25:00
592
Thumbnail
23:32
Projective planeBitResultantPoint cloudComputer animation
Point cloudMultiplication signOpen sourceUMLXML
Open sourceProcess (computing)WhiteboardXMLComputer animation
Projective planeOpen sourceXMLComputer animation
Projective planeXMLComputer animation
Projective planePoint cloudWordProgram flowchart
Point cloudOpen sourceExterior algebra
VideoconferencingEmailExterior algebraComputer fileProduct (business)Projective planeConnectivity (graph theory)
Point cloudComputer animation
Projective planeTable (information)Open sourceProgrammer (hardware)Computer animation
Open sourceProgrammer (hardware)Slide ruleFitness function
Point cloudField (computer science)PasswordXML
Directory serviceDatabaseDrag (physics)Forcing (mathematics)
DatabaseWeb 2.0QuicksortUsabilityAxiom of choiceBitXML
QuicksortDefault (computer science)DatabaseField (computer science)Computer fileInstallation artPasswordComputer animation
Server (computing)Web 2.0Decision theorySystem administratorPasswordDefault (computer science)Installation artComputer animation
Installation artData storage deviceDatabaseMathematicsComputer animation
Data storage deviceComputer animation
PasswordLoginOpen sourceComputer animation
Open sourceLoginWeb pageQuicksortServer (computing)Right angleDecision theoryComputer animation
Decision theorySystem administratorCASE <Informatik>SoftwareWebsiteProcess (computing)Projective planeComputer animation
Process (computing)Data miningDebuggerBitComputer animationSource codeXML
Front and back endsBitRevision controlLattice (order)XMLSource code
Software developerProjective planeOcean currentRevision controlSpacetimeArrow of timeComputer iconError messageSource codeXML
WindowSource codeXML
Axiom of choiceSoftware developerSource codeXML
2 (number)Design of experimentsMobile appRepository (publishing)Projective planeInterface (computing)Reading (process)Computer animationXML
WebsiteRepository (publishing)Projective planeWeb 2.0XML
MereologyElectronic mailing listFunctional (mathematics)XML
Web browserEmailInformationSoftware developerLibrary (computing)Extension (kinesiology)XML
Process (computing)Revision controlProjective planeInformationXMLUML
Repository (publishing)Computer fileInstallation artXML
Computer fileXML
XML
Type theoryBitXML
BitMereologyXMLComputer animation
Inheritance (object-oriented programming)Point cloudComputer animation
Computer fileVapor barrier
PreprocessorMereologyCASE <Informatik>DebuggerLibrary (computing)
Library (computing)Point cloudMobile appXMLUML
Vapor barrierXMLUML
Mathematical optimization2 (number)XMLUML
Projective plane1 (number)Open source
Interface (computing)Feedback
Formal languageWordFeedbackProcess (computing)Projective plane
Projective planeComputer icon
Event horizonBitMultiplication signElectronic mailing list
Open setProjective plane
Self-organizationProjective planeOpen sourceStructural loadFunctional (mathematics)Program flowchart
Android (robot)Mobile appProgram flowchart
TelecommunicationTwitterComputer animation
Software developerTelecommunicationTwitterComputer animationXML
InformationFeedbackXML
Software developerMobile appOnline helpLattice (order)Source codeXML
Lattice (order)Point (geometry)Software testingDebuggerFocus (optics)XMLComputer animation
Software developerDebuggerAreaComputer animation
Term (mathematics)InformationProjective plane
Projective planeProfil (magazine)
Profil (magazine)FeedbackTwitter
Computer animation
Transcript: English(auto-generated)
So, I start. I'm going to talk about how to get designers involved in your project. So, a bit even more basic than what we saw before. So, yeah, I also work on Next Cloud and the design team since a long time already.
And, yeah, so the short story of how to get designers involved is basically go to opensourcedesign.net slash jobs and post what you need on the job board, on our job board of the open source design collective. But the long story is a bit longer and I'm going to use examples that we learned from working on Next Cloud
and that I also learned from working in other communities. And it's, yeah, very, very basic things which have a lot of impact. So, can I have a show of hands? How many people work on an open source project? Okay. How many of you do not have any designer involved in that project?
Okay. Or somewhat, maybe, also. So, this will be very useful for you, but this will also be very useful for people who are designers who work on a project and who want to improve. So, even though it's kind of, or I consider them very basic things or I keep repeating them in projects,
I think a lot of people or a lot of projects still don't do them. So, yeah, you'll see then. Just a small word about Next Cloud. You might have heard about the whole OnCloud Next Cloud fork. So, short story, Next Cloud is a community fork of OnCloud because we were unhappy with some things.
For example, that not everything was open source and, yeah, a bunch of other things. So, yeah, you can ask me later about it. But anyway, this Next Cloud is like an open source alternative to Dropbox and Google products for files and contacts, calendar, email, video chat, stuff like that.
So, yeah, it's quite an extensive project. You already heard about Raghu that he maintains the calendar or who maintains the calendar as designer. So, yeah, we have a bunch of components and there's, yeah, lots of things that we learned during the years. So, first thing of four basic things is to establish a culture of design.
So, I was back when it was still OnCloud. I was like the fourth or fifth contributor and I was the first designer in the project. And, yeah, it was when we were, yeah, very few people and there wasn't even a company yet. And, yeah, it was just like a few people hacking at a table and stuff.
So, the first thing, very first thing I did because I come from a design background and not from like a programmer or open source background. Very first thing I did was look at this and say, what the fuck is this? So, this, you can even feel like I have trouble fitting it on the slide because there's so much stuff on it and so misaligned.
And, yeah, that's the OnCloud 1 installation. So, yeah, it's pretty, I mean, I could point out like what's wrong with it, like alignment of the fields, of the field labels to the left. The password, you need to retype the passwords.
It's pretty much a drag. You need to choose the data directory or you can change it, which I don't even care about. Force SSL, like just do it. All this stuff like date format, what does even, like what does G even mean? I have no clue. Probably you can tell me, but I don't even care.
And then one of my biggest problems with the whole thing is the database. Like I remember horror nightmares of copying and finding database credentials somewhere in some weird other subfolder or asking my web host for that. And even with like a bit of nerdy skill that was difficult.
So there is also like a technical choice to usability and some sort. And that being how it looks like now, that's the installation now. You see there is no database field by default because we use SQLite by default.
It's not 100 percent advised to use it for big installations. But that allows us, because SQLite, if you know it or not know it, it's just a single file. And you don't need any, you don't need to create any username, password, credentials or whatever. It can all be done by the web server. So it's a technical decision that allows us to actually make it so simple.
You just need to choose an admin username and password. We could just also like directly log you in and give you the credentials or have default credentials, but that would result in a lot of insecure installations. So we don't do that. But yeah, we make it, I'd like to think even simpler than the WordPress five minute install. And yeah, this, but you can still change storage database, so you can still modify two things.
One is the database, so you can change it to MySQL or PostgreSQL or whatever you want, whatever you implement. And then also to, you can change the storage path so that you can store it somewhere else. And all the rest is just done automatically.
So the, yeah, so it's just username, password. It's basically this is very similar to just the log in screen, actually. And that's very simple. That still, though, leaves you with you need to download it. You need to set the permissions and stuff like that. So you always need to know that in open source we have this additional problem.
We don't have a sign in button on the page. We have a download button. Right. So that's a it's a very, very different thing. So, yeah, but that gets easier in some sort. Also, technical reason with PHP 7, I think, at least, because you don't need to mess around with permissions so much anymore or on certain servers.
So a lot of technical things interweave with the design decisions or with how the UX is at the end. And in this case, UX is, of course, the user experience of admins installing the software. OK, so that's the first thing. And I think I've been talking so long about it now because I think it's so important that the setup process is easy
because that's the first the first reason people turn around and don't use your project like website and installation process, I would say. Next thing is you have to care about details. So, for example, here is a colleague of mine. He's actually more of a developer, but does a bit of front end.
And, yeah, he opened that issue where we basically did it together at every meetup we now do. We have four meetups during the year. They're like planning meetups or working meetups for the next version. And they're open so everyone can actually attend. And what we established during these meetups is that we sit in a meeting room and we install the newest version or the current development version.
And we just click through it as if we were like people new to the project. And we just point out every single small thing. So you see, like, there's like wrong capitalization, for example, or white space issues
or or some icon arrows like it's white instead of black and stuff like that. It's a very, very detailed things. So that establishes a general culture of design, a general culture of the you probably heard about the no broken windows policy. So if you if you don't see anything wrong, then you're also less inclined to
do wrong choices or you you encourage people to to do similarly nice looking things. So that's that's very important to to do that with everyone. And everyone is in that room, like all the developers, all the other people working on it. So, yeah, it just it brings everyone together on that design or experience base.
Second thing is be informative. So what does that mean? It's basically something such as simple as just putting screenshots in your read me in your in your repository. Read me like a lot of projects I look at.
I go to their GitHub or to their to their get lab or to their repository anywhere. And they don't even have any screenshots, even though it is an app which probably has an interface. And there's like a ton of explanation. And it's like it looks like, oh, we use like PostgreSQL and some blah, blah, blah cluster with some Angular JS.
And I don't even care about that when I want to use it. So basic thing, just a short explanation, like even even those tags, I mean, are a bit nerdy, but that's OK. So just short explanation and just a nice screenshot so people can understand what they're actually looking at. So that's that's very important.
That's one very small thing. So the people who raise their hands, if you don't do that yet, please do that now. And because this is kind of I mean, this is also similar to the Web site. So if you don't have a Web site, you just have a repository. Do this. If you have a Web site, make sure your Web site has short explanation and a screenshot.
But most projects don't have a Web site yet. So just do this. Next, we scroll down in the readme and then we need some kind of a concise feature list explaining what the hell this actually does. So we have some funny emojis and also part of design.
And we just list some features or some important functionality of the app and explain what it does. And then we even have some more nerdy info, like we say, yeah, if you want to if you want to send encrypted the emails, just use this browser extension. And yeah, which libraries we use, for example, just for developers who also want to get involved.
And also what we have planned for the coming versions. So it's kind of like, yeah, being informative and being open about your process. Then we scroll down even more. And the problem is always like, yeah, oftentimes people or projects don't even have any setup info, like how the hell do I do I make this thing run?
I just download it and then what? You just clone the Git repository, which is already pretty difficult for many people. And then, yeah, I'm just left there and I see like an install.sh and I see like a grant file or some shit like that. And I'm just utterly confused about what I need to do next. And so one important thing is do not assume that everyone knows what they need to do
with a makefile or what they need to do if they see a makefile or something like that. Just write it out. And make sure that it's, yeah, very few commands. So I'm actually still complaining about this, like about two commands. So if it can be, like just make it make or I mean, nothing at all would be best.
But if it actually needs to be, just make it one command. Because this I always forget like what I actually need to type. So, yeah, that's also another important thing. Like for people who are actually who want to contribute and who are a bit
more technical maybe or less technical but would like to learn, just spell it out. Like just write it out. And those are the three important things in the readme actually, I would say. Then third part, like we also mentioned it, same thing, be welcoming. And I like to repeat it because it's super important and I'd like to think that
this is one of the big reasons why the Next Cloud design team is so successful. The first thing, for example, is tying into the whole make or grant file or whatever thing is that you need to remove barriers to entry. For example, we have this issue or we have this thought forever like, oh, should we have some CSS preprocessor?
CSS in this case also regarding design, right? So we could talk about like, I don't know, using composer for PHP, which we also do in some parts. But this specifically is about the CSS.
So it also concerns front end designers. And so one thought was, yeah, do we use SCSS? And we were discussing about it in the past already. And we were saying, ah, no, we didn't really want to use it because then people need to compile it. And then this one contributor said, well, there is this PHP library which directly compiles it.
And Next Cloud being a PHP app, you don't need to do anything else, right? So actually it's seamless. And I said, okay, if you can do it like that, if you provide a pull request and if you make it, if you rewrite it, and if you make it so that it just works, then that's okay. But otherwise it's a barrier to entry and that's not okay.
So, yeah, we're on a good way. Like this issue is still partly open, but most of it actually is moved already. And yeah, it's very cool with the additional bonus of not making it any more difficult, except, you know, the SCSS syntax is like, I mean, it's almost the same as CSS, but it's very easy, very easy to learn.
It's like not an entirely new technology. So you can have some optimizations or you can have some cool tools, but you still need to keep in mind that it needs to be simple. Then, second thing, what I will also mention, I'm very happy that it's successful or that it works, is two tags that we use,
or we use many tags, but these I think are one of the most important ones or two of the most important ones for open source projects in general. One is the design tag. It's just like an umbrella tag for everything regarding interface design, UX design, any kind of design. We just chose the tag design.
I actually got it from Mozilla where they use 13 different tags, I think, like UX feedback. So if there's missing feedback or if there's a spinner showing too long, then UX wording, I think when the language is too technical or not understandable. So we just grouped it to one design tag because that makes stuff much simpler.
And then also the starter issue or junior job label, which is just for issues which are very good for people new to the project. And as you can filter with two tags, so you can combine these tags and you can just see, oh, what can I do as a designer new to the project? So it's simple stuff like some logo or icon is misaligned or there needs to be some CSS fixes or something is broken in Safari or whatever.
And yeah, some of the time, of course, we need to fix these things. But oftentimes we also just leave them open for a bit longer intentionally to get more people involved.
And this is also perfect for for events for like small hackathons, for example, where where for for new people to get involved that we have like a list of issues that need to be done. So that's that's very that's I would recommend that a lot. So everyone who raised their hands again, if you don't have a design tag, if
you don't have a starter issue tag, please create them now and add issues to it. Open issues if you don't have them yet, like if you know of design issues in your project, just just open them and communicate them openly. So, yeah, I'm very happy that our design team is actually the biggest team in the entire organization.
And I would say, like, it's a pretty big team for any open source project. And I mean, of course, some people are more active, some people are less active. But in general, it gives like a great feeling that you can always just mention like GitHub has this at mention functionality that you can just add next load designers review, please.
Or what do you think of this? And as there are so many aspects like Android app, calendar app, desktop and stuff like that, it's very cool that that people get designers involved. And then also some of these designers are an individual teams of the apps, for example. So, yeah, thanks to all these folks contributing.
So first thing, last thing is talk about design, like make it make it an actual topic. This is similar to the culture of design. Actually say it in, I don't know, in tweets or in communication. Don't just say, hey, we do a developer meetup. Just say either we do a contributor meetup or we do a developer designer meetup or we do a contributor meetup.
Developers and designers are very welcome. Just basic stuff like that. For example, also publish updates, which are specifically about design. This is unfortunately blogging is always something which is neglected, I have the feeling.
And we are guilty of that, too. But yeah, sometimes we have like design team updates. And it's like when we had a discussion at the conference, we have a bunch of info on how to get involved, some feedback, what was good. And then also we had three good questions that we discussed.
For example, how was the design decided on, how to approach a new feature and where is design help needed or how do I ask for it as an app developer. So, yeah, if it's discussed in this way at a developer meeting or developer designer contributor meeting, then it's good to notice like how you where you lack things and how to improve things.
And coming back to the first point also, yeah, by the way, next conference will be in Berlin in August. And one thing that we say specifically there in the text, focus will be on coding, design, front end work and testing. So we actually mention it. It's just a small thing, right?
We could just not mention that sentence or we could just say, hey, every developer interested just come around. But we specifically mention design front end work. So people of that area, designers will feel welcome. And that's often all it takes for designers to contribute.
So to recap, have a culture of design, establish a culture of design of simple design, preferably to make it user centered. Be informative. Explain what your project does in easy terms on your website or in your readme. Be very welcoming to new people in general. Like this also doesn't only apply to projects who need designers.
It applies to any project. And then also talk about design. Make it a topic and raise the profile of design. So, yeah, thank you. Come contribute and, yeah, please leave feedback for the talks. And, yeah, you can talk to me here or on Twitter or GitHub or whatever.
Thanks a lot.