A question that has bugged me for some time, is “how we can bring our creations into the hands of more users?”, and how we can show the world that a truely open and community developed system can bring great value to more people. How can we overcome the technical barriers that hold back so many people from benefitting from our hard work, all the genius, love and creativity we put into software. Since my first contact with Free software, Linux openSUSE and KDE, we have done some very solid work. We have technically caught up with Microsoft, and are delivering a product that is up to par in many aspects, and better in many more ways. While we have booked immense successes, we have not reached the goal of making the Linux desktop ubiquitous in the desktop market. In a world of iPhones and Android, we even see closed development models based on similar technology as ours being a big success, market-wise, but failing to deliver the full Freedom of a community-driven development model to end users.
Stormy weather on a calm sea
The past years’ development has completely changed how users interact with their digital environment. Where we used one desktop computer for all of our digital needs only a few years ago, there is a wide range of devices for specific use-cases now. This (I think very positive) development has widened the spectrum of devices our software can be used on. It has also effectively broken Microsoft’s monopoly in the market, which is now much more open: concurrent products such as Windows, iOs and Android. Looking at both options, many users experience a gap, however. With the market especially for tablet computers being brand-new, there is very little choice for users. If you want to have a tablet computer today, you can get an iPad in return for your soul or get a blown-up phone built to add your most personal data to The Big Index. If you’re of a more patient nature, you can cross fingers while waiting for an evidently upcoming surge of new tablet devices. If you’re interested in both, control over your data and control over what you run on your machine, bad luck.
While moving away some of their Internet use to other devices with more a more clearly defined purpose, and starting to use the Internet in completely new ways, many users have also found out that computers != Windows ™. New methods of input, and graphical effects allow for a more ergonomic use of all that’s out there. Dramatically increased user expectations demand more intuitive, beautiful and elegant user interfaces and ways for interacting with contacts, content and the web. This demand is I think very positive, for two reasons: users are much more willing to try new UI concepts, which leaves more room for innovation to creative people who really want to do something better. One positive aspect is that the demand for an awesome user experience makes the software running on the device, and the services it is offering more critical the desirability than the hardware, comparatively. Interpreting this as “the power to shape the product is now in the hands of the software developers” is unfortunately (I am a hacker) also very wrong. Let’s get back to that later.
Back to our question (remember, that was: “how can we bring our creations into the hands of more users?”), this leads me to believe that a locked-down market for end-user software is a thing of the past. To no surprise, increased competition comes with more pressure to deliver something really great.
Having studied, participated and helped shape Open Source development processes for a few years now, I’ve come to conclusion that the Free software community has three strengths that are critical to its success:
- Economic force: We share resources. While we spent much of the past ten years to catch up with Microsoft on the technical side, the Free software development and licensing model simply obsoletes many closed source options. This basically means that you need a really large internal workforce and a lot of appeal to make your product competitive, or that you have to plug into the resources of the Free Software community.
- A different agenda,: we are not primarily driven by monetary aspects, unlike our competitors, so we can for example license our software in a way that might not be economically effective at first, but provides much more long-term value. Not being limited by return of investment type obligations, our different agenda often shows that we can address a class of problems where “what is good for the user?” differs from “how do we make money out of that?” completely much better than our competition.
- The Magic Spark: Open communities are much more receptive to healthy diversity. We’re many, and we all bring different things to the table. The chances of something genius happening are simply much better in an open and friendly environment, than behind closed doors.
Our chronic fragmentation issue
One of the really hard problems we have to solve though, is the fragmentation. Due to the diversity, we don’t work enough as a team, and while often share the same values, our vision of how our creations end up in the hands of end-users differ wildly. To solve the fragmentation, we have to have not only shared values, but also a development process supporting our vision, and we have to have a shared product vision. Yes, product vision. As bullshit-bingoesque as that sounds, the simple truth is that we have to use our strenghts to create something desirable, we probably won’t enlighten many people with the great value Free software can bring to the table with religion. On the positive side, desirability works very well for me personally. Much of what I do is driven by a sense of creation, and if the output is something that others want, it gives me the accomplishment of having created something of value. Desirability is the primary driver for this, it’s both an excellent product vision, and a fine goal to strive for personally.
There is one conceptual mistake about the fragmentation issue. The problem is not that the Linux community as a whole doesn’t work together, the problem is much more that not the right people are working closely together. The real problem isn’t fragmentation, it is the lack of full-product-thinking.
There is much more to the fragmentation issue, though. We’re trying to analyze this problem not from our own view, but from what is necessary to achieve our goal. While we have had limited success to attract UI and interaction designers, that excel as much as many of us do in our own fields, we have yet to shape the process in a way that is both attractive to people who can contribute design expertise, and helps them put their energy to good use. If you have ever seen a graphical artist cringe, when you showed him your finished application and asked him to now make it beautiful, that was a symptom for this brokenness in the process. So in those fields where you’re honestly lacking manpower, you need to work twice as hard to attract new blood. You need to cover the whole process, so this is one of the problems that need solving. Recognising that you lack this expertise (by asking yourself all those hard questions) is the first step. Communicating that you are open to such participation is an obvious second one. Proving that you actually are, and making that visible helps you get further. Defining yourself in terms of a common denominator helps. If you want to reach non-developing contributors, you might want to stress the free culture aspects of your project, if you want to attract designers, make sure people see that design plays an important role in your project. Offer and prepare the tools designers need to do their work well. Paraphrasing, if you ever had to ask a graphical designer to use a compiler, you’re doing it wrong, and you need to fix that.
Once all of the above is realised, the really hard part is of course to find this shared vision of something desirable. There are a couple of interesting aspects around this, many of them have to do with creative and outside of the box thinking, and about creating an environment that supports the growth of these ideas.
Let’s look at the process-side of things, however. Statistics tell us that it’s much simpler to find a shared vision among a bigger group of self-selecting individuals than among a smaller one. This means that we have to look across project borders, across comfort zones that have come natural to us — from both sides.
From another point of view, to create something desirable, we have to apply the same vision across all aspects of the software stack. This means we have to work from top to bottom. We need to build applications that users want, user interfaces that are beautiful, modern and adaptive, we need to get the technology underneath right, and we need to find suitable (by many measures) devices to run our software on, and it it also encompasses thinking about our collaboration models, taking the good parts and combining them with new insights, tools and processes. It means we need to think in creating a complete process that covers all these aspects from creation into the hands of more people.
A self-selecting group has one nasty, but natural attribute: it also means that some people do not take part. This is of course fine, if something is not your cup of tea, that doesn’t have to keep others from drinking it with great pleasure. Support can in some cases be as easy as letting go, and at least not providing pushback to something that might — or might not, this is not a no-risk game — create something truly great in the end, at least for some. Different priorities, agendas or simply envy can cause unproductive friction.
On the more cheerful side, such a group is absolutely killer to work in, being able to work towards your goal among a group that is heterogenous in skill and origin, but homogenous in the direction to take, you can pull amazing amounts of weight. This makes it (relatively) easier to make a difference, and your work is more likely to produce something that makes you happy. A friendly environment and good communication that costs little but gives back much energy is critical factor to create a positive feedback loop, a critical mass to get off the ground, momentum to move and keep moving your dream to completion. While participating early requires recognizing such a vision, and probably a certain willingness to take a risk, to endure uncomfiness in the beginning, it allows you to shape important aspects of that vision. A vision only goes so deep, making it come to life reveals all its facets, to you, but much more to those that hold your creation in their hands and recognise its value.
Unicorn or horse?
It is a common myth that great ideas just spring into existance. While there surely needs to be a spark, turning great ideas into a success is also very much hard work. Without checking my facts, I’d say it’s a reasonable assumption that all the years of hard studies, and understanding many things new and old, crediting the apple for hitting Isaac Newton is probably wildly irrational. Conversely, you might study all your life, and never get hit by the proverbial apple.
There is a way to make this apple more likely to hit you, however. Obviously, being well prepared, with all the tools and knowledge needed is a first. But you also need to answer all the hard questions. You need to look at the complete spectrum of aspects of your potentially genius idea. It means leaving your comfort zones, talking with others, being receptive to their ideas and incorporating them into your vision. That sometimes means that you have to take a step back from that concrete picture in your mind, and rethink what you are really looking for. This can be very hard, but doing this in a team of people with different background can help a lot (note that not everybody in this team of domain experts needs to take part of your group, you’re after the input they provide. You don’t have to convince them, you have to find the right answers to the questions they pose. Spotting a unicorn among a large herd of horses is much more a self-reflection game than a convince-and-defend battle.
At the same time, you have to recognize when people give you input without actually wanting to help you understand all the details, sometimes you get advice, even pushback because someone does not think it is good to drive attention away from something that is more important to them. The truth lies in the middle, of course. While you have the right to enthuse people about your ideas, you also have to play nicely. Notwithstanding altruism and the general rule of “don’t be an asshole”, being too aggressive about your own project will drive others nuts. The more success you have, this worsens. Higher trees catch more wind. In a way the amount of shit you see flying in your direction can be seen as a matter of success. It’s generally not productive for your own goals though to actually engage in this way, unless absolutely necessary. Check twice to be sure. Negative energy can have a desastrous effect on your productivity and on the joy and direct motivation you get out of your work, and that is in fact true for everybody directly involved. Ignoring the naysayers for naysaying is often a much better way to keep sane, than constantly paying close attention to it, trying to find the one good point they might have out of a stream of dung coming your way. It helps a lot when you recognize these patterns, learn how to mitigate communication going awry, and deal calmly and cool with potential real issues at hand. Do not forget to put mechanisms to shield yourself in place, in case it runs out of control. Do not underestimate that creating and maintaining a playing field that is fun for all to use is critical. Try to not make the neighbours angry, either.
Communication and scalability
Now let’s imagine you have this great idea. You know that you’ve something big in your hands, and for the sake of simplicity, it’s a truely genius idea by all reasonable and objective measures. In other words it truely kicks ass. Moreover, you have figured out most of the technicalities, so we even can be sure it’ll actually work. This just has to become a success. But how?
I’ve seen some really great ideas not coming to fruition because a key person ran out of breath. Imagine being a 17 year old kid, becoming a rock star overnight. Suddenly, playing the guitar exceptionally well is not enough anymore. You have to make sure that all the interest doesn’t fire back on your ability to ‘to your thing’, you need to think about how to deal with all the sudden interest. It’s a good idea to prepare that early on, so that you don’t have to explain everything to everybody in great detail. Writing down all the answers to the little questions you answered is a very much needed thing. If you want to convince people of a great idea, you have to give them the chance to understand these answers. If you can’t keep up with answering people’s questions, and you answer the same question in great detail over and over, that might be a sign that you should have put together an FAQ, or something that presents your idea in a more comprehensive way, and in a way that is easy to understand from the point of view of someone who might only spend a short amount of time seeing your idea. Clear, targeted documentation helps to mitigate the ‘running out of breath’-problem.
Now you expect a real conclusion? I certainly have something on my mind already. (What would your own little private view of the world be without the Answer to the Ultimate Question of Life, the Universe, and Everything, after all?) But let’s leave that for another day, maybe a Thursday.