She sent the photoshop source file and a png to the mailing list, but was told to send in a patch instead, which meant she had to learn how to use git to check out the repository, add the icon to the repo, and then generate a git patch. Only after that, she was told that they couldn't use the photoshop source file because they didn't have photoshop. Finally, one of the developers imported the file into the GIMP, changed some stuff on the icon without discussion, botched the output and then added that to the project. That was enough for her to not try doing something like this again.
1) try to lift the technical burden from the designer. If the designer sends a file as a mail attachment, just add it to a branch of your repo yourself (with permission, hopefully)
2) when programmers see a small bug in a piece of code, they often fix it. Don't assume you can and should do the same with designs. Talk to the designer.
Having communication barriers like this absolutely would stop me from participating. I have no problem with being asked to redesign a logo over and again. I would love to feel like I belonged to a community and that I mattered. But having a developer jack my work and screw it up because it was easier than asking me to do it would completely scare me away from open source projects.
This might be not as crazy as it sounds, as I recently learned:
A few weeks ago, there was a short presentation about Git, targeted at non-programmers such as graphics and web designers. After the presentation, one of the designers (who apparently already knew about Git) stood up and criticized the presenter for not going deeper into branches and auto-branching.
Of course, the presenter intentionally left that topic out, in order to not confuse all those Git newbies.
However, the designer argued that this is what would make Git interesting for designers. He said that all this diff/commit/push/pull stuff was boring for designers where a "diff" between graphics files is neither readable nor meaningful, and where automatic merges are impossible anyway. But branching has the power to reflect the natural work-flow of a designer who permanently goes back to previous versions in order to try different variants. Reflecting this via "Save as ..." (and naming files accordingly) is very cumbersome.
Although I personally think this guy overrated the power of branches, this might change once the Git user interfaces becomes simpler to use, more targeted to designers (rather than just software developers) and better integrated into graphical tools like Gimp, Inkscape or even Photoshop.
I'd love to see the OSS community develop better source control software targeted towards designers. :)
That's what the commit comments are for.
BTW, programmers also prefer reading commit comments, commit dates and author names. They don't read hashes. (Although they sometimes copy&paste them because they are short and unique.)
I use Git, and its a wonderful piece of software craft indeed, but it does not have Windows/Mac clients, that designers often use, as their base OS.
A decent usable frontend for Git, on platforms other than Linux too, needs to be developed, for it to be usable by designers.
Edit - I meant to say officially supported frontend and support for other oses by git.
GitX is available at https://github.com/brotherbard/gitx/downloads (Get the experimental branch)
Git Tower is available at http://www.git-tower.com/
Textmate has a GIT Bundle at https://github.com/jcf/git-tmbundle (It's quite good, but maybe not for designers).
And Giggle (http://live.gnome.org/giggle).
Windows is the only OS lacking a good client, but I use GitX for Mac every day, as do the less technical "devs" at our Startup.
I've been using the whatever default Windows port that is linked from Git's download page for several months bow and there is nothing atrocious about it. It works well and it does differ much from the Linux version. (edit) The command line version that is.
I use TortoiseHG and I expected parity.
Given that git was created for hosting the Linux kernel, it should be obvious why it's not a first-class citizen.
And of course, the command line option through msysgit is great.
Git Extensions (http://sourceforge.net/projects/gitextensions/) is actually really, really, good. The UI is well-designed and fast. Wish more people knew about it.
Since the target group were designers, the presenter used a Mac, and tried to do everything using a GUI client for Git.
I don't remember which one he used, but it ran natively on the Mac and it looked quite nice.
(Still, the presenter sometimes struggled with that GUI. He was obviously more used to the command line.)
Both problems seem "hard but solvable" to me. Isn't there software doing that already?
Simple pixel-by-pixel "diffs" are of course possible, but only useful in trivial cases.
What if someone changed the color scheme (which affects almost all pixels)? What if someone moved some part of the image to another part? What about resolution/size changes and multiple layers? What about vector graphics?
And the most important thing: How to display that in a way to be easily understood by non-technical people?
For hard-core techies, there is of course the option to use a text-based image format. For raster graphics, the "plain" variants of PNM come to mind. For vector graphics, SVG or EPS might be good choices. Then, a good (indention-aware) textual diff should produce sensible results - especially if only details were changed.
Automatic merges are only useful if they aren't too "clever". That's important for text and especially important for graphics.
So if two distinct areas of an image are edited, a simple merge can and will work. But overlapping changes or even global changes should always result in a conflict.
However, if only trivial merges are desirable, most changes will cause conflicts, which would be not much different from the current situation.
Also, that kind of merges will already happen automatically with the current (text) merge anyway, provided that formats like PNM, SVG and EPS are used.
Too bad it's not Free Software ...
Kind of like a developer would have 10KLOC but be commenting the 8K of them in and out all the time.
In other words the document have many states at once depending on what you make visible or not.
On top of this, Git added the ability to merge changes together automatically. Imagine that one person changed a bunch of stuff in the first paragraph in a document, and someone else changed a bunch of stuff in the second paragraph, and the computer could automatically merge those changes into one document.
It would be great to have some type of easy non tech integration to git (github?) for designers to use.
Isn't that part of the "contract" of FOSS? You relinquish copyright of your contributions to the project as a whole. (I can see how this can bite designers who don't know much about the FOSS movement.) I suppose in this situation it's a good thing they use a version control system for designer contributions.
It certainly is bad practice to change something major with no discussion, but when you contribute something, expect it to be changed.
On the other hand, I’m not sure it’s fair to indict all open-source projects based on one side of a single story. I’d be interested to hear more of the details in this case; sometimes people walk away angry about simple misunderstandings and mixups.
I guess a “work of art” would feel more personal, and (unless given a tight spec of elements that must be included) is more of a candidate for either rejection or admission as-is. For changes I'd certainly expect a request “can you add a wizard hat on the ninja?” rather than someone modifying it themselves.
That said, I don't think it's a one-way street (and good design is sorely lacking). The designers should have or take an interest in the general operating procedures just like they would for any paid work.
When you do design for applications there are functional and conceptual components to the design. If people are taking your work and buggering up your intent, that's a problem, just the same way it is when someone takes code and alters its behavior without consideration for the code's intent.
The experience the designer had, and this conversation just belies the remaining gulf between the two groups.
I won't speak to this particular anecdote; I've found making judgements on intents based on a vague second-hand retelling of a one-sided account isn't useful. It sounds like communication was a total failure, probably on both sides.
Imagine you wrote a piece of code and then spent a couple of hours optimizing it to remove various bottlenecks etc etc.
You submit the patch, it sits there for a couple of days, then a designer (bear with me) comes along, takes a look, cuts out your optimisations to "simplify the code" and applies the patch.
You'd feel pretty rejected.
If I had designed and submitted a nice new icon instead of code, my experience would have been roughly the same.
Bottom line is that I didn't need to have my work accepted by anyone to validate my efforts. What I needed was to have the code run 20% faster for a rare use case; mine. And thanks to the project's authors choosing to go open source, that's what I got. Then, the authors accepted my patch, further lessening my work load by saving me from re-patching future versions.
So, do designers really get what 'open' implies? Would they enjoy being able to modify the splash screen for their own Eclipse install, even if nobody else would ever see it (they can btw)? I think having a headless mode is a much better feature than anything design-related ever could be. But that's me - other people want different things, and that is kind of the idea...
Also, obviously better 'things' (code, design, whatever) will sometimes take forever for no reason at all. Like this, for instance (the couchdb-python the logo is terrible):
Just remember not to worry: things tend to work out OK.
The issue is whether the person modifying or reiterating a work is competent to do so; We hear all about it with programming, but there is such a thing as "cargo cult design" too.
Also, I don't see it as whether a specific design contribution is "a work of art", with all its associated assumptions of involubility; in this context design is ever changing according to the evolution of a project.
The problem with design is that it is something that is not easy, but it SEEMS easy, because everyone has an opinion, and they think it's just as valid as anyone else's, even a professional designer. This isn't true. The people who designed the first 15 years of Linux interfaces should have never been allowed to design anything.
It's like the other guy said - if you optimized code and a designer came in and ripped out everything you did, rewrote it to be more "aesthetically pleasing", you would be pissed. If it happened twice, you'd throw a fit, and if it happened again you'd be done.
There needs to be a distinct process in place for contributing that doesn't include a programmer redesigning things before they get put into place. If the developer was competent to design, there would have been no need for the designer in the first place.
In the described event, there clearly wasn't communication but we don't really know anything more about it.
Here's a question, though: let's say you're designing something, say a logo, and there's been a fairly clear idea/requirements laid out, there's some sort of a feedback loop etc. Do you at some point settle on a finished work that you'll offer up and that's it? Or if the client keeps asking you to add more ninjas and make that T red &c., will you acquiesce whether or not it works for you?
Edit: or if there's a second designer who has a slightly different idea of how the finished work should look, how is that resolved?
In this potentially dicey scenario the ability to communicate with credibility is key; Everything we humans create has inherent connotations that can be interpreted and explained, and a designer should be able to justify how every mark on the page contributes to the experience of the end user.
Otherwise the person will just keep draining you, because everyone thinks they can design, except they can't. So they dilute your work to the point that it's a terrible mess if you give them a chance.
No, the problem with design is that every designer has a different opinion, and believes that their opinion is 100% correct, and there is no sway room at all. It has to be done that way, or no one will come to the site, even though it is exactly opposite as every other designer, who also has such strong opinions.
Design is subjective, but designers really believe it is not, that is the most important thing ever, and do not listen to anyone else.
If contributed code to a project, I'd expect another coder who knew what they were doing to change it.
But what happened is more as if someone contributed code and then, say, a tech writer changed so it wouldn't compile and then checked the code in.
I suspect it's not so much that a designer want to have their design never change. Rather, they want someone reasonably competent change it. The programmer often doesn't even know that they've "broken" the design by changing a few pixels.
That's called 'Copyright assignment' assignment and is not the norm in FOSS. You usually have to release your work under a suitable open source copyright licence, but you still retain ownership of the code.
Most of the large corporate sponsors of open source require copyright assignment. Most small one-man-on-guthub projects don't.
A designer's portfolio is based on visuals, which, if changed by someone other than the designer, no longer follows their intent and may not be representative of their design capabilities. While it may be contributed to the project, there is a definite need for those visuals to remain in a stable state for an extended period of time.
A developer's portfolio is based on projects, which typically either continue or stagnate, but do not vary enough from intent that their contribution is not discernable. Or, the contribution is to the project as a whole and that itself is the portfolio item.
It may sound like an ego trip, but this is a very real thing in the design world. You have to show your work, in production. It's one of the reasons I can no longer get a job as a designer - I've been a developer for too long and my past visual works are no longer used in production and I have nothing to show that I was actually ever a designer.
TLDR: It's not enough for the designer to say "I contributed to the project". They have to show visual proof because they are being hired or retained for their viewable work. A change in that design means it is no longer "their" work.
Here we come to a fundamental problem of FOSS economics. There are three forces which protect the software from the work of well-meaning but clueless people:
A) Physical reality. The software has to work. If I take an ax to the internals of Apache it will quickly become apparent that I screwed up when the web pages don't load. There are automated tests. There are well-defined criteria for performance: specs, stopwatches, size of memory footprint, number of crashes in N hours.
B) Community. Patches don't get accepted without buy-in. If you make a mistake that is bad enough you won't get enough other hackers to sign on to your patch. It will get debated to death until you make the community happy.
C) Governance. In any FOSS community, all contributors are equal in the eyes of the gods, but in practice some contributors are more equal than others. If everyone but Linus Torvalds likes your patch, your patch still might not make it into Linux.
How do these map to design?
A) One problem with design is that, almost by definition, it is the part of development that can't be done by a machine. You can't write automated tests. You probably can't even define "wrong" in any objective manner. Trying to do so will drive your designers straight up a wall:
So to answer the question "hey, did my nifty new color scheme screw up the design?" you really have no choice but to ask a design team member. But:
B) The problem with design is that it doesn't scale well; it depends on a consistent vision and a consistent sense of taste. It is very hard to get more than three people on the same page here, and that's if they are trying to cooperate; mix in a saboteur and you are in big trouble.
So the right size for a design team is small. Small, and select: You need to earn your way onto the team. Add more members, or more voluminous input from nonmembers, and the team quickly spends more time bickering than building; if half those members are volunteers who have no experience and haven't read the style guide you are doomed to perpetual gridlock.
The established way to break this logjam is:
C) from the top. What color is the Ubuntu default theme? Ultimately, it is what Mark Shuttleworth wants it to be. And Shuttleworth has some taste, thank god.
Unfortunately, very few project leaders have taste - not just in FOSS but anywhere; this is why every piece of gear I own is gradually being replaced by a box with a little Apple logo on it. And if you are one of the rare people with excellent taste and the ability to lead a big technical project you probably have much more lucrative things to do than FOSS. Unless you are an idealist and independently wealthy, like, ahem, Mark Shuttleworth. There are precious few such people. It's a problem.
On our project, we've been working really hard to meet designers (and developers and users) where they are. Most of the time when someone asks how to contribute, we list the:
* Ideal way, easiest for us;
* Less ideal way, maybe a good middle ground;
* Difficult for us way, still possible, but likely to take longer to get incorporated;
It doesn't always work but it usually gives people a starting point. Also, on the plus side, it leaves little trails & tips all over the place on how they could contribute better.
2. Make it discrete - What needs to be designed? The entire UI and workflows? The application icon? The internal navigation glyphs? Redesigning an entire app that has tens or hundreds of contributors can be daunting, but getting someone started with something small can be a gateway.
3. Leave it alone - One of the other commenters mentioned how a designer contributed something and then it was overwritten and ruined. Typically you don't want to have dozens of designers all working on a project unless there are fairly strict guidelines to work from. Have a working group at the beginning that can set the UI tone and create guidelines from that. Also a small review committee to review changes is smart, just as they do for code.
4. Version Control for Dummies - Put together a short explanation of how to use the version control system of choice, assuming no knowledge beyond Photoshop. Or find someone on the technical side who can be an intermediary/GIT trainer. The human part of this is very important.
Do those things and you should see prettier projects in the future. I know I'd love to get involved, but have no idea where to get started!
Lots of pretty mockups though.
Not to derail the conversation too much, but Inkscape also needs some improvement where UI is concerned, many things that should be easy are not.
Granted it's fantastic once you know how to use it, but good luck with that.
That being said, one thing they did EXTREMELY well was put shortcut keys on all of the things that you do frequently. After doing Inkscape for a while I get really frustrated by the lack of easy navigation.
First, to switch between different applications, OS X just uses application switching whereas Windows and GNOME/KDE use window switching. IMO, window switching is a terrible design decision because it clutters the application switcher and the taskbar/dock and breaks operations that should logically apply to entire applications (quit, hide, Exposé etc.) Another desktop OS that uses application switching instead of window switching is Haiku (a BeOS descendant). Anyhow, if GIMP ran on OS X, you wouldn't need to sift through a bunch of separate windows when you wanted to focus on GIMP. You'd just switch to GIMP the application instead of separately bringing each of GIMPs eighty seven windows to the front first.
Second, when a document based application loses focus, OS X will hide all floating toolbars and panels and all you will see are your document windows. In Exposé, too, all floating panels and toolbars are hidden. This would mean GIMP's myriad tool windows would become invisible when you switched from the GIMP to another application, or when you viewed GIMP's windows in Exposé. No more needles visual clutter!
Third, OS X has a top menubar. This means each of GIMP's windows wouldn't need to have a separate menubar. The global menubar would enable and disable menu entries as you focused on different windows.
I'll be happy when the single-window version is released.
window management should be handled by the window manager, not by each application.
Also, there are no standards for schools of design. There is no professional course that teaches the basics of ergonomics for the web the same way architectural web development can be taught. Most of the people like myself just follow a few major blogs.
I know many designers who would love to donate to open source projects.
There are schools that offer courses in interaction design. In addition many visual communication courses offer interaction design in addition to the usual print oriented design.
I think OSS in general could benefit from giving a designer such broad-brush authority over an entire ecosystem.
I feel like a second-class citizen around developers. And I don't want to venture in to the lions den. After all, I "just make things pretty", right?
I hate politics. Many open-source projects are a power-struggle with entrenched developers guarding against change.
Design is all about visual relationships. Making a change to one small aspect to the design effects everything else. This is very frustrating in an open-source environment, where parts of the design can be changed by the masses compromising the integrity of the whole.
Our industry doesn't appreciate it. Employers don't care what open-source projects we've contributed to. It's all about paying clients.
Thank you for giving me a jumping off point for one of the points I want to make (and please excuse the tirade, which has nothing to do with you).
I have a certificate in GIS. We were taught that a good map will be visually appealing in a way that makes other people comment on that appeal but a pretty map isn't necessarily a good map. A good map is one that present information effectively and efficiently. Doing this well gives you an attractive piece of work in the way some well-engineered thing has a certain visual appeal. In places where the GIS is done as a separate thing and is not properly integrated, the GIS department becomes a "map shop" and they become all about making pretty maps. And it's broken. It's a sign that something is very wrong.
Coders need to get over the idea that designers "just make things pretty". I saw an HGTV show where the stager talked about his goal of drawing people down the hall, past the icky kitchen and out to the amazing views of the main living area. That was the selling point but you had to get people to physically walk past and largely ignore less attractive features of the place. "First impressions" are big in real estate. So finding a means to get them to literally get past those items and get to the good thing was like making magic.
Coders need to understand that design is like that -- or good design is, at least. It can be. And it can add real value. And what I am not seeing in this discussion is where those two pieces meet -- where do the coders communicate their vision or design needs to the designer? I am not seeing that at all.
I think I have decent "taste" but I am not good at website design. I got free assistance from someone way more knowledgeable than I was. I got lots of free assistance for a time with every aspect of my websites from people who valued the content, never mind my many shortcomings. I had a falling out with the person who did the design work and we aren't friends anymore. I still give credit on my sites to their contribution. I try hard to thank anyone who has contributed.
I understand the idealism behind open source. And some stuff wouldn't be created any other way. But the tendency for open source/all volunteer stuff to be tainted with so much bitterness is part of why I am on HN and trying to figure out how to monetize what I do. I will monetize it or go do something else. People have benefited enormously from my unique understanding of some niche topics. People with extremely difficult problems who, in many cases, have been failed by all the paid experts they ever turned to. I don't know yet how to monetize it. To me, that is important. Other people get other types of benefit out of participating in various sorts of "free"/all volunteer projects/settings. Figure out what will benefit the designers. And if you do nothing else, thank them and give them credit. That goes a long way with a lot of people. If you can't figure out anything else to do, do at least that much. Be gracious about it. Being a dick is a good way to make sure people who gave just don't come back. And if you can't do that because you have grown bitter yourself, get the hell out of FOSS and do something you feel is more gratifying/satisfying. I stopped doing some of the stuff I used to do because I was bitter and everyone around me was way more bitter than I was. Downright bitchy and hostile in many cases. And I don't want to live that way. If I can't give it freely, graciously, and with an open heart, then you don't need me pissing in your cheerios. You can just go to Walmart or something and buy some piece of shit without the poison pill to go with it.
/soap box-rant-tirade thingy
In the UK at least, get designers get paid a lot less.
The work they do get paid to do is restrictive and dull.
Designers are generally driven by the desire to create and make 'pretty' things.
Most spend all day in meetings discussing why that shade of pink isn't good for the 99th design iteration of the same icon.
So I highly doubt they would rush to do this kind of work for free.
Most design work open source projects need are quite 'boring' from some designers point of view.
Many open source contributors don't find satisfaction in their day jobs.
The work they get paid to do is restrictive and dull.
Developers are generally driven by the desire to create 'cool' things.
Many spend all day in meetings discussing why that API extension isn't good for the 99th design iteration for customer X.
And yet many rush to do this kind of work for free.
Lots of work open source projects need are quite 'boring' from the technical point of view (documentation, project files, merging, OS integration. etc).
So why do people contribute to open source projects? Because they believe in the product and like feeling empowered.
I've been thinking that maybe a buddy-system might be appropriate for attracting designers.
A: Get some greater insight into the reasons workflow is performed like it is.
B: Get some insulation from the "Here is the Github. Go, be fruitful" nature of a lot of projects.
C: Have someone assist with VC.
The developer would get:
A: Exposure to ideas about design
B: Experience in how to effectively communicate with developers
C: Experience in HCI and usability
You, sir, have given me an EXCELLENT IDEA. TO THE INTERWEBS!
VLC is a product, that is widely used, usable (not the mac version, though), but it is extremely ugly.
It is quite hard to get designers to help us (redesigning all the buttons for example) for quite many reasons. The biggest reason is that we don't speak the same language.
Many designers don't understand the criticism that usually comes around with each modification in open source project. Many developers don't understand how to speak to designers in a polite way (they think they speak normally, but it isn't perceived as such).
Also, many (not all of them) designers don't understand the difficulties of usability, and sometimes mistakes it with "shiny". Usability of a desktop application is way more complex than a website, and the current trend of "removing functionalities" is not always welcomed by developers...
However, I don't loose hope :D
So as harsh as it may sound the answer to your question is that you just cannot get great designers. There's virtually nothing you can offer them in return. If you do manage to get someone on board, do shield them from the "community". Work one on one and put all your weight behind his designs when they are made public. Leet hackorz that are so vocal on many O/S forums and mailing lists can easily demotivate even Mother Teresa in a matter of few replies.
HTH, feel free to vote me down now :)
(edit) On a second thought VLC might be one of few projects that can attract a designer because of its high-visibility nature. Yet the point remains - designers are easily demotivated, way easier than developers, so retaining them is a major challenge.
VLC is quite visible, but that isn't enough, I am afraid :D
Except for a few things (like the conversion feature, which is really hard for non-technical people), me, and those I know use it, find VLC pretty usable.
* "Glue" team members. The company I've worked for always had at least two staff members who were a bit of both, and could basically plan out and convey ideas from one team to the other.
* Assumption of expertise. Each group would trust the other when it comes to both design and programming and no doubting would take place. In case of a conflict, a programmer could tell the designer why a certain design would not work out well citing particular technological reasons; similarly, given a question by the programmer, a designer would explain why a particular design is laid out the way it is, why the buttons are blue etc. Given the conflict resolution scheme, a product builds up based on mutual trust and communication of ideas between the two parties.
Key decision makers on that part of VLC is 2 or 3 people at max.
If the design is there, the code will follow, believe me.
edit: Another problem that i didn't think of when i wrote the above is that, since VLC is a multi-platform application, any SERIOUS interface changes -- changes to work flow, arrangement of options and menus and the like -- need to be copied over to the other platforms.
For instance, VLC's transcoding function, whilst very featureful, is incredibly irritating to use, interface-wise. Suppose i had the solution to this, and i provided it to VLC. That's step one, but in order to get that actually put into the product, not only do i need to have done my part, but then you need presumably multiple programmers to actually get it implemented in the Mac, Windows, and Linux versions.
Editing a NIB and not making it open source, is near useless for the community...
Not to mention that the developers don't have to court those people, it should be the other way around... They should propose their design. This goes for everyone, developers, translators, technical writors... Why would designers be different?
Finally, about the transcode part, this is not a designing issue, but a usability issue...
Do you mean the Mac development community, or the Mac user community? Because based on my admittedly anecdotal research, i would say that the latter almost certainly do care. Why none of the developers have stepped forward, i don't know -- maybe they feel like their talents would be wasted given the past administration of the Mac client? Maybe they think it's a hopeless cause? Have the VLC team made it clear what sort of developer they're after? Do they want someone to just expose their functionality changes to the OS X version, or do they want someone to take charge of the OS X version, in the same way that Transmission's Mac UI team take charge of their OS X version?
> Editing a NIB and not making it open source, is near useless for the community...
Of course it is. But why do you think people do that? If they felt that the work they were doing anyway could influence the design direction of the official VLC project, wouldn't they jump at the idea? Almost certainly they would. They don't because they feel like no-one at VLC cares about their work. (And given that the OS X version is unmaintained, i guess that's true.) They don't know that they have the opportunity to use their talents to make more meaningful contributions to VLC.
> Not to mention that the developers don't have to court those people, it should be the other way around... They should propose their design. This goes for everyone, developers, translators, technical writors... Why would designers be different?
There is a well-known path for developers to submit their contributions. Everybody knows it, it's understood, it's easily accessible for people who do their sort of work. A designer is less familiar with these processes.
Not only that, but a designer can't implement their changes on their own. Any random developer can look up a bug on a tracker and write a self-contained patch that gets merged with the trunk and then boom it's fixed. That's not how interface design works. A random designer can submit mock-ups or image files to a bug tracker, but they require another person -- a developer -- to actually put their ideas into action. This is a much larger barrier to entry.
> Finally, about the transcode part, this is not a designing issue, but a usability issue...
It is not an aesthetic issue, no. But the work flow -- the steps you need to take to complete an action -- is another aspect of interface design.
Heh. Obviously as VLC's developer you know better, but FWIW I've been using VLC on Mac OS X extensively, as my primary video player. I don't think it's unusable, or ugly at all.. I can't be the only one, can I?
I've been working with a designer to try to do this mockup:
There's a 90/10 rule - only put the stuff you use 90% of the time in the UI. The other 10% goes in the drop menu.
In the case of your mockup, I doubt people are EQing every movie they watch. They don't really use the library, so prev/next/loop/shuffle and lib are all unnecessary in a player view. I expect in most cases people use VLC to play a single video, something that a native player won't.
Further, your time display doesn't show total time - only position. Most players show current position and a total time/countdown toggle. The best include an end clock (i.e. your movie will finish @ 1:32am).
What new type of user are you trying to attract? Once you know that, it's pretty obvious what to do. Ping me if you wish to discuss (radley@ cloud.tv / vj.tv). I'm a big fan of VLC and build/design UI/UX & media players for a living...
P.S. Not just being a spoilsport here -- I do contribute to VLC, just through libavcodec.
(Except maybe the fact that the playlist's default setting always goes back to "shuffle" for some reason.)
Those are some great points, they're discussed in this book: http://producingoss.com/en/communications.html#writing-tone
I think usability is a blend of user experience, usefulness and intuitiveness. I have a hard time associating the latter with either the programmer or the designer.
My experience, as a programmer working often with designers, is that many of them (not all) are more concerned with the visual appeal of an interface and to a lesser extent its intuitiveness and usefulness.
For example, I've built quite a number of web management systems. Most times, when I team up with some designer they'd want to make pretty icons. However, I've come to the realization that we get more praises when the client can just look at his system and recognizes what he asked us to build and can easily guess where to go next. And that more often happens with text buttons. I believe that visual cues have their place, but I also think that many graphic memes have gone beyond useful, which probably doesn't help the relationship between programmers and designers.
On the other hand, I remember a time when I would build some quick ass functionality, but presented in such a convoluted way that only other programmers could understand the prowess and usefulness of the feature. You had to get up up early to get me to change them!
Programmers tend to be very minimalist, whereas designers are often very expressive. I think there is an effort to be made on both parts to reach a middle-ground. Designers need to learn that pretty doesn't necessarily mean useful. And programmers need to realize that just because their work is useful doesn't warrant that it's usable.
There's hope though. In time I've learned and now strive to make features as intuitive as possible. I now also favor very pretty, text-only, icons.
[...]and the current trend of "removing functionalities" is not always welcomed by developers...
In my not so humble opinion, graphic interfaces should be designed with the Pareto principle as a guideline (80-20 rule http://en.wikipedia.org/wiki/Pareto_principle). Is the feature useful? Yes. Will it be used often? No. Lets put it in the "nice to have" list.
If the application caters to a broad audience with varying levels of expertise and usage, it should present interfaces with varying degrees of complexity. I've seen this applied in real life successfully (e.g. in Ubuntu: dpkg >> apt >> aptitude >> Software Center). I definitely agree with you though, that too many software nowadays try to make things too easy without offering a way to go beyond the basics.
The designer should know enough to you visual symbols that have real-world equivalents to convey the meaning of the button visually. Envelopes for mail. phones for contact button. Thumbs up to like, thumbs down to dislike.
This is my first time learning about the open source project (never been on hacker news before). Can anyone provide a link to what you would call a typical open source project in need of a designer. I'm terrified of working with you guys but am starting to feel like maybe I should get over that and lend a hand.
You shouldn't be terrified.
My advice: start with a small open source team (not small project) on a project you like. Maybe do not start with your real name (it will be easy to change aftewards). Come on one IRC channel of a project ( like #videolan on freenode) and propose your services. See how people react.
If you like them, go on, if you don't, move along.
VideoLAN makes VLC. VLC is one of the best video players in existence, it's also fairly ugly.
And yes, too many people forget usability for prettiness.
VLC is usable (not all parts, true) but isn't beautiful.
I am a designer and a FLOSS guy and I have actually researched this subject a lot, both in practice, in writing and in teaching. The essay I written for Smashing Magazine a few months ago might be relevant in this context, it is called "The Case For Open-Source Design: Can Design By Committee Work?"
I identified three major challenges:
1. Scratching an Itch
I go through a few interesting positive examples for collaborative design processes and then try to propose some tips to making it work. Finally it's about a mix between leadership and openness, but this leadership has to be respected even if it does not translate to algorithmic metrics (like Google's A/B Testing of 41 shades of blue, more: http://stopdesign.com/archive/2009/03/20/goodbye-google.html)
If you prefer to go through this essay as a 20mins video presentation, you can check it here:
I start at 00:27:50
I realize this is a pretty long and complex answer for what sounds like a simple question, but in my experience this is really revealing the boundaries of the Open Source collaborative process as we know it and it will not change unless we help this model mature.
1. It exposes a programmer's code work for all to see. If it's bad, you get more than just critique. Others can point out what is wrong with the code but even better, they can correct the code or help you see what is wrong. If it's good or great, it makes for an amazing addition to any developers resume for hiring purposes.
The same can not be said of designers. Sure they can get feedback and people can often point out what's wrong, but these feedback are often more vague. Rarely do they get a walk through tutorial of how to do things better, actually having someone go in and show them how to fix their design flaw (something that happens a lot on the coding side). Pointing something out and having someone help you solve your design problem are not the same thing.
2. I don't know about others but to me, a designer benefits more from having their own portfolio rather than something that they may have contribute bits and pieces together for a project. As a designer, I don't see the value over my own portfolio which I can get enough critiques on without having to contribute to an open source project. As a developer, I see a need but think in terms of what designers benefit out of this. Open source designs are not the same as open source software in all cases. As an entrepreneur, I hire designers base on independent skill sets which is extremely hard to measure when people are co-designing small projects.
3. Just a comment but it would seem this is geared towards a developer who can't design and want open source designs but where is the benefit the designer is getting out of this. Surely there is a better argument. For the record, I'm not arguing that designers can't benefit at all. I just don't see it outweighing the benefits a developer would get in the same scenario.
Designing for a project requires a lead to a greater extent to keep the design consistent, whereas programming is more defined and concrete work: "This is wrong, fix it." If the issue no longer occurs after the patch is applied, work is done. Design work is more abstract in that sense.
The designer's benefit would defiantly be in having the project in their portfolio. Additionally I don't think too many projects need an entire design team, for most projects one would be sufficient increasing the portfolio value you are talking about. Most people contribute to projects they use, adding functionality they would like to have themselves. I'm sure that is something that would motivate designers too.
Why should I contribute to an open source project when I can do something like design a simple killer wordpress theme that may gain major adoption and use that as reference for my work than a single open source project catered to a single developers open source work that may or may not get used heavily. That or is only used in parts. There are tons of free designs out there, how often have you or anyone you know hiring designers reference how awesome or widely adopted their one off icon kit has been or something similar? Not happening.
WordPress is designed to easily accept design products like themes.
This means that, ideally, the design process comes before the coding process.
It can be very dispiriting for a designer to come into a project somewhere in the middle to find that major design decisions have been made and cannot be overturned. It is common, for instance, to find open-source UI that mimics the data structures of the code rather than the foibles of a human brain.
If a designer were to join an open source project they would be seen as "trying to change everything", "dumbing down" and "trying to take over". Which would, in a way, be true - and probably exactly what was needed.
I've often wondered if we designers could start open-source projects: start designing, publish & document our designs, release our work to the open-source community and wait to see if anyone bites.
I have seen this happen before and it was amazingly successful: Coverflow. Andrew Coulter Enright, a designer and artist, published a design for "how iTunes should work" on his website. Jonathan del Strother, a Mac developer, bit and published an implementation. Cover Flow was purchased by Apple Inc. in 2006.
I'd love to see something similar happen with a larger open-source app. Any designers out there want to join me in starting a site for exactly this kind of workflow?
In the field I work in, designers and developers have equal standing, and need to create a middle ground of shared workflow, technology and design processes that balance development and design.
In most open source projects, there are too many barriers to entry (real or perceived) for designers to see themselves as participants. Everything from version control systems that don't provide any real benefit for visual designers to project leaders that see design as "eye candy" all reduce the appeal to designers.
Remember, too, that designers have loads of options if they want to work for free. You know all those "Build a Facebook clone over the weekend, it will look great on your resume" jobs on Craigslist? Designers get that kind of pitch ("Design us something for free; it will look great in your portfolio") constantly. Open source projects looking to recruit designers need convey some tangible benefit to participating.
In the design world, peer recognition doesn't come out of working on open source projects that their designer colleagues have never heard of. Every designer I know of will jump at the opportunity to do really great work, for free if necessary. Looking at the open source projects I'm familiar with, few of these look like the kinds of places where a designer would expect to create really great work.
Can you (or others) elaborate a bit more on what a place where a designer could expect to create really great work would look like? Is it more of a personal aesthetic thing (something that is personally interesting)? Is it related to some of the other points in this thread (unfriendly tools, gruff face to the community, lack of control etc.)?
* Projects should include screenshots or other visuals (no matter what their state of completion) on project pages. Browsing the usual Github page shows no visuals at all. Not every project is going to be heavily visually oriented, but most of the project pages I see look like a giant "Designers not wanted" sign.
* An environment where design can happen collaboratively. The "design thinking" ethos requires understanding what the problem is before trying to solve it. To really involve designers, some sort of sandbox where ideas can be expressed as something other than code, feature requests, bug fixes or "64x64px.png goes here." Would be ideal - a way to say "I see this working like this..." in a way a visual designer can express. Lots of discussion happens via chat, etc, but pretty hard to access if you're already feeling excluded.
* Something recognizable as a team structure. If projects need a designer, a project page noting an unfilled slot on the team would be ideal, along with some details. Icon designer? UX specialist? Copywriter? What do you need?
* Integrating rapid prototyping tools for design exploration. One of the tough tasks I find in interaction design is to get a feel for how a complex system is going to work without building it. I've see everything from Flash to Filemaker Pro used to build working models, to then be built out in another tool. Photoshop comps are great, but not a great way to simulate a lot of complex interaction models. If designers and developers are going to speak the same language, it's probably not going to be code.
I teach at a university of the visual arts, and I've often wondered about finding a way to engage students in open source projects, but to be honest, I've always been to fearful of what the outcome might be to really push this. My worry is that for a lot of developers, a logo and a few icons is all they are looking for. Fair enough, but not terribly attractive to the types of designers that projects really need.
Finally, designers need to understand what a big deal software is. You almost never see application design (web, desktop or mobile) represented in the big design award annuals, and the types of things that do get in tend to be gimmicky, Flash-driven web sites for consumer products.
I know that I've been guilty of not making/updating screenshots very frequently - they tend to be a pain. Something to keep in mind for the future, though.
A collaborative design environment is a hard one. I've found it really useful for code in the past but as you said, that doesn't help a whole lot on the design front. The only practical thing I can think of at the moment is sending links to static images back and forth over chat, but that doesn't get over the barrier to entry on chat.
The only other things I can think of there would be screencasting (which usually costs money and tends to be a little more one-way) and VNC but that requires a lot more trust than I have for strangers (or than I would expect them to have for me).
Team structure might be a hard one. I can't speak for all developers but I generally don't like having a formal team structure if it can be avoided. Do you think that the role part is important or just discrete, specific tasks? If you were thinking of more of a control thing, that might be even harder. Unless I'm the only developer, I generally don't expect to have much control over a specific area. Then again, I also wouldn't expect people to be jerks and completely change something I did without at least talking about it first.
I don't have as much experience with desktop applications but I wonder if rough HTML/CSS might also work for the interactive parts. I'd have to think about that one and it might be an excuse to try mocking up a desktop app I've been thinking about.
I don't know if you'd be interested or if it would work, but I'd be up for at least talking about less uncertain ways to get your students involved in open source.
I have a couple of ideas for projects that I'd love to get design help on as long as I'm not completely left out of the design loop. Getting more people (and especially non-coders) involved in open source and helping in education would be bonuses.
Now that I'm in deep, let me go further... A motivated programmer can learn the basics of interaction design very quickly, and get the user interface to a point where it at least doesn't suck.
The second thing would probably be, like others have said, just to ask -- and part of asking for help is making sure that you are able to actually receive the help. Perhaps partially because of the above, and also because i am not really a programmer (yet!), i have come to be hesitant to even try submitting anything. The process is too complex. I feel very uncomfortable with patches and pull requests and test cases, so please don't make me deal with them. Offer a 'dumbed down' way of submitting our contributions, or, perhaps, make somebody a liaison between people like me and people like your developers.
Large open-source projects in particular -- Firefox, GNOME, KDE -- are ones that i have the most interest in contributing to, but they have extremely high barriers of entry for people like me. (To a relative outsider it kind of seems like the design direction of these types of applications/suites is strictly controlled by some high-up cabal of developers, though, so perhaps that is intentional.)
1. Communication. Developers use a completely different language than designers. If I come in talking about alignment, developers are thinking 'right left or center justified?' When developers start talking about recursion, I go to sleep.
2. Attitude. Often developers seem to think of designers as 'artsy' types, and design as 'nice-to-have,' which is to imply not necessary.
3. Attitude. Designers often get emotionally attached to their work and get discouraged or give up when someone disagrees, has a different idea or wants to go another direction.
4. I can do it myself. A LOT of developers - particularly less experienced ones - think design is something they can, and are, successfully doing themselves. After all, it's just pixels on a screen, who needs photoshop, right?
5. Small changes. Developers often make small changes to designs. 5px extra padding here, no margin there. Blue is blue, right? We'll just use that 10x10 icon the designer did for that page for this 25x25 icon we need on this page. This drives designers insane.
6. Eyecandy. This goes to a lack of understanding of the design profession; many think design is just slick icons and pretty colors. Developers who have worked with talented designers know that designers can improve entire systems, helping streamline work flows and adapt the system to actual users.
7. Bad designers. Oh yea, there's -a few- of us out there that just picked up GIMP yesterday and think a 600 x 600px favicon should be fine. Even designers capable of really good work may not understand why a 2400x1600 image cannot be used thumbnail-size on the page. This is sad, but I've seen it.
8. Lack of trust. Developers may have worked with bad designers in the past. Most likely they have, actually. They'll likely limit the designers interaction to making icons and css rather than involving them in the system design and planning. Designers may not give as much as they could because they don't trust the developers to value their input or even understand and execute their contributions well.
Of course, that's not to say all projects are this way, and in fact, when I've been involved in projects from early-on, this is very much not the case.
However, I've run into the above issues in my professional career more than once, working face-to-face with people. Trying to make the relationship work online, in projects as distributed as OSS projects are, that's very difficult.
But I think it can be done. For distributed design to work, designers need to be brought on board from the beginning, in the planning phases. The initial designer or designers would have to be responsible for creating a clear vision, clear guidelines, and a well-documented style for future contributors to follow. All contributions would have to adhere to those guidelines, and developers would have to be as adept at spotting violations as designers.
Part of the problem here is also making designers aware of projects to work on. Designers generally join different message boards (if they join message boards at all), read different blogs and generally don't run in the same circles as developers, possibly with HN being one of the exceptions. I'm not sure how to change that...
It's a quick, easy read and the concepts can really apply to any kind of visual design. Any of her other titles are also excellent.
> 7. Bad designers. Oh yea, there's -a few- of us out there
> that just picked up GIMP yesterday and think a
> 600 x 600px favicon should be fine. Even designers
> capable of really good work may not understand why
> a 2400x1600 image cannot be used thumbnail-size on
> the page. This is sad, but I've seen it.
Alignment is everywhere. When you start analyzing interfaces you will often find that great interface design attempts to have as few alignment lines as possible.
Obviously text on a line is alignment too (horisontal).
And then there is optical alignment which is especially important in typography.
This time not from my own blog but from Brandon Walkins
And yes, alignment is a big deal, especially in any kind of information design. Look at magazines, newspapers, good newsletters, business cards, etc. Alignment is all over the place, and most are designed on a fairly strict grid, i.e. many newspapers use a 6 or 12 column grid.
The big concepts I want developers understand are: Alignment, repetition, contrast and proximity. If you understand those, you will be a better visual designer.
P.S. "natural inviting" in my original post should be "natural and inviting".
The most important function of aAlignment is to communicate what belongs together.
Having objects align also makes for a “calmer” design. Imagine that each new place any object has a beginning or an end adds an invisible line to your design. These makes the design more chaotic. Aligning objects is a way to “re-use” the lines so that you don't end up with too many of them.
(Designer here, although I will not claim to be an expert on it.)
Here's an article for the interested. Often times, designers will use a grid, like http://960.gs/ offers, to help make layouts with good alignment.
Left, right centre alignment refers to the relationship of text and text frame. You can still have alignment relationships betweens photo and text frame, photo and animation, text frame & text frame, etc.
As a developer, I recognize that I am not the best at everything and don't pretend that I could design an awesome Wordpress theme if my life depended on it but as you point out, design is not just the "eye candy". At the same time, I am not just an codemonkey. I want to participate in making something awesome, I want to learn and I want to work with people who know more than I do (I learn more that way and will probably come up with a better result).
In my mind, there is a difference between working together and saying "developers can't design, just go over there and write some code to make my vision come true" (I realize that I'm exaggerating a bit here). Any hint of a "just shut up and color" mentality makes my hair stand up in ways that I just don't have words for.
I don't think that either extreme (designers are the only people who can design or 'I can do it myself') is the right answer in any projects where volunteers are involved. As you pointed out, the trick is finding a happy medium and some way for people who stereotypically think in different ways to find common ground.
Now I have some thinking to do about how I can help reach that common ground in the projects that I work on and will work on.
* Edited formatting because it was hard to read. I'm new here and learning.
I'm also not a big believer in the "big design effort up front" methodologies. I tend to think of design (of code, at least) as more of an iterative process. I can't think of a single project I've worked on where a big design effort up front hasn't gone through a huge change before project completion.
Why spend all that time on a huge, detailed design that will end up being partially thrown out in the end when you can make iterative changes and design some things as you go?
Granted, this doesn't work in all situations and you do need good developers who are willing and able to write good, testable code and throw it away at a moment's notice.
If I code something in the "first make it work" phase that isn't throwaway code or can't be completely ripped out and rewritten without too much risk/effort, then I have failed as a developer.
Another mantra I try to code by is: never let perfect be the enemy of good. Perfection is never done and the best design in the world means nothing if it never gets finished.
As a designer, I feel that the design process is meant to highlight better routes to take with any artefact. It develops it further whilst keeping the goals more focused as they are nearer.
When I had the chance to work in the cakePHP website they were 100% hands off and just let me run wild and do my thing. That has not happened again in my career and I think that continues to be the major highlight in my portfolio (apart from the exciting stuff I'm doing nowadays :P)
Many sites are heralded as an example of 'no design necessary' because they lack the eye candy. However, the minimalism of these sites, the layout of results by date (as opposed to alphabetically or something else) the categories they are arranged by, all are part of the design of these sites. Was a designer involved in this? Hard to say, probably not, but were these decisions made intentionally by someone considering alternative choices? absolutely.
I'm not saying designers are the only people who can design. Just that designers are trained and have experience making decisions like the ones I mentioned above. We can - and do - provide value to software.
In this way, Reddit's 'poor design' serves a function of repelling undesirable people. If you want to repel people then go for a non-design. If you want to attract as many people as possible, or attract people who are turned on by something other than a wall of text, then hire a designer.
Design isn't necessarily about embellishment, but aesthetic choices. Good typography and color scheme choices don't have to be paired with elaborate graphics for a design to be good.
But more to the point of what you're saying, design is NOT optional. It is the essence of how people interact with your website/product. There are certainly some exceptions to the rule, but generally people flock to a more attractive product because it is attractive. Look at any Apple product for a perfect example of this. iOS is far less usable and powerful than Android, but people like it more because it's visually pleasing. OSS is never going to win unless it has that similar level of sex appeal in its products.
I'd argue that iOS is far more usable than Android in addition to being visually pleasing.
The problem here is your very definition of design. If you were a designer, you'd be the bad kind that equates good design with over the top graphics. The best design is subtle. It doesn't call attention to itself or say "look at me." It just is. To paraphrase from the movie Helvetica, good design shouldn't make you say oh look how nice this design is—it should make you say well of course it's this way, why would it be any other way?
Take this very comment page, it's not flashy but I wouldn't say it's bad design at all. It knows it's audience isn't looking for bells and whistles. Everything lines up in a pleasing—and more importantly, logical—way. The typography is decent and there's enough differentiation between the comment and it's meta data. I could go on.
Basically, just open your mind. Bashing someone's profession without hearing their side is never smart.
The way there are upvotes and downvotes on reddit is an important part of the design. It has deep repercussions on the user's dynamics, the way posts get popular or are ignored, etc.
Now, purely font-choosing 'design' is not that important, but if you think that's design, you are misguided.
And this comes from a guy who just codes and does SQL queries all day.
Don't -ever- expect anyone to contribute for free. When they do, treat them special instead of taking them for granted.
That seems like common sense, but that's what I see all the time when it comes to programming projects, open source or not.
Right, but apply the same measure to developers too.
We often get into the habit of taking some contributor's work for granted, be we shouldn't. Every patch should be treated with the same respect and gratitude. If it's somebody's seven-hundredth patch, you don't have to say "thank you" for every patch, but you should still keep that humble attitude.
WINE's release emails always specified who did what, and that's not quite a 'thank you' but it's definitely more acknowledgement than I sometimes see.
It doesn't even have to be the project leader or other developers doing the praising. A proper bug reporting system will give the users a chance to give that praise as well, thought the leader/developers should also be thankful for the contributions.
It's not easy, and I'm not trying to say it is, but it needs more attention.
Just in this context of getting people to 'contribute', we're explicitly referring to projects where the developers do not get paid.
If you're developing software for somebody else, they're not paying you, and you're not getting any benefit whatsoever, that's entirely your fault. It's certainly not unfair though.
For open source games, the same question could also be asked for music composers, and again most of the same answers apply.
It might better to ask why is it so easy to get coders to contribute.
One of the proposed long term goals (still going through the approval process) for the Fedora project is to lower the barrier of entry for new members (Not a great link but one of the better ones that I could find: https://fedoraproject.org/wiki/Meeting:Board_meeting_2010-12...)
DISCLOSURE: I do work for Red Hat on the Fedora project but my interest in open source is also personal. I suggested this because it seemed appropriate and I'm familiar with it.
IMHO, designers don't usually feel any importance of open-source projects because most of them/us are used to things that are aesthetically pleasing, and they would not want to burst their/our bubble. If they we're given a choice between free Linux (assuming Adobe Suite works on it) or OSX, they would be getting OSX because it suits to their world, they would be even paying extra if it was to cost more. Also, they want something that just works and don't really care whether they can see or edit the source, since their coding experience usually ends with HTML and CSS, hence the apathy.
I've worked with quite a broad range of websites and the less control I had over my work, the less I enjoyed it. Solution? If you're able to find a designer for your project, make him feel special by taking him as an equal member of the team and give him full control of the design side (aesthetics). More so, let him start from the scratch. Although, arguing about functionality (UI and UX), which has logic in it, should be encouraged, you don't want to offend him by saying his designs look bad, because a criticism coming from a programmer is as bad as it gets. Coder's blogs are usually coloured dark blue or green, that tells a lot. That's also the reasons why most designers hate working for Google. One hour meetings whether a line should be 1 or 2px thick? If you don't really like what he is doing, ditch him.
Designers are always seeking for some projects to do even with no money return. There are several platforms that work based on this sharing skills principles, but often money based. Usually seen as a contest platform where the client requests and users (designers) responds buy uploading their work. Examples of this are Crowdspring www.crowdspring.com and in a smaller scale DesignRider www.designrider.com. Why not build a sharing platform like these for open-sources projects?
For a best results return, the briefing (instructions, guidelines, rules, project intention description, for instance) should be clear and precise. For instance, by specifying the format in which you want your design work will already scan designers skills and give you more to the point results. Of course, conversation is always welcome, a mailing list /forum in such platform to discuss and share knowledge between developers and designers cannot hurt either.
"Designers are scared of developers. Developers speak a foreign language, they are like aliens." Simon Hørup Eskildsen. I don't think is there such a big barrier between designers and programmers or developers. It is time to drop that assumption. A web based platform that gets both working on several open sources projects is a solution to consider and that might bring more responses that you can think of.
Whether a change comes in the form of code fixes, documentation improvement, refactoring, design changes, or infrastructural modifications, the burden of understanding the potential scope of damage and doing the actual work is always, always on the contributor. Convincing another to take on the work on their behalf is always a possibility, but it should not be hard to see why design changes proposed through such a channel will often be pushed to the back of the queue, unless for some dire need.
Designer or coder, there is no excuse for not doing due diligence in making sure a contribution is a good contribution.
Looking at the discussion so far, there appears to be at least some consensus that non-trivial effort above and beyond the (hopefully) expected hand-holding must be dedicated to designers in order for them to become good contributors. And, in corollary, the natural conclusion is that it's unrealistic to expect designers to put in the necessary effort to become good contributors on their own.
Following from the above, the more crucial questions, I think, are "How do we convince projects that they should go out of their way to attract designers", and, "Do you really need designers? Really, really, need them?"
The are two other things that programmers tend to do:
(1) we hate redundancy
(2) if something is obvious to a programmer, he thinks it is obvious to everyone else that that is the way it should be done (despite a simple survey of his peers revealing probably 4-6 different ways of achieving exactly the same result).
Programmers believe that their way is better than everyone else's and that it is intuitive as well (well, it was 'intuitive' to one guy on the team (ie me), and I'm 'smart' so that must be the best and most intuitive way of doing it, right?)
Unfortunately, good UI design has enormous amounts of redundancy built into it, and that if there is only one way of doing something, it is actually anti-intuitive. A design where the user can try 3 things out and the third one works will be hailed as a paragon of intuitiveness. One where it takes 10-20 tries to get the magic combination will be viewed as having a horrible UI.
There is also a relationship between how easy it is to do simple things and how the user perceives the UI. Programs which make it hard (ie go read a couple of hundred man pages in order to figure out the flags you need) even to do simple things are viewed as bad, even if it turns out that the same amount of difficulty can also achieve amazingly difficult things.
Basically what it boils down to is that in order to fix the design of an open source project, you would essentially have to fork it. And having forked it and fixed it, the high priests of the programmer cult will despise your efforts because there is too much redundancy.
Reading the thread here makes me realize that we're all so specialized--and this is a big part of the problem. UX designers need to learn to use a command line, need to learn to do at least some coding. Likewise, software engineers (including open source contributors) need to become more discerning about the basic principles of human-computer interaction and user interface design (not just visual styling). Once both roles start to become generalizing specialists, better collaborations will just happen.
Where are the open source designers? copywriters? information architects? interface designers?
Making it hard to contribute can be a barrier, but it's not the number one reason. Designers redesign apps, icons, and sites all the time just for fun, even if they know that their contributions have no chance whatsoever of being used.
Designers want to contribute to something that they care about, and the simple reality is that a majority of open source projects are made to appeal to developers, not designers.
In other words, if you want designers to contribute to your open source project, make it something that they will use and be passionate about.
So, when they called out for help to design their official website I jumped in and they gave me the opportunity to contribute with my design.
As a happy side effect, that design gave me a lot of exposition so I could finally left my dayjob as a print designer and start my career as a freelance web dev. It's fair to say that the link on CakePHP's footer brought food to my table for 4+ years.
One reason designers usually don't contribute to open source, is because they're paid to improve UX/UI on their commercial competitors. If GIMP/Inkscape had the same UX/UI as the Creative Suite, there wouldn't be market for the latter (this is what designers are paid for, unlike developers).
This allows more startup opportunities or companies like Canonical (parent company of Ubuntu) to provide a free and open source product (Canonical actually has dedicated designers).
Too often when I try open source software I see just a default list of options that really makes no sense, or I often see the developers trying to accommodate every need that might exist, resulting in overly complex user interfaces.
It takes someone (a designer usually) with knowledge of human interaction to know when a toolbar with multiple tabs works or when to keep it simple. Without doing this, designers are (in an overly simplistic description) just applying colors to existing boxes.
To get involved, Designers need a clear place to find projects to help on, and a clear way to help on projects -- as designers aren't about to open source code, install it on their own system and then begin work on the project.
I consider myself to pretty knowledgeable in the tech community and work as a full stack designer/developer, yet I have absolutely no clue where or how to get involved design-wise with any open source project. There's no "design" section on github or google code that I've ever seen :)
Obviously this isn't an absolute, and there are exceptions to this rule. The most important thing I can get across is this; End users do not, and will not, think like you do about your software (Read 10x). The reason you must get perspective outside your own is because yours is tainted beyond repair when looking at your own project.
So, what can you do to make your open source project more appealing to a designer?
1) Let go of preconceived bias when it comes to your UI / look-and-feel.
Someone more interested in the visual appearance and usability of your application is going to want to make changes to the workflow. Just as you test your code, test your design to make sure the designer's assumptions hold up. As a president once said, "Trust but verify."
2) Develop a clear understanding of where your designers implementation responsibilities end and yours begin (and vice versa).
Which is to say, know their limits, and know your own. If they don't know how to integrate their work into your project then either help them or find a third party that can. If you don't know how to integrate their work into your project then have them help or find a third party that can. Focus on your strengths. Nothing is more dissatisfying that seeing your work butchered.
3) Check the ego at the door/keyboard/whatever.
This applies to everyone involved in any way, shape, or form. Objectivity is the ideal, but lets be realistic. Personally I know more people who have had bad experiences volunteering / interacting with open sources projects than good (including myself). While this is anecdotal I think it's still important. Don't mistake popularity with success, and don't let popularity become validation for your lack of social skills. The people at the other end of your emails, IMs, IRC channels, etc are just that... people. The golden rule gets turned up to 11 when someone decides to take some of their free time and donate it to your cause.
This is hardly comprehensive, but I think it touches on a few points in ways I have yet to see in this thread. Keep doing your good work.
If a designer has created multiple layouts he could also make one for free to get people interested in the other "premium" ones, so its not that every design has to be a payed one.
As a developer, I've already helped a few opensource projects.
What's missing? A centralized location for designers to meet developers. github is unfortunately designer-unfriendly. It's developer oriented, and code-centric. Fixing github into having a design aspect will surely repair this.
I once tried to help out interpals.net. The usability of the site is non-existent, and the visual elements look like they were made by a four-year-old. Thus, I've come up with sketches and UI elements and gave it to the founder. He was amazed and seemed eager to work with me. At the end wanted someone more experienced. By that, he meant someone who can code, not only design. He wanted a developer. At the time I wasn't one.
Beggars can't be choosers. His site continues to be dead-ugly.
I really want to help anything because I need to exercise design as much as coding.
This shows that you respect their input and are inviting them as a peer to think about the project both visually and on a systems planning level.
I'd also recommend having a design lead who can bring on other designers as needed. The design lead should be responsible for making all design decisions and ensuring consistency. He should also be regularly communicating his decisions and reasoning to the community. (Mark Boulton did great working with the Drupal community, for example.)
When you give feedback to designers, try not to say "Take this out." or "Make this bigger. Or change this color." Tell them why (this is very important) you want something changed, and let the designer come up with a solution. And trust them to make the right one.
But don't ask them to whip together a "quick" mockup, that's considered spec work and is frowned upon in the design community. No design work is both "quick" and good.
So what kind of designer were you looking for?
BTW, from a visual design point of view, the classic education is to first use a monospace typeface at a single size, then use other typefaces and multiple fonts and weights, then get to the fancy curves and Photoshop bullshit. But honestly if the designer couldn't make it work in Courier, they may want to consider another career.
So there you go. Did you want gratuitous eye candy or did you want a talented and educated artist who also knew booleans, conditionals and how to hit up a database?
Development is modular – pieces can be added, removed, or changed out for other pieces. Several developers can work on the same project at the same time and not step on each others' toes (esp. thanks to modern version control). This works great with the open source model.
Design, on the other hand, benefits from being unified and consistent. The best-designed projects have one designer, or a small group of designers working together closely. This doesn't work well with open source at all.
This becomes pretty obvious when you compare Mac systems to Linux systems.
Until this issue is resolved (by, eg, open source projects bringing on dedicated designers) the symptoms are unlikely to go away.
This is a pretty important point that gets overlooked. I think designers can help make something more intuitive and generally more readible but if we're talking about a cohesive person, it usually has to come from one person with a vision for the project.
Designers work in different environments: personal discussions, meetings, illustrator, photoshop, other web communities (like dribble and obscure sections at flickr).
If you ask a designer to add stuff to your repository, you're asking him to adapt to your way. Most designers aren't going to learn git.
To embrace designers means that you include them in your processes and tools. And let them in on strategic discussions - that's where good design is most often lacking in OSS.
If you continue with a Codeocracy where only check-ins are valued and the guy with 100k lines of written code is king, you're not going to convince many designers to help you with their free time.
It's easy to say that designers are needed, but anyone who has spent time in a design community of any kind would know that there are loads of designers out there that would love to get their stuff out there. I'd love to do design work for a decent open-source project while I get used to the code base to help with the development; I'm willing to bet that many others are in the same boat.
As a developer, you can contribute small patches, bits here and there or step in deeper and create new features or improvements within the current feature set.
As a designer, the bits and pieces option really is no option. Design can't be applied like that. It needs to be applied to the entire project in a consistent manner. Both visuals and user experience thinking. This makes it a far bigger commitment, something I imagine not everybody is willing to do.
Developers have rules. Code has syntax. Everyone follows the same rules and code comes out the same. One developer can pick up where another left off. It's very clean cut.
Designers are different. There are "rules" of design, but each designer is different and have their own styles. That's not a bad thing, but when you get multiple (hundreds, even) of different developers with styles and no "strict" rules of design, it can make for a very hodge-podge project that...well...looks like 100 different people designed it
[Not a designer or developer but I work with both and serve as a "translator" between the two]
I think the appeal of working on an OSS is that a developer gets to hone their skills and work collaboratively. It's a way to contribute (give back), to gain experience and to gain kudos.
I don't think the same collaborative aspect works as easily for design - because design problems are perhaps less easily worked on iteratively as a group.
UX, as a discipline, involves problems which can be solved collaboratively - and lends itself to team work. Design that's born from UX research tends to solve problems which have been more clearly defined from the outset.
Designers are simply unable to work in committee as stated by others here...
If an OS project assigned a Creative Director, that may help lead the way for other designer to join a project.
Also, Source Forge and GutHub and the like aren't going to cut the mustard for Designers. There needs to be somewhere like them, but tailored for design.
I often use icons with GNU or CC licenses, for example. If only I could find a site with website designs like I can for icons (iconfinder.com, findicons.com) that would be great! I'd get a professional designer to use the open source design as a base and just tweak it.
But as far as I know, they don't do so. So we have a contradiction.
Without these guidelines, it will be as tough to tell the designer what to do as it would explaining an obscure C++ error without any reference to C++.
I agree with what you are saying, I don't think it contradicts what I intended to articulate. I was trying to get across that dropping a modular piece of code such as say a Database system(Like MySQL) into a project gives you a huge chunk of functionality which you can then build on top of. I can't think of the equivalent for Art, except for widget sets or something along those lines. Or a grid/layout template that doesn't require you to then go and have to update any existing art to mesh well with the new art.
Now to be fair: you can come up with the equivalent of the MySQL situation where say you start the project with say a widget set and just match it's style moving forward.
I could probably match all my concrete coding examples with a modular art project but I think there are two issues that in general going to come up:
1) A lot Graphic Designers are not to strong at building modular art as it requires a more rigid process. There are exceptions of course, but we are talking about in general why there aren't as many Graphic Designers contributing to Open Source projects. (Wordpress though is a good example of where there are tonnes of Themes provided by Designers).
2) Reusing a popular Design can make your project look more derivate than unique. Where as with code this is less the case. Though with popular Widget sets such as the design by Sofa for Cappuccino (http://ajaxian.com/archives/cappuccino-07-aristo-ui-theme-en...) is a good example of Great design that maybe benefits from this familiarity as it's easier to grasp what widgets do when you've used other Apps using them.