Software Freedom Society

I’ve been mulling over a new idea and I’ve come to my blog to draft my thoughts on it. I’m probably wrong, but I really want you to comment your thoughts below.

We have a Free Software world which is dominated by schools of thought, each focusing on a particular piece of the Free Software problem. Some of them know that they have a limited scope such as the Freedom Software Law Center and Software Freedom Conservancy (legal and sub-incorporation respectively) and then there are groups which try to be all things to all people like the grand daddy of them all, the Free Software Foundation.

I think the FSF itself wants to have a very limited scope, but it just can’t shake the fact that it’s political protests have implications outside of what it wants to do. Things like economics, interpersonal relationships, community culture and creative rights and remuneration to name a short few examples. I think perhaps that people who believe in the FSF’s political campaign, want it to be more. I know I’m frustrated with it’s lack of “do anything productive at all”, that seems to defined the last nine years. Many people who I know here in Boston voice similar low level grumblings think it’s lost focus a great deal because of what users want it to be.

Then there’s another organisation, the Canonical Ltd hype machine that is the Ubuntu community. It’s a pretty good force in the Free Software world (some people will disagree) but again, it’s members want it to be more than a corporate cheer-leading squad. They desire an authority that can standardise, set example, lead. But let’s be honest, Canonical can’t possibly do anything right in a lot of eyes outside of the Ubuntu community itself (even if it empirically did so). So the route to using the boundless capacity of enthusiasm and good ideas about community management and treating non-coders with respect has been watered down or rejected, ever tied to a company that is desperate to make money and over eager for your attention about it’s latest announcement that it drowns it’s own community out.

Now imagine a community that’s dedicated to Software Freedom like the FSF, as respectful and energetic as the Ubuntu Community, as transparent as Debian and as well defined as the Law Center. It’s goals would be to host an open membership, be an arena for debate about community structure, a place to document and explore social standards in both projects and the user communities surrounding them and to invite all to participate in projects as non-coding members.

We could take charge of the areas that the FSF struggles to host, help generalise existing community wisdom that might be tainted by the Canonical brand and provide valuable guides and education on the best ways to run projects and all the pieces needed to make them work.

We could do this by beating a drum and collecting together everyone until we get a critical mass that the social project works. But there is another more useful way too. Many coding projects suffer from a lack of infrastructure for their community operations, not just a lack of know-how. So we’d also start providing the-best-we-know-how pieces of community infrastructure such as mailing lists, forums, chat servers and social media mechanisms. The idea would be to share a lot of the technical burdens and let smaller projects have all the things they need to run a fun, inclusive and accessible community.

This project would of course ask other organisations to dismantle some of their existing structure. We’d have to gain trust and try and close down duplication as much as creating new spaces. This is after all about standardisation of social and community tools and practices and like the xkcd comic states, making new generic standards often leads to more standards. So making our infrastructure fast, pretty and reliable would also be important goals.

So, given that I’ve just rambled on about a passionate but off the top of my head idea (thanks for reading it!), what do you think? Please do comment below, comment in the social media link you might have used or you can email me at doctormo áŧ gmail.com with your thoughts. I really do want to hear from people as this idea could be important to the whole Free and Open Source Software universe.

Platform Money is Key to Free Software Success

Post was drafted Feb 2nd, delayed for review but is published now without finale edits.

Platforms are everything these days. They drive users in specific, and well structures ways and can make or break different ways of production. Take for instance the World Wide Web, it’s a platform that allows anarchy and it fundamentally breaks the traditional media’s economic model of charging for content per user. The World Wide Web does this by delivering content not just more cheaply, but more quickly and more succinctly than ever before.

By comparison consider iTunes which came well after. A platform which like the World Wide Web is built upon the internet with similar technology. This platform provided a more cohesive and contained experience for getting access to content that users could have gotten through the World Wide Web. Even though it was more expensive to do so, users have bought music and other media through the iTunes platform because the platform is more effective at delivering content to users than the World Wide Web’s anarchy.

