Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror

Comment “Ideally?” (Score 1) 235

Can we talk about the fact that some Silicon Valley tech bro shouldn’t be mansplaining the “ideal” use of our vehicles to us? Personally, I use the command line on every computer I own, including my Macs. I keep my 13-year-old Honda running because it has a 100% physical interface. That is how I am my most productive and least distracted as a software developer and a driver. If I need to adjust the thermostat or skip a track on Pandora or skip ahead 15 seconds on a podcast, I know exactly where that button is by feel. Meanwhile, if I try to drive my wife’s car, which has a touchscreen, I have to ask her to do all of that, or I have to pull over, because even adjusting the temperature of the climate control requires looking away from the road and finding the tiny little interface widget in the lower right of the touchscreen. What’s worse, her car has virtual buttons, so I accidentally turn on the seat warmer half the time when I’m trying to adjust the volume on the radio. I assure you that my choice of a new vehicle, when that time inevitably comes, will be determined in no small part by how easy it is to control things without looking away from the road. Maybe if these CEOs had been almost creamed twice by distracted drivers, they’d have a little more understanding of the safety problems their interfaces are creating.

Comment Re: How about (Score 2) 73

The struggle is real, says the person who maintains JPEG code for (most of) the world. I can barely make the equivalent of a starting teacherâ(TM)s salary (which in the U.S. is rhetoric for âoenot much moneyâ, because education is underfunded here just like OSS is underfunded in general) by working full-time (much more than full-time during some weeks) as the maintainer and principal developer of three prominent OSS projects. I have managed to barely make that a viable career since 2009, but it requires me to constantly solicit money. Most of that money comes from corporate sponsors in exchange for the implementation of certain features they need. Some percentage is pure patronage from corporations that depend on the projects. A small percentage comes from individual contributors. Developing OSS that way frees me from any one organizationâ(TM)s agenda, but I have no flexibility to speculate on major next-gen feature development, code refactoring, etc. AFAIK, Iâ(TM)m the only one crazy enough to attempt that particular OSS business model. The vast majority of OSS developers these days are corporate employees. Some of those corporations are running me out of business by outpacing me with entire teams of developers that produce competing but less OSS-friendly and less community-responsive open source projects (e.g. projects that reserve their best features and support for a paid hybrid proprietary/OSS version.) If anyone wants to have a discussion about ways to encourage more experienced/specialized/professional OSS developers to develop independently, hit me up. If things continue apace, our industry will get what we pay for in terms of OSS development. Those who develop decide, which means that OSS development will be steered primarily by the agendas of the biggest tech companies unless there is a concerted movement to change that.

Comment Re: bureaucracy (Score 4, Insightful) 49

Speaking as one of the few independent open source developers out here, the reason why too many open source projects are surrounded by bureaucracy is that itâ(TM)s really difficult to eek out a living wage by developing open source independently, even if your software is considered critical infrastructure (as one of my projects is.) Generally your choices as an open source developer are: (1) Be independent and maximize your ability to serve the needs of the community, which involves living month to month and begging for funded development and patronage so you can pay your bills, or (2) Work for a corporation and spend most of your time on administrivia and the corporationâ(TM)s agenda. Bear in mind that (1) will probably earn you 20-25% of (2), at least in my experience, so it wouldnâ(TM)t even be an option for people who have families to support.

Comment Re:Crowd-fund each issue (Score 1) 191

I essentially do this for enhancements. However, the reality (see my long comment above) is that independent open source development costs a lot more money than most people realize, once you factor in the actual cost of labor and resources. Even the simplest bug fixes may cost hundreds of dollars to implement and test, and crowdfunding doesn't just magically happen. You have to set up and promote and manage the campaign, and that requires additional labor that wouldn't be compensated-- overhead, essentially, and that overhead makes it difficult to justify crowd-funding smaller issues. Mostly, you won't get companies on board with crowd-funding, because even if they would be receptive to funded/contract development for a bug fix or enhancement, they aren't going to be receptive to making donations to an individual or to a project that is not officially part of a foundation or other legal entity. So you'll mainly be relying on individual donations, and it'll take forever for those to come in unless your project has a very broad reach. I've personally found that it's a lot more productive to seek corporate patronage and donations for the overall project and use the resulting funds to fix bugs. That ensures a high quality level for the project, and that high quality level will attract enterprise users who might have the resources and willingness to fund enhancements that they need. Otherwise, you'll likely end up in a chicken-and-egg scenario-- people unwilling to use your code because it's buggy, and you unable to monetize the bug fix because not enough people are using your code.

Comment Re:Just make it free for non-commercial use (Score 2) 191

