My proposal for scaling open source: don’t

I’ve had a number of conversations about what “we” in the “free software community” “need” to do to combat the growth in proprietary, user-hostile and customer-hostile business models like cloud user-generated content hosts, social media platforms, hosted payment platforms, videoconferencing services etc. Questions can often be summarised as “what can we do to get everyone off of Facebook groups”, “how do we get businesses to adopt Jitsi Meet instead of Teams” or “how do we convince everyone that Mattermost is better for community chat than Slack”.

My answer is “we don’t”, which is very different from “we do nothing about those things”. Scaled software platforms introduce all sorts of problems that are only caused by trying to operate the software at scale, and the reason the big Silicon Valley companies are that big is that they have to spend a load of resources just to tread water because they’ve made everything so complex for themselves.

This scale problem has two related effects: firstly the companies are hyper-concerned about “growth” because when you’ve got a billion users, your shareholders want to know where the next hundred million are coming from, not the next twenty. Secondly the companies are overly-focused on lowest common denominator solutions, because Jennifer Miggins from South Shields is a rounding error and anything that’s good enough for Scott Zablowski from Los Angeles will have to be good enough for her too, and the millions of people on the flight path between them.

Growth hacking and lowest common denominator experiences are their problems, so we should avoid making them our problems, too. We already have various tools for enabling growth: the freedom to use the software for any purpose being one of the most powerful. We can go the other way and provide deeply-specific experiences that solve a small collection of problems incredibly well for a small number of people. Then those people become super-committed fans because no other thing works as well for them as our thing, and they tell their small number of friends, who can not only use this great thing but have the freedom to study how the program works, and change it so it does their computing as they wish—or to get someone to change it for them. Thus the snowball turns into an avalanche.

Each of these massive corporations with their non-free platforms that we’re trying to displace started as a small corporation solving a small problem for a small number of people. Facebook was internal to one university. Apple sold 500 computers to a single reseller. Google was a research project for one supervisor. This is a view of the world that’s been heavily skewed by the seemingly ready access to millions of dollars in venture capital for disruptive platforms, but many endeavours don’t have access to that capital and many that do don’t succeed. It is ludicrous to try and compete on the same terms without the same resources, so throw Marc Andreessen’s rulebook away and write a different one.

We get freedom to a billion people a handful at a time. That reddit-killing distributed self-hosted tool you’re building probably won’t kill reddit, sorry. Design for that one farmer’s cooperative in Skåne, and other farmers and other cooperatives will notice. Design for that one town government in Nordrhein-Westfalen, and other towns and other governments will notice. Design for that one biochemistry research group in Brasilia, and other biochemists and other researchers will notice. Make something personal for a dozen people, because that’s the one thing those massive vendors will never do and never even understand that they could do.

About Graham

I make it faster and easier for you to create high-quality code.
This entry was posted in whatevs. Bookmark the permalink.

