Comment by dasyatidprime

7 years ago

But what is “high quality software”, if we look at it from a perspective of user expectation? There are a lot of things users expect now that are not just a function of the software itself. And how do you organize the people to produce the software? I think the volunteer model that powered a lot of the IRC and Jabber era you mentioned is both decaying and under attack in terms of viability for mainstream end-users.

One psychological element is that I suspect the “service = client = identity = interaction model” meta-model of mental compartmentalization has been embedded firmly into mainstream end-user consciousness, because it's easy to understand and provides strong environmental cues. This is both encouraged and to some degree enforced by the “Does It Work On Mobile” situation, which implies dealing with Google or Apple app stores. Notification handling seems particularly awful, because it usually means going through an app-specific developer account which is required to be responsible for a forwarding server, which then becomes both a recurring financial expense and a centralized point of attack, and so on.

OS-level, user-level, and security-apocalypse-related requirements for fast-paced updates destroy anyone following the “make something acceptable and then leave it be for a while” development model, which drives the effective cost and need for commitment way up. In the dominant IRC/Jabber era, clients could have code that didn't get touched for a long time, which is much more amenable to a volunteer model.

Non-volunteer libre software models run into all the usual market and funding problems, but both they and volunteer models also run into the problem of being exploitable via the newest iterations of embrace-extend-extinguish, which I guess I'd call copy-customize-clobber. Marketing departments are both ethically Interesting and a massive money sink. Taking money at all at least used to involve huge logistical concerns (which themselves have centralizing effects), though some of this has become easier.

The pricing gradient is abysmal. Much like how the iOS App Store has had its pricing driven to rock-bottom by price anchoring on “things that got added onto your phone bill” even though the new crop of apps was full-fledged polished packages that cost much more to make, the anchoring expectation for keeping a new service running (and its client maintained, and so forth) has been driven to “free” by VC-backed data-driven operations providing a very strong distorted market signal to that effect (I say “distorted” under the assumption that users don't realize the full scope of the mass surveillance and control that is possible with digital socialization and aren't taking it into account, but in either case it hurts the open options).

A lot of the polishing of end-user-facing software involves slogs, and some of them involve money-draining and executive-function-draining slogs. “This doesn't work on Android device Foo” is something that is very hard to fix without having a Foo on your desk. Users, frankly, can also be quite ungrateful in an open-source development context (keeping in mind that whether this reflects badly on them is a separate question, given the amount of hidden psychological distance involved and the social context of other unfortunate power exchanges that they're pushed into by digital technology). In a corporate context this is mitigated by social barriers and financial compensation, but avoiding maintainer burnout in more idealistic contexts seems to be an unsolved problem, and my observations suggest that it's true even when there's a crowdfunding model, because now if you make any mob-justice-able missteps, a bunch of your money immediately goes away. (Arguably this should be true for the big closed networks too, but it isn't, so you're still at a disadvantage.)

Non-text telecommunications sometimes involves esoteric skills. There's been motion to improve things (for instance, the rise of Xiphophorus audio codecs (Vorbis, Opus, etc.)), but there's still things like echo cancellation and noise reduction which can get arcane and maybe run into patent minefields (I haven't checked recently). My Discord calls don't have anywhere near the level of background noise that my Signal ones do.

I've weakly observed a strain of resistance to acknowledging or prying into uncomfortable models of human psychology among open-source developers, who tend to lean systematizing and abstracting… I don't have a good perspective on that one right now, but I guess I'd say the “we need to be friendlier to Normal People” departments seem to default toward “normal people like flashy websites” and away from (I'd approximate) “normal people like not having to keep cognitive context or be put in situations where they might be embarrassed or have to be responsible for something awkward”. The latter is a much, much harder set of problems, even if you ignore the ones that are inherent to network effects and seemingly have to be bypassed by luck. Then again, proprietary services sometimes mistreat their users in these ways and don't necessarily get exoduses, so maybe network effects just completely dominate here; I don't know.