The iTunes platform could be credited with helping solve a key economic problem that was befalling the music industry. How to get users to pay for music and thus make music creation worth being in involved in.

We Have Failed Here

Knowing this about iTunes, I’m jealous. That platform has achieved something which we in the Free Software industry have failed to do. That is; meaningfully provide the platform necessary to get users engaged in software production. Economically speaking, we need users who do not make code, but who want to use our software. Socially speaking, if we wish to Free users, we must serve their needs and therefore be willing to be told what they need and deliver on their expectant demand.

This isn’t just about making money for developers so they can quit their proprietary jobs and sustain their lives on making Free Software. This is also about the incredible disservice we give to users. Our ignored users. Those people who we SHOULD be serving with every key press but who we don’t pay attention to unless they morph into helpful bug reporters or fellow programmers. Which plenty do, just so they can be a part of the process.

This is a problem that not only hurts people’s perceptions of Free Software projects, but it also makes our industry weaker than it needs to be. Projects exhibit fragility and an inability to grow. Users pick software on existing features and compatibility and not on future prospects. User involvement is suppressed.

Just Saying No

There are many programmers, project leaders, Free Software members, who ask that money never be involved in Free Software production. These people do not know what damage they are doing to their projects. Not knowing how to get user money into a project is a typical problem, but there is a mindset from the leadership in some projects that having users pay developers should not be allowed. I _do_ understand why money is stigmatised, but this is a symptom of a project’s lack of codified user focus which would provide strong definitions of self-serving, charitable and user bought developer attention. No programmer serving his own needs should be jealous of another getting paid by serving user’s needs. We all need to grow up a little here.

What we need in committed Free Software projects is a meaningful service ethos that makes the users of software the firm target of the project. It would supply direction and impetus to many projects that can’t understand why users don’t like their code and provide economic input to drive projects faster towards those user centric goals.

User Focused not Business Focused

“But Open Source is very economically successful” I hear you say. Well, yes, if your a business it’s been great. The bigger your business, the more meaningful relationship you can have with projects by hiring developers. Having developers (or being a developer) is a sure way to have input. Open Source and the OSI have focused hard on making sure the business to business open source industry works.

I always wondered why Open Source was doing so well and yet doing so badly and it’s this: Big business needs are being met, small business and user needs are not. This isn’t good enough. As a developer if you’re not taking money from users then you aren’t serving user’s needs. Follow the money, follow the demand.

Social Justice

And if your thinking that this economic problem isn’t important for Free Software, think instead of all the users who are disempowered. This is what Free Software social justice is all about. A user is a super important component to development and with continuous development strategies and increasing segregation between developers and non-developers; we need to have thought about getting all users in a position where they can truly be a part of our development practices. They’re the core and source, not the periphery to be ignored.

Demand Change

I’ve been involved with two projects where I see a problem. The first is Inkscape, a project with no economic steam and plenty of users who have no idea how the inkscape sausage is made. It has direction, but no growth. Programmers, but no self-serving power left. Users with needs, but no way to meet them.

The second is XBMC plugins. Here there are thousands of tiny self contained projects and they’re all organised into a forum. Go onto any plugin forum thread and the pattern will be the same: “The plugin stopped working”, “It doesn’t work here either, where’s the developer?”, “I hope the developer comes back to fix it”, “I hope someone else comes in to fix it”, “Has anyone got it working yet”. Again and again, users who are putting their time into begging developers for attention. It’s a depressing situation that must put users off and certainly doesn’t speak well of the stability of XBMC when it’s most useful features are plugins which fail all the time from patchy maintenance.

Demand is important and getting user demand focused in a meaningful way has been our failure. Focusing on support models and business to business open source processes has been our distraction. Harnessing the paradime shifting nature of the platform should be out solution!

A Platform Example