10 Responses to My proposal for scaling open source: don’t

  1. Pingback: …proposal for scaling open source: don’t « Adafruit Industries – Makers, hackers, artists, designers and engineers!

  2. Kefah Issa says:

    Wow. I like the subtle conclusion and tend to agree. We can’t and shouldn’t go after the “big boys” on their own game. Instead we need to care and attend to our modest and genuine needs avoiding the scale-craze.

    Recipes, tools/technologies that target the modest personal and corporate needs is definitely a viable strategy. One would argue that this was the strategy of FLOSS all long (scratching the itch).

    Thank you for sharing your thoughts.

  3. 22Decembre says:

    >We already have various tools for enabling growth: the freedom to use the software for any purpose being one of the most powerful.

    This one is only useful for devellopers. I see time and time again that the open-source community is a community where the dev’ – not the user – has power. It would be cool that dev’ recognize that and understand how to do better for their users instead of expecting their users to become devellopers.

    >Design for that one farmer’s cooperative in Skåne, and other farmers and other cooperatives will notice.

    Will it be useful ? Really ? We will end up once again with a million websites/protocols barely able to talk to each other.

    >We can go the other way and provide deeply-specific experiences that solve a small collection of problems incredibly well for a small number of people. Then those people become super-committed fans because no other thing works as well for them as our thing.

    But this thing is actually useless because no one else use it, so they return to FB, GG or whatever.

    >and they tell their small number of friends

    But those friends don’t care…

    >who can not only use this great thing but have the freedom to study how the program works

    Will they ? Do they have the knowledge ? How much of the world *knows* how computers work ?

    >and change it so it does their computing as they wish—or to get someone to change it for them. Thus the snowball turns into an avalanche.

    That’s what we tried for years up now. How is that doing ?

  4. Graham says:

    > How is that doing ?

    Linux was just a hobby, not big and professional like GNU. The web was a document sharing platform for some particle physics groups. Emacs was a bunch of macros for a text editor using community. You tell me.

  5. Pingback: ● NEWS ● #SICP #Programming ☞ My proposal for scaling #freesw : don… | Dr. Roy Schestowitz (罗伊)

  6. forest says:

    Honestly I feel so attacked in this post O___O

    Ok, beyond that, I do agree with you.. I think… to some extent… these are all things that I worry about too. That no one will care about what I build, that it will get no traction and go nowhere. Its easy to bite off more than you can chew and fail to make a difference (or anything at all) because you failed to serve your users, have real relationships with them, etc.

    That said, I do believe that some of what 22Decembre said is true as well — if you just focus on your local environment, its like putting your entire life into a slot machine. There is a chance that what you are doing will go somewhere and make a difference, but it’s much more likely to go nowhere. Not everyone gets to be a star. That appears to be the reality of the human experience for most people, whether it’s music, programming, video games, or anything else.

    I think that salvation is found where machine sympathy and human sympathy overlap. Human sympathy is easiest to find in your immediate local surroundings and groups, because you can simply talk to the people, look into their eyes, and try to connect with them.

    But it’s also not that hard to find in abstract concepts, memes, the zeitgeist. There may be ways to connect with not just people, but the ideas that people have, thier desires & feelings felt across an entire subculture, culture, society.

    How does the technical reality of IPv4, DNS, x.509, NATs, CLIs, TCP, TLS, etc, interact with those feelings? How do these technical/practical limitations influence the “everyday”? How can we hack it? How can we change it? Where are the opportunities to meet users at thier own doorstep? Where are the opportunities to re-define what’s possible, what’s easy, what there is a UX for?

    Like 22Decembre said, doing your own thing in your own little corner is risky business — if no one else wants to change what they are doing to fit yours, its game over. So I believe we should try to search for common interfaces, things that are already established and that folks will reliably be looking for:

    – the linux server that has a host public key and one or more authorized SSH keys: you (or a program acting on your behalf) can SSH into it and do stuff.

    – the TCP listener that speaks a certain protocol (let’s be honest, it’s probably HTTP).

    – the stackable protocol lego bricks: Proxy, Reverse Proxy, Tunnel, Reverse Tunnel.

    – the “app store”, “image registry”, “package repository” where developers and users meet.

    – the walled gardens: corporate app stores, code signing, XCode, etc.

    I don’t like the seemingly defeatist attitude that “we” shouldn’t try to make an impact. That “we” should give up and just submit to the slot machine. It doesn’t take growth hacking, selling your user’s data, or getting investment. It just takes focus and a bit of a polyglot (probably more than one person involved) to stretch far enough that you can reach all corners of this multi-dimensional map of interfaces. Interfaces between non-technical people, sockets, professions, protocols, files on disk, organizations, etc. Have some imagination. Yes, capitalism may make the entire world look gray after an unhealthy exposure level. Unfortunately it’s something few can avoid. I’ve seen it myself. But it doesn’t have to be that way. There’s more going on in the world than just money, and I don’t know about you, but I’m interested in participating.

  7. Graham says:

    You’re making the same mistake they did, and the mistake I cautioned about in the second paragraph. We do not do nothing about those things: we take a different approach. I agree with you that if your idea of “do something to benefit my small community” means “ignore accepted internet protocols and make something incompatible” then you’re doing it wrong, but that’s because you’re doing something different for its own sake, not because you’re doing something to benefit your small community.

    The same is true if you focus on growth hacking, monetisation, and “scale”: you’re not benefitting your community, you’re optimising for your own vanity.

  8. Pingback: Links 13/7/2021: Firefox 90, Tails 4.20, LibreOffice 7.2 RC1, MongoDB 5.0 Released | Techrights

  9. Pingback: Algoritmos: Capturas na Rede de 24 de Julho - 2021

  10. Pingback: Late Night Linux – Episode 136 – Late Night Linux

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.