It would also be very helpful if the Apple App Store allowed GPL-licensed products, but barring that, a central app store for OSS projects is a brilliant idea. It could be sort of like BandCamp.com is for musicians. We need all possible avenues in order to effectively make money at this-- support revenue, direct sales revenue, funded development, patronage, ads/logo sponsorship, etc. Limiting the free version to non-commercial use is probably not viable for most OSS licenses, but people will pay for a high-quality binary if it adds significant value over building the code themselves-- such as if doing so enables automatic updates, etc. But it is also true that that revenue channel would not be applicable to many projects. A Tidelift-style approach is probably best for infrastructure, and an app store approach is probably best for applications.

Comment A perspective on independent OSS development (Score 1) 191

I don’t claim to be any sort of a guru, but I have managed to carve out enough of a niche through independent open source development to support myself (just barely) for the last ten years. Having worked as a full-time open source developer for a Fortune 500 company for four years prior to becoming independent, I can speak to why there are huge technical benefits to independent, as opposed to corporate, open source development. As a corporate developer (on the same projects, to be clear), I spent probably half of my time dealing with issues that were specific to the company’s (now obsolete) pet platform, and half of the rest of my time dealing with corporate administrivia that contributed nothing to the technology, the open source community, or my personal skills. As an indie, I can remain platform-agnostic, and although I still can’t spend 100% of my work day contributing to my OSS projects in meaningful ways, I can certainly spend a lot more than 25%. Also, because of the low overhead of being independent, I can charge about 1/5 the rate that my former employer charged for my time, and I can accomplish considerably more with that time. At least for me, this is the most efficient and meritocratic way to develop open source code, and it maximizes my ability to deliver what the community actually wants. However, it’s also stressful, because only about 1/3 to 1/2 of the money I need to pay my bills in a given year is guaranteed in advance (by corporate patrons.) I have to constantly hustle for the rest, which mostly comes from funded development of new features. Last year, that didn’t work out so well, I missed my target by 15%, and I went into debt that I am slowly but steadily working my way out of. It is a month-to-month existence, much like being a professional artist or author, so it’s certainly not for everyone.

One of the biggest challenges is figuring out how to avoid giving away so much free milk that no one will want to buy the cow. It’s a constant tightrope act, and it is not made any easier when people— including some large multinational corporations— have the expectation that free software == free labor. No. With few exceptions, if the open source project is higher-quality than science fair/hobbyist code, then someone somewhere paid for the labor. In the case of the projects I develop/manage, one of which was developed from scratch and the other two of which improved upon open source projects that have existed in some form since the early 1990s, millions of dollars/Euros/pounds/etc. of labor have gone into their development over the years. I attempt to attract patrons with the value proposition that, by sponsoring one of my projects or paying me to implement a feature, they are able to get the enterprise-quality functionality they need for hundreds or even thousands of times less than it would cost them to develop a proprietary solution from scratch. That has fortunately resonated with enough companies/organizations that I have been able to attract enough patronage and funded development to pay (most of) my bills for ten years. However, I have no delusions that this business model would work for most open source projects. Two of my projects are niche solutions, and despite being open source, they were also first to market in many respects. They are the sort of thing that, if you need it, you really need it, and since similar closed source solutions cost a lot of money, even if a company has to pay me to implement a feature they need, they still come out ahead. These niche solutions also require a lot of domain expertise in order to understand what the code is doing, so there is a steep learning curve for contributors. Thus, my other value proposition is that outsourcing the development to me and having a new feature officially supported as part of the main line of the projects will ultimately cost less than doing in-house development and maintaining an in-house fork.

The third project I develop/manage is libjpeg-turbo— a high-speed ISO-sanctioned JPEG library that is used by popular web browsers, most Linux distributions, many image viewing/processing applications (including some commercial ones), as well as my other two projects (eat your own dog food.) Ironically, though, even though libjpeg-turbo has probably thousands of times more users than my other projects, it is by far the most difficult project of the three to monetize. It has received by far the least amount of patronage and funded development, and I have donated the most pro bono labor to it. In general, people just seem to take infrastructure for granted until it breaks, and when it breaks, they expect the maintainer to drop everything, go out with a shovel and hot tar in the pouring rain, and fill in the potholes for free. That means that I can't just accept any and every contribution to the project. PRs that implement major new features have frequently required 30-40 hours of my time just to properly clean them up, regression test and debug them thoroughly across the spectrum of supported platforms, and integrate them into the code base. That has frequently put me in the awkward position of having to ask for money in order to integrate a PR that a company already paid someone else to develop, or to reject PRs from individual contributors who didn’t do a sufficient job of quality control. I won't apologize for that, because it's necessary in order to maintain the high quality of the code base without going bankrupt, but it has p***ed off some people in the past.