The Ubuntu Software Center is a platform. The way it’s been set up is as a clone of Apple’s iOS store and it’s incompatible with the Free Software industrial process. Instead of helping Free Software it’s driving economic sustainability to proprietary software development and away from Free Software. It’s got unintentional institutional bias which is rooted in the ideas of the developers and managers at Canonical. The suggestion that donations are somehow a meaningful way to drive money to Free Software projects is a sure sign that a person doesn’t ‘get it’, Free Software isn’t a charity case in need of a one off anonymous tip. It’s an industry and with a unique production process that requires careful cultivation and sustainable connections that focus latent user demands to developers and potential developers attention. The USC and it’s makers fail to see that.

Use the User Force

A platform like the Ubuntu Software Center should be made though. But made to specification for the Free Software industry instead of the Proprietary one.

Imagine it embed directly into every Free Software desktop and mobile distribution. The same user focused invitation to join a Free Software project, involving money and time without stigma. Think of a framework available to Fedora, Debian and Ubuntu at the same time, users able to come together and join us in the community by opening their wallets and telling us to get to work on their dreams.

Imagine the power, the vitality and yes, even the vibrancy of the ideas users demand we make for them; all developed into a platform that like iTunes could take a wild west and focus it with good design into a platform that delivers successful sustainability for creators and meaningful dialogue with users.

We need transparency in the accounts of projects to foster trust. Progress of bugs and roadmaps delivered to the desktop so users can see a future in our projects. Reviews and statuses of developers working and available to work. Users electing favourite developers as heros of their causes with monthly payments to kick their bugs before they ever get to the archive. Kickstarter style risk investments to push radical designs and brand new projects. Bug reports where money can be added to the heat to indicate demand for attention and the rewards for completion.

It’s all possible if we dare to make users the center of the Free Software universe and scale it big, VERY big.

We require the courage and vision of the leaders from Canonical, Red Hat, Debian, the FSF and every project leader out there to advocate for User focused Free Software and economic sustainability. With a willingness to embrace our industry’s unique software production method, good design of the frameworks and an invitation to users and paid developers we can make the Free Software industry a powerful and successful part of every user’s computer experience.

Are you with me? Let me know below in the comments.

Ubuntu Membership

Launchpad asked me if I wanted to continue to be an Ubuntu member. I thought about it, and have decided that I don’t. The one thing I’ll miss is being able to post to Planet Ubuntu. But I have to be honest, there isn’t an Ubuntu community any more. There’s a Canonical community, an ubuntu-users gaggle and maybe an enthusiasts posse. But no community that makes decisions, builds a consensus, advocates or educates. It’s dead now, it’s been that way for a while.

Hopefully this post will make it to the planet before my membership expiry stops it. I’ll still be working and using Ubuntu, launchpad, bzr, maybe even ubuntu phone and tv. I won’t stop championing Free Software, economic involvement and good design either. Important principles for me. In fact nothing about what I do, projects I work on will change. This is just a realisation moment that Ubuntu doesn’t have a peer community to be a member of.

Jono,

You were warned plenty. It’s not your fault. You had to deliver decisions against the best interests of the Ubuntu peer community and in favour of the Canonical community. Driving so hard towards product nirvana that peer relationships were driven into the ground. I’m sure you disagree that the community is dead, but eventually those scales will fall or the fake smile will stop. I don’t know what kind of Community you want, but it sure isn’t the peer community I signed up for.

Council,

Unless you can see a way forwards to rebuild this broken dream, disband. Focus your great skills on Debian. I’m sorry we couldn’t make it work, we were overpowered.

Developers,

Keep up the great technical work. If your working on Ubuntu, don’t let the death of the community disrupt you. Let it pass like the breaking of an ulcer and carry on with your important and excellent work. The lack of a community outside of your company is not an impediment or even a problem to making great software. Keep calm and code on.

I’ll be making apps and code, most likely targeting Ubuntu. App developers need not change their behaviour, being an app developer doesn’t make you part of the old peer community. Just devs making good apps that should target all distros. Release your code, don’t get locked in, earn your bread, keep up the good work.

Everyone else: Good Luck, Code Speed.

DoctorMO

What I would do: Ubuntu Rolling Release

The idea really is that Ubuntu’s rolling release (alpha/betas) shouldn’t become a seperate product from Ubuntu’s LTS industry targets. Instead if we think about the platform as a whole, we should be able to put together both LTS and RR versions of Ubuntu into a single package. It would then be possible to do some really interesting things, like using one ubuntu install to repair or analyse the other.