(I guess a secondary problem is that an emotional understanding of the mechanics of fashion is rare in conjunction with the technical skills to close gaps like this, because they involve such vastly different approaches to the world. And that leads into a whole potential digression on whether human fashion cycles are even amenable to creating a world in which people can generally live without relying on abusive services for their social lives, without strong common-knowledge agreement to avoid them.)

I'd love to hear better ideas for tackling any of this. (And sorry for the core dump!)

I think social/communications software should be developed by universities or perhaps a new kind of institution. And there should be project based grants, paid from tax money.

The internet was better when the communications software was in fact developed this way by universities.

Companies can still provide the hardware, of course, but they have no business looking at our data.

  • > And there should be project based grants, paid from tax money.

    The vast majority of tax payers don't care that the government spends some stupendous amounts of money on proprietary systems. It is depressing, but that won't change until:

    lobbying = corruption (allowed = true)

I think fundamentally you can't tackle the problem the way that a traditional VC backed startup would. You've got to burn through money like crazy and there just isn't going to be the ROI multiplier at the end -- because you can't lock in your customers. Free software business models have to work on a "payment" upfront way of doing things. However, payment can be made in a lot of ways (including the "consortium" style approach that Apache software takes). If you ever want to talk about free software business models, look up my email in my profile and I'll be happy to go on for as long as you want ;-)

I think that volunteer organisations can go a long way, though -- especially if they are motivated by things other than money. Scarce skills are actually not nearly as much of a problem as you might imagine. I actually have the skills to fix your audio problems in all likelihood. In fact, I would go so far as to say that I haven't found any VOIP package that is as good as one that I built 15 years ago (unfortunately not free software... sigh...)

The key is to actually run a free software project. Signal is not free enough for me because it forces me to link to non-free code if I want to use the service. I'll be completely honest, open core sucks when it comes to attracting people who have the ability and desire to help. It is vendor lock in by design. And while Signal in not actually open core, it might as well be because of the lack of federation coupled with the necessity of using Google Play and Signal's server.

If it were me, I would rewrite rather than fork Signal because I also don't like a lot of things about their design (and I have considered it). But in the end, I'm not all that interested in writing a VOIP/messaging server. I've got another project on the go and I'm only one person. This doesn't mean that there isn't someone else with similar skills to me. It also doesn't mean that I wouldn't chip in and help with a project that I felt aligned with.

And I think this is exactly the key. You need that low barrier of entry. This is one of the absolute key things you need for building a free software project that attracts the talent you require. That is a lot more to it, but without removing all the excuses to work on something, people just won't find the time.

I think the problems you are currently focusing on are secondary. You do not need to fix them up front. They are things that you can iterate on. It's the "how do I get people excited to work on this project" that's important. You don't need to appeal to the masses for that. You need to appeal to the programmers (and potentially documenters and artists). Once you have people invested in your vision, then you can start to wonder how to expand your reach.

  • I take your points around Signal but I think your priorities may be different than others. IE, I care more about an open standard being created for E2E encrypted chat that lets you pick your own home server than I care about Signal using Firebase Cloud Messaging. If Signal's standard was built to allow multiple home servers then we could each pick which client served us best.

    It is a shame XMPP got lost in the shuffle along the way.

    On the Firebase point, it is harder than it looks. I know this because we have similar problems as them (needing to notify our app to go sync) and basically Android has removed every other option for you to wake a device to do that EXCEPT for FCM. Every release has come with more and more ways they lock down background apps to now it being completely impossible for an app in the Play store to do anything but FCM.

    So Signal doesn't have a whole lot of choice there, at least not unless they decide they won't be available in the app store which kinda sinks them as being a real competitor.

    On that note, I think they do a decent job and I really do want to use them but they are behind on features compared to their peers and I just don't see it happening. Some of those are large moats created by the "free or nothing" philosophy. For example, one of the most useful WhatsApp/Telegram features is being able to share your live location for 30m or an hour with a friend or group. It isn't clear this is going to happen due to not having a good free map provider: https://community.signalusers.org/t/live-location-sharing/25...