Self-employment in the U.S. is already challenging. My gross income is rarely more than the equivalent of a teacher’s salary (which, in the U.S., is shorthand for “not a lot of money”)— easily 1/3 to 1/2 of what a senior developer/project manager/tech writer/systems integrator/SysAdmin/computer architect/whatever-other-hat-I-wear-on-daily-basis is worth on the open market. However, due to self-employment taxes and health insurance premiums, I end up taking home much less of that salary than a corporate or government employee would, NTM receiving zero perks-- no vacation, no sick days, no retirement, no office space, no health insurance, no nothing. The other problem, being based in the U.S., is that many U.S. companies are unfortunately still skittish about open source. It feels like many of them are still referring to the Halloween documents, even though Microsoft has moved on from that. Thus, most of my income comes from European, Canadian, and Australian companies, and that means that my ability to attract funded development and patronage is subject to EUR/GBP/AUD/CAD exchange rates. Since those currencies have been on the decline relative to the USD, I’ve essentially been on a fixed income since about 2011— unable to raise my hourly rates to account for the ballooning cost of living in my adopted home town of 20 years, nor the ballooning cost of health insurance (irrespective of the problems with the U.S. health insurance system that are causing premiums to rise faster than inflation, health insurance here gets more expensive as you age as well.) In 2016, I restructured my retirement account from previous employers in such a way that I am taking distributions out of it (in the form of dividends) in order to offset the rising cost of living. That fortunately doesn’t cut into the principal, but it does limit the growth of the account. I am basically using some of my retirement money in order to keep developing open source independently, and I haven’t been able to contribute significantly toward that retirement account in ten years. I’m thinking of an Aerosmith song, here. Oh, yeah— “Living on the Edge.”

The other problem is that there is no real guarantee that this business model will be sustainable in the long term, because it depends on growing the user base, not on the size of the existing user base. I have to constantly hustle to attract new users, because new users are the primary source of funded development. Once a company/organization has paid me to implement a particular feature, I usually never hear from them again. I have to keep the projects moving forward in meaningful ways, solving new problems, giving people what they want, and thus increasing my user base (and the potential for funded development) while still maintaining the old features and the high quality that attracted my existing user base. Basically, every bit of funded development I get helps the projects move forward, and that helps attract new funded development. However, sometimes I end up in the awkward position of having to move the projects forward even though no funding is currently available, thus requiring me to eat sometimes hundreds of hours of labor in order to test, debug, polish, and put out releases. Last year, I had to do that with all three projects, which is why I went into debt. I usually don't get paid to do bug/security fixes, except in rare cases— such as if the bug was part of a feature that an organization funded, and I still have an active contract with that organization. I generally have to rely on the money that patrons/donors pay me every year (the "general fund") in order to fix bugs and security issues, put out releases, field questions from and provide tech support to the community, maintain/improve the build system and documentation, improve the readability and maintainability of the code, etc.-- IOW, to sustain the overall quality of the project. However, the general fund tends to only last 6-9 months, so it’s not uncommon for 50% of my labor on the open source projects I develop/manage to be pro bono. But if I didn't do that pro bono labor, then I wouldn't be able to move the projects forward, and thus I wouldn't be able to get paid for the other 50%. I could make twice as much money, or I could charge half as much, if every hour of work I did on these projects was funded.

I am not complaining, by any means. Despite the challenges, working independently is exponentially more rewarding than working for a large company. But don't think for a second that this is a hobby. It's hard work. It's work that a lot of people rely upon, but most of them— including many companies that profit directly from my work— have never paid a dime for it. The fact of the matter is: the current system of open source funding (corporate development) is not particularly meritocratic or efficient. It doesn't maximize the ability of developers who have the best skillset for a particular project to contribute to that project, and a more efficient and meritocratic funding system (independent development) lacks the necessary cultural and business infrastructure to be viable for most developers and projects. I’ve spoken to some of the Tidelift people, and they’re definitely taking a step in the right direction, but they’re not currently set up to handle C/C++ projects, nor can they really provide a pass-through enterprise support channel. What I really need and want to see is a web site that allows companies to pay me for enterprise support on a sustaining or per-incident basis, basically providing all of the business infrastructure (boilerplate contracts, etc.— lawyer stuff) that someone in my position could never afford to provide. I think that would greatly increase the efficiency and responsiveness of my projects, since I wouldn't have to spend as much time hustling for hourly work, and it would hopefully make my overall business model more sustainable. Again, not complaining. I do things this way because it’s the most effective way for me to give back to the world. It was the only way that I could continue working on these projects after my former employer laid off my entire team and killed the product that the projects were feeding into. I want to support the online communities that I’ve built. I want to solve problems for those communities. However, it would also be really nice if I could do that without the constant threat of financial destitution. The reality is not "profit for us, sustainability for you." The reality is "profit for us, sustainability for you if you're really really lucky." So many companies rely on my code for their products, but they are either blissfully or willfully unaware of the fact that my projects could go away at any time. The only thing that's keeping them going is my ability to pay rent by developing them, and that is riding the very ragged edge right now.

Slashdot Top Deals

Your fault -- core dumped

Working...