I’d also like to see most applications removed from universe since it’s pretty obvious that the Debian model for packages is failing and we need to rethink how we deal with applications. The best model would be to be decisive and scrap apps from universe and move them to their own PPAs or a dedicated app-store model where FOSS apps might even be able to earn some money as they would finally be in a similar position to the propritary Canonical apps.

I understand these ideas are bold, but I wanted to give my thoughts on how best to close the loose ends. What are you solutions? colmment below.

Give Jono a Break, Grow the Community

From today’s Q&A with Jono Bacon. I need to use Jono to make a point, so apologies in advance. At 53:00 in the video Jono says is spending 14 hours a day working on Ubuntu. This despite having a brand new baby boy and a awesome meat smoker to contend with.

I say this isn’t fair on Jono. There is no reason why someone should be giving 175%. 14 hours a day is 70 hours a week; That’s more than the 40 hour week enshrined in the European working time directive for office workers; more than the 48 hour maximum safe working week for junior doctors; even more than the 60 hours a week that the Tory government want to change that to.

To put this into perspective, a balanced week would typically or ideally include 56 hours sleep, 40 hours work, 72 hours recreation, responsibility and relationships. But Jono does 70 hours, how can anyone be a good positive cheerleader with that sort of workload?

Responsible Indigestion

I think there is some blockage with the vast array of responsibilities that the Canonical Community Team have to do. A great deal of these responsibilities are likely only held by members of the team because we are unable to find volunteer or non-canonical business people to take them over.

Thinking about the people in the community team (who I love with all my heart), I see a ton of projects, lots of talk and quite a bit of regret at not being able to do everything. And I don’t think it’s right that they should be asked to do everything. Outside of the team, lots of aspects of the community are quiet indeed.

Not the Center

I’ve had some really good chats in the past with Jono about the nature of the community team and how it’s often perceived as being the center of the universe for quite a lot of the Ubuntu community’s activities. There is a misconception that the “Canonical” community team is the authoritative organiser and sanctifier of activities. It’s not.

The Canonical community team are employed to look after Canonical’s interests in the community. So of _course_ they’re going to spend all their time focused on their business objectives, that’s what the team is for. Of course Canonical’s objectives might be over-stretching too, but I think the team also helps out in places for the good of the community which is leading to stress.

Our true centre, if we have one at all, is the Community Council. But it has never really taken on the responsibility of being a co-ordinating power. It deals with problems and that’s what it was made for. So I guess one waits for the project to explode before taking the charred remains to the Community Council for autopsy. This isn’t good enough.

What to do

What we need is a new centre of the Ubuntu Community universe. It’s no good having a company act as the sol centre of activity; volunteers hate working for free for mega-corp big bucks and move away over time as co-ordination is often innocuously prescribed along business objectives. A community needs a strong central point, or central set of core ideas that we can all dance to without fear we’re being abused by a large player using cheat codes.

“Ubuntu for everyone” used to be enough. A rallying cry from a thousand frustrated Linux users to come together, creating a gravity1 all of their own, pulling more people in until we had such a strong and healthy community.

That isn’t enough any more. We’ve been too successful. We have an awesome Linux desktop which we can install on anyone’s computer without very many problems. You can get it for free if you ignore the skull, download an iso good for a million installs of the same fully working operating system.

What we need is a new centre of the Ubuntu Community universe. A new point of gravity. A new co-ordination body who can sanction every hair brained scheme2, listen endlessly to every kid on irc who has an exciting new idea, comment on things, and act as a great mixing bowl for people and ideas. Such a body would need a reason and a goal, something resonant that goes beyond just technical aims, or marketing PR.

I seriously propose that we found an identity for Ubuntu which lies outside of Canonical. A gravitational body of such stability and neutral authority that the massive Jovian mass of Canonical will happily find it’s lagrange point while smaller congregations will find more comfortable points in their own orbits.

