Open source needs designers

June 27, 2011 | 20 comments

Design is Not My Job 1It’s been a slow progression. First, I moved from Eclipse, for years my Integrated Development Environment of choice, to NetBeans, which I’ve been using for the last year or so. It’s faster, leaner, and less prone to bringing down my computer for no readily apparent reason. But now, slowly, I’m making my way to Coda. And it’s like a breath of fresh air. It just works.

It surely helps that Coda is a native code web development IDE, while the other two are optimized for (and built on) Java. For large applications, Java is a dog. But there’s something more to it: while NetBeans and Eclipse feel engineered, Coda feels designed. As well as checking that everything works, someone went through the trouble of checking how it feels to use. The emotional experience was an important part of the design.

Beyond programming languages and development methodologies, the most important skill a developer can have is empathy. To be useful, software needs to be built with a deep understanding of my needs as a user, which may be different to another user’s needs. I write both software and short stories, and I use the same approach for both: I’m writing for an audience. Open source often feels like it’s scratching an itch; rather than users, the software is often written for the developer. We know that over 80% of Linux kernel contributions are made by corporations, so it’s reasonable to infer that most open source software is built to feel an internal corporate need.

Consequently, interaction design is underrepresented in open source. Versions 0.1 through 0.9 of Elgg featured interfaces built by Dave Tosh and myself, reacting to reports of what users found difficult or confusing. They were usable, but although I’m proud of them, they were undeniably clunky. From version 1.0, we had Pete Harris on board, an actual UX designer, who made a world of difference to the project. I don’t think Elgg would be as popular as it is without him. (Now that he’s moved on – alongside the rest of the 1.0 core team – I’m interested to see how the interface develops.)

Open source is an important, valid methodology with many applications. I still completely stand behind it, but I’m not willing to use inferior software for ideology’s sake. So how can we improve the design ethic in open source?

Part of the problem is market. To be blunt, commercial software needs to sell, and usable interfaces are an integral part of that; open source projects don’t, and often sell support as a funding strategy. Making the software easier isn’t, therefore, always part of the dynamic. (You’ll notice that the best-designed open source projects - WordPress, StatusNet et al – all have a commercial version.) It’s also not necessarily part of the engineer’s agenda: I’ve too often heard software developers discuss design as a kind of fluffy afterthought that they don’t view as being as important. I try not to hire developers with this mindset; anyone who thinks they’re more important than anyone else in the development process is destructive.

Another problem, though, is designer attitude. Who wants to give away their hard work for free, after all? Designers already complain about their work being undervalued on marketplaces like 99designs. (Oddly, very few developers complain about their profession being undervalued on sites like oDesk, although I think it is.) While developers see having a Github repository as a kind of portfolio, and participation in an open source project as career-building, designers don’t have the same incentives. Although there are individual examples – Chris Messina’s involvement in Firefox undoubtedly boosted his career, for example – a designer’s participation in an open source community is not generally seen as being awesome. Yet.

Open source companies have an incentive here, and a responsibility to the community to promote this ethos. They should understand the importance of hiring designers, and they should give preference to designers who have contributed to open source projects. Most importantly, developers should understand that designers are engineers too: they just work with a different set of tools.

Illustration: Design Is Not My Job 1, by Andy Mangold, released under a Creative Commons license.

Related entries

