Tent

August 22, 2012 | 6 comments

Tent appeared out of the blue today: a protocol and reference server implementation for individual-to-individual distributed social networking. Or to put it another way, Tent is a way to host your own social data – posting and reading from as many apps as you want. Here’s their announcement, and here’s the GitHub repository.

The Tent manifesto is right-on:

Every user has the right to freedom of expression.
Free speech is a necessary feature of all open societies. Speech can not be free if communication is centralized or intermediated. Users must be able to say anything to anyone they want on their own terms.

Every user has the right to control their own data.
This includes who can access the data they create and how that data is later used.

Every user has the right to choose and change their social services providers.
This includes the right to negotiate reasonable terms of service collectively or individually.

Of course, this is hardly the first open source social networking product – and many people are already asking why Tent doesn’t use the OStatus protocol. (StatusNet also includes an individual installation mode.) These are valid questions, but while there’s a slight air of Not Invented Here Syndrome, it’s an elegant idea and the API is very clean and simple, which means there’s every chance an app ecosystem will emerge. If any one of those apps is simple and elegant, we may see a very different kind of social networking community begin to develop.

Even more interestingly, I also think there are real commercial implications for this protocol. More on those in another post. For now, my takeaway is: Tent has the potential to disrupt the entire social web.

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.