I hate to say it, but Catch 22, Canonical MUST be committed to such an idea. There is NO point in a bunch of community folk wandering off into the brush to build this. We would need everyone to recognise the problem we have here and help fix it with some radical rethinking about the community. And that includes helping Jono3.

Are you onboard? What do you think? Let me know below in the comments.

1 Gravity, the reason we all come together. Each Canonical PR blunder acting like stellar wind pushing more people away.
2 Every hair-brained scheme in Ubuntu is already sanctioned, but most of the time someone with a fancy hat and an official looking title just has to listen to it and say that it’s a good idea to give the kids confidence.
3 Save the Cheerleader, save the world.

Developer Kits

With the new Ubuntu Phone on the horizon I though I might pen something about developer kits. I think we’ve come to the group-conclusion that development on Ubuntu sucks, and it sucks in a few ways I’m going to ramble on through:

Coherence

The idea of Quickly was to make a few opinionated decisions about how programs should be made. But it seemed to very quickly delve into the empire of choices on libraries, languages project management and deployment strategies. And that’s a reflection on how hard it is to please everyone in the open source universe.

If we want to have a good developer kit, we need to have strong, very strong opinionated decisions which nail all the technical functionality that will be required for all sorts of apps. For the Ubuntu phone, this looks like Qt and OpenGL. For the desktop it looks like C/Vala/python and Gtk.

What we don’t have is a good story for the project management and deployment. It looks like deployment is going to be patched up with automated package testing and an automated security system. I’m not sure about project management on the developer’s work station yet, it’s still very ad-hoc with too much of the best workflow in the minds of the developers and not in the tools being used.

Investment

The developer desktop, tools, apis and workflows require an enormous amount of investment. Look at how much money and time Google has spent just on Android developer tools.

It’s practically another Ubuntu sized project. While traditionally we’ve had very little investment and have used whatever tools people have cobbled together as they went along with their own developer needs. It’s produced a very disjointed experience for new developers, where so much needed to be known in order to be a good developer.

That’s turning round with the new developer site and api documentation. but I’m not sure the size of investment is the right sort of scale for where we want to go with app development. Bringing together all the API documentation from our various libraries would go a long way towards centralising and authenticating the previous opinionated decisions.

The Klein Toolbox

It’s hard to know where a toolbox starts for app developers and ends for desktop/core developers. If you think about tools like bzr and Make; these tools are designed for core developers and not really intended for app developers. They require the developer to understand where to get the best workflows and be pre-trained. And this really means that as soon as a developer is capable of using these tools, they’re no longer capable of making good developer tools for app developers… how can someone be sympathetic to the needs of more casual developers when they were required to learn so very much?

I’ve never liked Makefiles, I don’t think they’re good enough and I’m damn petty about all the tools that generate makefiles too. I don’t see good design in that space and I know paultag disagrees with me quite strongly about how unawesome makefiles are.

Conclusion

We have a lot of work to do.

What do you conclude?

Understanding Free and Open Source 2

Many years ago I produced a short visual guide, well after all the small changes I decided to update the guide from top to bottom. It’s now longer and follows a stronger narrative than before.

This is a long image, for the PDF download here. Repository for the svg files and scripts to build pdf and tiled images here: ~doctormo/understanding-foss/trunk, all Creative Commons, Attribution, Share Alike.

Page Surfing: Improving Firefox in Ubuntu

I’m getting frustrated trying to scroll on pages and I’d like to introduce an idea:

Since we have a full screen app that really is taking up the entire screen, there seems to be a good opportunity to use the screen when an app is maximised to scroll the largest scrollbar in the app. I have no idea how hard it would be to tie the scroll bar into something which could be controlled via the operating system, technical details.

The idea here is to put the top and bottom infinities to use, allowing them to be used to allow easier viewing of the internet. This could obviously be made generic so it could be used to control all kinds of apps (optionally?).

Maybe this kind of thing could be made an extension, something to try out and do some experiments. Maybe others will see it as an essential part of their ubuntu experience.

Your thoughts, as always, welcome below…

Muse on Ubuntu TV and renewed interest in Ubuntu