20 Comments

  1. i agree, I’m a designer and have been offering to fork open source projects here and there for a bit, but i think its a thing that the community has to adopt. its getting there though. developers also need to come to terms with then fact that just as it needs great coding (by a dev) many projects need great design (by a designer)

    Christopher June 27, 2011 (3:21 pm)
  2. Interesting post in general; but to comment on Eclipse vs NetBeans vs Coda, I understand where you are coming from, but then between those 3 it looks like a case of you get what you pay for.

    But you are spot on, designers hate giving their stuff away for free, the main reason I have found is they don’t come from the same background as developers. As developers we have a massive open source community and we feel a desire to contribute so we can give back, enhance our skill and our CV ;) But graphic designers are a different breed.

    Roridge June 27, 2011 (3:45 pm)
  3. Developer: Hi Designer! We’re really glad you decided to join our project. We could really use a kick ass UI because we all suck hippo ass at design.

    Designer: Thanks! I’m looking forward to helping out. I have some really great ideas for the project.

    Developer: Thats awesome Designer. I’ve got you an svn account setup. fred/23rSD@#$SDRsdfEasd5323. Go ahead and check out the source.

    Designer: Where do I check out the source?

    Developer: svn://open-source-project-x.com/svn/trunk/

    Designer: Cool, thanks!

    [10 minutes later…]

    Designer: Uhh…I don’t see anything at that url.

    Developer: ???

    Designer: When I go to that url, I don’t see anything. Safari just gives me a message saying it can’t open that url or something.

    Developer: Haha! Your not supposed to ‘check out’ the source as in ‘view’, your supposed to run that command from the command line. svn co svn://open-source-project-x.com/svn/trunk

    Designer: Oh! Sorry, never done this before. So just type that in…Terminal I suppose?

    Developer: yeah.

    [10 minutes later]

    Designer: Man, I’m just having bad luck or something. When I type that command in I get the message: -bash: svn: command not found.

    Developer: You’ve got to have svn installed. Have you installed it yet?

    Designer: No, where do I get it?

    Developer: Just run sudo port install svn

    Designer: sudo port install WTF?

    Developer: Do you have Darwin ports installed?

    Designer: I don’t think so? What’s that?

    Developer: Grab it from here (insert url here).

    [Two hours later]

    Designer: Ok, I’ve managed to get Darwin ports installed and I’ve checked out the source. Finally!

    Developer: Awesome! You should be able to rock and roll now.

    Designer: Great, going to check it out now (as in view).

    [30 minutes later]

    Designer: Developer, you know I think we should really change the way feature-x is implemented. It’s just not that intuitive. From a users perspective, we should probably implement it like …[insert well founded design decision]…

    Developer: Hmm… I don’t know. I think it’s fine the way it is. Besides, it would take forever to implement it the way you think it should be. We’d have to change to much stuff.

    Designer: Hmm…….OK.

    Developer: So, think you can make this look like a really awesome app?

    THE END

    cancel bubble June 27, 2011 (3:49 pm)
  4. But seriously, one of the biggest problems I see with designers and participating in open source is design is usually an afterthought. Designers are rarely involved in the early stages of the product where they can, um, design and have an impact. Design in open source is more about decorating after-the-fact.

    Also, there is very little incentive for a designer unless the project is something they use on a regular basis, which is probably very, very rare.

    Just my 2 cents.

    cancel bubble June 27, 2011 (3:56 pm)
  5. I’m afraid all the designers are busy getting laid and smoking weed in the park. Sorry.

    Daniel June 27, 2011 (4:57 pm)
  6. I think this situation is going to take care of itself in due course. There will be a convergence of interests and a convergence of abilities (read: more tech-savvy designers). The convergence of interests will help take care of the incentive issue. At heart, though the act of writing software and the act of creating decent UX are very different in themselves, the two activities key together well. Evolving compatible working methods (reviewing and incorporating submitted changes to existing UX especially) is likely to be more of a challenge though. Surely practices like MVC http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller can help here.

    Ben Weiner June 27, 2011 (5:38 pm)
  7. Nope. The best designed open source software is beneath your radar.

    See for example http://suckless.org

    ab June 27, 2011 (8:53 pm)
  8. Agreed.
    I’m engineer but I love marketing for this reason. You always have to think on the people, and people in general(computer programmers in particular) do not do that. You need to care for people.

    I started using Apple products (having used Windows and Linux in my computers) and I found it has brilliant design, in every single part of the OS. E.g compare the sound design in macOSX with both the linux or Microsoft thing and you will find that the later are almost hacks parched until it works.

    Some pieces of OSS are very good, but as you said, they are mainly from people that “gets how people work” mainly because they have or had a commercial version, like Stellarium, MySql, QT…

    You have software that is technically brilliant but horrible to use and ugly, like fontforge:
    http://fontforge.sourceforge.net/editexample.html

    Look at that thing!!,the software author reinvented the wheel, the UI, in such an ugly way. He does not care at all.

    Cinelerra:
    http://heroinewarrior.com/cinelerra_shots.php

    Jose June 27, 2011 (9:08 pm)
  9. I tried helping the WordPress comunity with this Google Summer of code entry: http://tomaskafka.wordpress.com/2011/04/08/wordpress-for-android-concept-for-gsoc-2011/

    The mentors chose this joke of a buzzwords and a brainless copy of Facebook instead: https://anirudhspider.wordpress.com/2011/04/01/version-2-wordpress-android-app-ui/

    I tried – never will again.

    Tomáš Kafka June 27, 2011 (11:51 pm)
  10. I think “cancel bubble” has the general gist of the problem. For one, dev. environments tend to be unfriendly (and if you’re actually working on a dev. branch, unstable), so it takes very technical designers to be able to navigate them without developer help.

    The bigger problem, though, is that in order for UI and eng. to work together, there’s a lot of face-to-face interactions and back-and-forth negotiations for product/UI features, and that isn’t really the open source culture. Even at companies, paying salaries, which focus on design + aesthetics + usability, there’s always a tension between the design team and the eng. team for this very reason and resolution requires a lot of effort, usually from someone higher up.

    Finally, I’ll note that designers don’t really need to get involved in open source projects to show their stuff off “for free”; it’s simple enough to redesign a site or an app via mocks, where they are free to design awesome – but completely unrealistic – features. That’s how many starting designers build their portfolio.

    Allen June 28, 2011 (1:15 am)
  11. (You’ll notice that the best-designed open source projects – WordPress, StatusNet et al – all have a commercial version.)

    Just like to leave a mention here that WordPress doesn’t have a commercial offering, well, not as such. WordPress.com while it’s backed by Automattic who pay the salary of many core developers of WordPress.org, isn’t exactly a commercial version of WordPress.org, they could easily head in completely different directions (although that’d never be the case.. I hope).

    WordPress.org gets it’s Designer input from people who are passionate about WordPress, some of those are Automatticians, others are not, I strongly believe that the WordPress UI would have designer input even if WordPress.com didn’t exist.

    Now, that being said, Great article, Many developers do not realise how much designers are needed by open source applications, and at the same time, many designers don’t realise just how valuable they are to open source applications.. If every designer out there was to pick a open source application and help out with the visual appearance the Open Source world would look very different IMO.

    But it doesnt just stop with Designers, WordPress has gained a huge benefit from “User Experience” design work, Not only does it need to look pretty (Which is what many Designers do) it needs to be functional, which is something entirely different from Designing and Developing.. Knowing how users interact with an application can increase the users happiness with the “flow” of the application and how easy it is for them to do it. A simple word change can often make a users experience of the application much easier, take “Submit Post” compared to “Publish Post” both may mean the same to the Developer (You’re submitting data to the website!) to the user publish post mean’s something, whereas Submit could do anything..

    Dion Hulse June 28, 2011 (5:02 am)
  12. It really comes down to target audience. Much of the software we develop is targeted at other developers. They don’t need or want an elegant design. Consumers are a completely different audience. They want elegance. They need ease of use. They hate complexity. If we could make open-source desktop applications more user friendly and elegant, we could attract a much larger audience. Mozilla has figured that out. Now we need more designers to get involved.

    Vin D'Amico June 28, 2011 (1:50 pm)
  13. I’ve been involved in a couple opensource and freemium type apps and I must say that the issue is how nebulous design seems to many, and in turn they don’t know how to ask for one, or what to do once they have a designer. I think one of the first things we need to do is establish a sort of Designer/Developer protocol so that both can speak each other’s language in case neither part has years experience doing so.

    The deal where designers don’t like giving their work away for free is true, but not applicable to opensource projects. (If the designer is intelligent anyway)

    Dylan June 28, 2011 (11:00 pm)
  14. designer here , always been interested in helping out with open source projects. major fail in all open source projects is 99% of the time the interface, it turns a designers like myself off the application straight away.

    Luke Alford July 5, 2011 (11:25 am)
  15. Another designer here :) I have to disagree that designer do not want to give away their work for free. We do have a culture of Pro Bono work, but it is mainly oriented toward social causes. There are even a few Website to facilitate the connection between social causes and designers. Open source is rather new in the non-developer world, I think it might be just a question of time before it gets associated with good pro bono work.

    We do complain a lot, but I think we have a legit fight. Graphic design appears to be very much accessible to everyone. Afterall, anyone can have a software on their computer, choose a color and a font style. Therefore a lot of people tend not to see the value in our work and do not want to pay for it. So designers end up being very cautious not being taken advantage of. But development, in the eyes of most people just seem like chinese to them, so they will agree to its value much more easily.

    I definitely agree that open-source software needs more designer. I already do some pro bono work and I am a designer that is interested in conributing and giving back to the community. What gets me working for free? A project I care for either by knowing the people personnaly or by being interested in the project’s goals. So my question would be, how do you reach out to designers?

    Another thing that is very important to me is being involved / part of the team. I do not want to be called at the end of the project to be asked “So, do you think it should be blue or green?” Cancel Bubble’s scenario for me is just a perfect example of how it can be frustrating for a designer. Like a few mentionned before, I think design should be part of the project early in the process, even in the planning stages. So my second quetion is, how do you work with designers?

    Finally, I disagree with Vin D’Amico who says that software developer do not need or want elegant design. Sure, they have the capacity of living with bad design and find their way throught it. But, from being surrounded with developers, I know that they benefit from a well design software and will choose that software over another.

    Isabelle Carrier July 5, 2011 (3:11 pm)
  16. Luckily MS is taking great strides towards improving this situation with the creation of Expression Blend and use of the MVVM pattern. This is a good first step towards marrying the two development types.

    Brandon July 6, 2011 (6:20 pm)
  17. Brandon: +1, MVVM in C# and WPF (too bad Microsoft is killing it now) has been a most designer-friendly developing environment I ever encoutered.

    I developed UI for our TaskConnect Outlook add-in, and MVVM enabled me to rapidly iterate the view while the rest of the team was busy implementing the business logic – the worst that could happen would be that UI binding would have nothing to bind on. At some points, we even had two different versions of UI running side-by-side on top of same model (and viewmodel) just to compare them against each other!
    Also, ability to retemplate any control without touching its interaction model was a huge plus (and something which HTML5 does not even come near).

    Tomáš Kafka July 6, 2011 (6:45 pm)
  18. Rock on Ben.
    Another problem is the designers need to understand the technical underpinnings of the software they’re designing… or else its a moot exercise.

    To follow your call to action, here’s a designer’s take on the same subject…
    The 1 page cheat sheet:
    http://dl.dropbox.com/u/40223/flirt_date_commit.pdf
    and the half-baked presentation:
    http://dl.dropbox.com/u/40223/flirt_date_commit_presentation.pdf

    Juhan Sonin July 6, 2011 (6:54 pm)
  19. Coda is pretty. For frontend? Great. For backend? Without basic code inteligence, who do you want to trick? :) Netbeans has great PHP support btw.

    Tamas Kalman November 14, 2012 (11:10 pm)
  20. NetBeans does have great PHP support. I mostly still use it, because of that better intelligence. What really made the difference for me is adjusting the font and color defaults to something that was more Coda-like – having the comments stand out, rather than displayed as subservient to the code, was really helpful, for example. They hadn’t put enough thought into how people will read the source itself, although it’s a very fully-featured application.

    Ben Werdmuller November 15, 2012 (12:10 pm)

Leave a comment