The very visual metaphor that is embodied by the chasm is meant to explain the gap between the customers you do have and getting your product used by everyone. You can see some good explanations here of what it is.

Over the years in the Ubuntu community I’ve grown to dislike this particular metaphor. Not just because we cant seem to learn anything useful from it to enable our community to succeed, but also because its a very weird way to look at the problem. The problem is not number of users or products sold per year, but how your ideas are spread through the population by other people.

For example if we were to think of the chasm as just about getting the majority of people to use your product, then we can consider Apple to have failed to cross the chasm in their desktop computer market. But if you change the concept of success to “people think and talk about” my product then apple is wildly successful. Even the legions of windows users aspire to and understand ownership of an Apple computer. Many of these people will have never used a Apple computer in their lives but will actually change
their way of thinking about desktop computers in order to incorporate Macs into that world view.

So what is the role of advertising? Well that depends on how good the advertising is by how much of an effect advertising has on the population. So if you produce a perfect advert, it can only have a certain effect on the people who see it and then you have to run it a lot or hope those that saw the advert will pass on the ideas your trying to communicate. Since adverts are known for being fairly weak forms of idea transmission you would have to run a lot of adverts for a long period of time to basically force the population to adopt a new set of ideas. This is also known as “throwing money at the problem” since you don’t have to do much leg work with your message in order to get it out there.

What is a strong form of idea transmission is word of mouth. This is easy you might think, anyone who uses your product would be naturally inclined to tell their friends about it! Ah, just because a set of ideas find a home doesn’t mean they’ll find a good way of spreading. You will get a set of customers who enjoy using your product, but no one outside of that group will really know about it. This forms them chasm in the metaphor mentioned above. Its created by a reluctance of your users to communicate your ideas
to the people they know.

As an example i present to you RedHat. Way back before Ubuntu, it was very uncool to run a server with linux, only really technical people did so and usually not with the knowledge of their bosses. Then a company comes along and spreads the idea that Linux can be brilliant on the server, they’ve done something to it or cast a spell of invincibility or something. But even if Linux was exactly the same technically, it was now completely different and new in the eyes of many more people.

The technical users started telling their bosses, other professionals, the word got out not because the technology changed, but because the message was sent with a renewed vitality and conviction that it was new, improved, important and could save you a bag of money to boot.

And that particular war drum has been beating ever since.

Then comes Ubuntu many years later. The same thing happens in fact, Ubuntu creates hope and a renewed vitality for spreading the message. “hey did you know you could run Ubuntu on your desktop computer?” it became cool to tell your friends you used Ubuntu, that maybe they should give it a try or let you
give them a try with a helping hand. Ubuntu wasn’t massively better that Mandrake, Mandriva or SuSE, it was just getting out a clearer and more easily spread message.

Spreading the meme over the chasm

What we’ve done is incredible. Many more people run a Free Desktop now than in 2004. But the message got old over the years, the faith and the vitality has waned and public relations issues have made the message of spreading Ubuntu to everyone you know less appealing and seem more risky.

Nothings really changed. Ubuntu is really getting better and better as a technology, but its message, its “meme spreading” capabilities aren’t what they used to be. New products like Ubuntu TV and Ubuntu phones are interesting and renew some of the flagging faith and in a bring back the old religion in seeing a Free and Open Source platform flourish somewhere.

We secularists tend to think of religion and faith as nasty, dirty emotionally charged system and we should focus instead on proving with data that we are the best and only supporting Ubuntu if it really is the best. But that’s not how humans work, we’re far more emotional and biased and working with that is what produces this chasm effect in the market; if you’re before the chasm then the bias is working against you, if you’re over the chasm then the bias is working for you.

We want to take on the world, and it can be done. Ubuntu can be installed on every computer within a mile of
where you live, that there is nothing it cant do without a bit of persistence and faith that Ubuntu can work. Each and every member of the community is a mass of human interaction; chance after chance to spread our ideas and get the message out there that “you may not use Ubuntu, but think of Ubuntu when you think of computer desktops”.