In agreement with what Zed is saying, you would be shocked by the number of companies, YC companies especially, who use Orbited (www.orbited.org) but never ever mention it, contribute a patch, offer me a job, or really add anything of value to the project.
Great, that's their prerogative... its MIT licensed software. But I can tell you, after this sort of interaction for years, I no longer invest my time in Orbited, and instead I bill $250/hr to share my expertise with consumer facing internet startup companies.
One actual data point to add this discussion anyway.
pquerna, gridspy, thanks for your responses! I didn't mean to sound quite so cynical. Mainly I am venting my frustration at the lack of a dedicated developer to maintain the project, especially after I've seen so many success stories.
wrt AGPL: In orbited's case -- b/c it is a socket proxy -- the AGPL would really have no impact whatsoever on users. No one would be linking any of their code in-process, and so there would really be no requirement for them to AGPL any of their custom back-end logic. Besides, I don't really believe in trying to force users down a particular path. My hope is always that freedom and choice helps build trust with your user base, which ultimately results in the healthiest community.
Yet, when I started Orbited 3-4 years ago, I never intended to be married to the project forever. My hope has always been that some people/projects/companies that are depending on the Orbited would be willing to commit substantial engineering resources to fix bugs and implement new features, and from those contributions some new core committers would emerge. Unfortunately, my work still accounts for about 95% of the 0.7.x branch which is the last stable release.
I feel like Orbited is far behind, considering I haven't been involved in a release in about 2 years, and no one else has really stepped up. I am always shocked, truthfully, when I hear success stories and see people building applications with it still. The code base has remained unchanged through about 10 browser releases.
For the sake of argument, you could say it's about the right people "touching" your software, especially if you dual license it so that people who don't want the unpleasant AGPL terms pay some money for the benefits they're receiving.
After all, cloudkick doesn't seem to mind if some people don't touch it with a ten foot pole because of the price.
I think it's a tradeoff: with GPL style licenses, you risk excluding potentially valuable community members who use your code in their own proprietary applications, but may give something back. On the other hand, sometimes those people/companies give nothing back, and some people find that irritating.
We have a customer who decided to renegotiate our support contract for this reason. They cut a chunk out of our support hours and took away money from the contract when they realized the call volumes were tiny compared with their previous service provider.
We had better visibility into their 200+ client sites, automated processes, stability, gave their employees nothing much to do, and, unfortunately (in hindsight), provided good tracking of support incidents. These were the things we were asked to do in the contract, and we did it well, and we paid the price for that. If it was a little more faulty, involved more 'busyness' from the people on their side, and had poor visibility into the overall system we would not have lost that chunk of money. We did not have to be this good, just reasonably better than the old system.
Cannot really complain though - from their perspective, this cut was one way to save money. Just business. Funny business.
Unfortunately this confirms one of my fears with FOSS. The better the software, the worse the business model works. I hear politicians call for more open source because it creates local support jobs. Software shouldn't create jobs. It should kill jobs so other higher value jobs can be funded somewhere else in the economy.
Another possibility is simply that people are contributing less because both the upfront and long-term cost of making a profit themselves on their code has gone radically down.
Optimizely launched today. Normally A/B testing is simply a framework feature someone (or rather many people, typically independently) implements and puts out there. Instead, with a little more work and very little upfront capital you can turn that feature you would've put out as open source into a revenue generating product. For lots of people it's not worth turning into a product if your servers are going to cost you thousands of dollars a month from day one but if it's just 20-50$/month then the economics change entirely. From the community you lost all the people who would give something away for free simply because it would've been too big a hassle and risk to turn it into something profitable.
Another good example is http://directededge.com . An adaptive recommendation service seems like the ideal fun project to hack on as an open source API/library. But now it's a subscription product too. I'm sure many others can be found.
That's actually another good way to say it, and is sort of what I said. But, not everyone has the same risk tolerance so it can't be the sole cause otherwise people would have done it sooner than 2009. Another contributing factor is corporations taking advantage of the commons. Combine the two and you get our current situation.
It's only really in certain areas that that happens, though, mainly webapps. If you want to be a popular provider of something else, free software is often still the way to go, even if you also want to make money.
Clojure, for example, could've adopted a freemium business model, say by allowing the free version to be used noncommercially but requiring a license to use it commercially. But it chose an OSS licensing model instead, I'm guessing at least partly because: 1) the main initial motivation was building an interesting language; and 2) non-free-software programming languages are a non-starter among many potential users.
One could get the same effect through a killer commercial library/app that's only available on a particular platform. I don't know of any real-life examples.
I don't know where Zed gets the idea there was an "unwritten contract" between FLOSS developers and industry. In my experience, businesses have freeloaded and withheld recognition whenever it was remotely possible.
If you go back to the Transmeta years, even Linus Torvalds was doing the kernel only part-time for a while. Full-time FLOSS development has always been rare.
There's an undertone of anger in this post that there is no suitable industry job out there for the developer of Mongrel. Maybe that is a shame, but I just don't find it as surprising as Zed does, I guess.
There is a crying need for some other way to fund infrastructure software projects.
> I couldn't decide whether to vote you up or down.
My policy is when a post or comment has one grain of insight or new ideas amongst a bushel of wrong-headed chaff, I vote up. After all, I have a fully-working pattern-match filter built into my brain, and so does everyone else. The world is a better place when people are encouraged to make positive contributions.
Couldn't the decline just be more or less the shredding of the economy in the past 2-3 years? Fewer companies with extra cash around to have people spend time contributing back to OSS projects.
I'm more predisposed to believe the economic factor too. Much of OSS contribution is fair-weather stuff. And the weather just ain't fair.
Further, I have a pet theory that OSS is largely a cultural/generational thing. That is: OSS might have picked up steam simply as the only logical approach to creating software under the long shadow of Redmond. (If you kept the source and make a product, MS buys or buries you. So why not open it up?)
For many OSS projects, their purpose was to compete with stagnant lackluster industry standards and force them to move ahead.
But today's young geeks have no context for that. They haven't seen software monopoly stifle innovation. They take the current competitive atmosphere for granted.
It's much deeper than that. Think AT&T and the Unix source.
Remember for most of this time there was little overlap between the Unix and Windows worlds. A Unix user would no more care about Word and Excel than a Windows user would care about Emacs and FORTRAN.
Back in those days Microsoft developed software on a VAX and cross-compiled it, and had their own Unix, Xenix.
Actually I think most open source doesn't depend on companies paying someone to work on it. I also think that during an economic down turn you see more. But, that's just my experience and (like you) I have no data to back it.
most open source doesn't depend on companies paying someone to work on it
Not directly, but there is a correlation. For example the amount of open source that our shop puts out is definitely related to workload - as we have shed staff, the remaining people start to burn out and have less time for side projects, "personal development", as well as less energy for coding at home.
Our enthusiasm has not waned, but our ability to tap into it has diminished. I don't recommend it, it's bad for morale. Good devs need room to grow, and open source is a great outlet for this.
If you read the article, I'm saying the rise of consumer internet companies who don't keep up the contract is one of the causes. Just because your company does maintain the contract doesn't mean there aren't 100s more who are doing the wrong thing.
And yes "our" enthusiasm (since I'm one of you) has waned. We no longer have community like in the old days, we have a series of fad driven social ponzi schemes where 10% of the people hope to make money and the other 90% are dupes thinking they are.
I'm not arguing with the point of the article (that there are more commercial companies who "leech" off open source) - I don't have the data to argue against that, and in fact anecdotally I do believe it to be true.
I am just saying that if there is a drop in open source, you don't have enough data to eliminate the recession as a significant factor in the decline.
We no longer have community like in the old days, we have a series of fad driven social ponzi schemes where 10% of the people hope to make money and the other 90% are dupes thinking they are.
I think that's a fantastic insight. This is related to the phenomenon of markets that are mostly-all bubble and reputation based, like fashion models. (There was an article posted here awhile ago, but I don't have time to search for it right this second.) The old-school music industry was much the same.
It is also possible that Ohloh's tracking is not perfect. They can't track things that haven't been reported to them, and that process can take time. So I'd expect under reporting of recent changes. (Not necessarily as much as we see though.)
Their tracking is probably imperfect, but it seems like a reasonable indicator. I'm still waiting to see if their data has some flaw, or maybe if github has more.
However, that data wasn't the point, just an indicator.
Nope, nor does it need one. Source comments are weakly correlated with code quality :)
Moreoever, you have to be careful about numbers of lines-based statistics for numpy and scipy, because a lot of code is generated or 3rd party libraries (that are integrated because no distribution has them packaged, not even debian). Also, cloc gives me vastly different numbers, with a lot of comments and all (but again, not very meaningful because of generated/integrated code). ohlo stats are not very reliable in my experience, at least for the packages I am involved with.
Sourceforge? Ohloh collects stats and information from all over, they even have a Mongrel2 project page and I've never set it up. I'm pretty sure you're mistaken about the kind and quality of data they collect, but who knows. Their blog seems to say they track git, cvs, svn, others?
That's also why I mentioned github, they could provide other data (if they weren't too busy inflating their numbers by counting every commit, gists, forks, and duplicate projects as a "project").
They can track almost anything, but require somebody to manually create the project and "enlist" it's source repositories. And because often the person who created the Ohloh project has almost nothing to do with original project these data tend to get stale.
Does anyone know how Oholoh gets its numbers? As far as I can tell, projects have to be manually added; it doesn't appear to scrape them from hosting sites.
Actually, around the time of the 'decline' lots of projects started switching to DVCSs like git. So I guess many enlistments are still pointing to the old CVS or SVN repos where obviously nothing is happening.
The Linux kernel has grown more during the last 2-3 years than ever before. Kernel level stuff is something you can't (yet?!?) host in the cloud, which lends credibility to the original argument.
Linux is also driving the increase in cloud computing though, those web services that are replacing OSS code are being ran on linux, meaning it's really a special case.
Apart from the virtualisation features, I don't see many additions to the kernel that are driven by the cloud computing industry though. Most of the changes are drivers and revamped subsystems.
"revamped subsystems" ... that's where the new circumstances of "cloud computing" have their impact though (and also a bit of general technology churn, but that also has its roots in changing circumstances).
Huge memory, multi-core, I/O (and full stack optimisation for SSDs), network filesystems... all of these huge subsystem revamps are inspired by something.
I think there are two things driving any perceived slowdown in OSS. One is the economy, and the other is platform changes.
A down economy has unusual effects on free time: the less-competent are first to go and most likely to stay unemployed, while the best and brightest will be retained and overworked. This would deprive OSS of much of its premier talent.
We are also seeing a major platform shift on lots of fronts; from traditional desktop computing to alternate form factors(phone, tablet), from big iron to commodity computing, and from C, C++ or Java console or WIMP-style apps towards modernized browser apps, which have an increasingly rich set of options for UX. All of this causes a huge upset in the very gradual process of open-source development and encourages a gold rush of low-tech apps that exploit the new platforms.
I don't think this leads to a "Long Beard's Revenge" scenario, though, as the next thing that's going to hit the browser, now that it's getting more capable, is to make webapps that are client-heavy and cheap on the back-end. Open-source stacks will correspondingly start building up more heavily on the JS end of things. After some time, we'll see more open-source JS apps. And then who knows what will happen?
OSS is perpetually underfunded and overexploited; it's a commons good, after all. And when OSS authors "put themselves out of business" by writing excellent software, they've essentially fulfilled their economic destiny.
But I don't think industry is to blame for the particular bias Zed discusses. It goes back to the state of the economy: Income inequality locks people out of open source, as fully participating in it is a luxury of self-actualization, one which takes lots of time and effort. At the same time, if most of the money in the world is sitting on a few rich people, the best way to get their attention as consumers is to make slick toy apps.
That is, if things were right with the world, our apps would be extremely boring-looking, very useful and functional, and mostly open-source, because that would mean nobody is feeling pressured to monetize their software.
Alternative hypothesis is that many highly qualified technically but not adept at office politics (or other soft skills) people might be let go. These highly skilled people might just stay in "basement" and produce FOSS because of their idealism and lack of other options.
In other words, instead of kissing ass in the office they would rather produce kick ass software on their own.
It's not only about the "Long Beards" in backend programming.
Let's look 10 years back: To become a popular "web company" you've probably had to invest a lot of cash in advertisements. Today strong social networking (blogging, twitter, HN, fb, linkedin) in theory allows the developers/builders/creators/"marketers" direct access to the market without having a middle men and for a few bucks.
So it's all about "full stack self promotion": You've to sell AND deliver awesome quality on a daily basis.
Some good and hard-working will be able to make bigger profits themselves if they learn self marketing skills (=> 37signals, peldi/balsamiq, amyhoy … ) and actually WANT to sell. Many of the old school OSS developers don't want to sell themselves as an "ego brand" on a daily basis. They just want to do cool technical things and get enough money for a living. They are awesome brains but often have autistic-like social/selling skills and a completely different motivation.
Bullshit. They may promote some illusion of quality, but having seen both internet startups and massive banks I can tell you they're huge liars. They're all about the illusion of quality and selling it, and not any actual quality.
Banks collapsed because they had crap IT. This is why Bear Stearns has a 20000% increase (yes, percent) in failed trades in the last two days of their life and didn't know about it. Bad IT also let them create these derivatives and have no idea how much risk was actually in them, hell, how much money was in them.
Startups are going to go through the same thing. They're lack of attention to detail of the total product quality while promoting their "full stack" as if it were high quality is already starting to bite them. I know a lot of these exits you're seeing would have been higher if they had better operations than they do.
So this myopic view that it's all about sales at any cost and "user experience" only does nothing for the industry.
I've seen a lot of IT crap in the last 10 years (retailers, insurances, media companies) but I guess unless you're lifting heavy things (as maybe in millisecond-daytrading, nuclear power plants, defense) it takes a really long time to "let them pay for the crap they do/did" except for high burn or poor fail-startups. IT became more and more a commodity. Quality is nice but doesn't matter unless it's exploding. There are many ways of doing it "good enough" even if it's rubbish from our point of view.
regarding the "ego promoters":
For me it looks like currently the trend is to "migrate" from IT to "Life Coach" and selling your "make money fast" show to the community, which already suffers from the described decline of appreciation. It's like the sales, psychology and stock trading gurus we all know: They have their time and in the end their star is usually waning fast BUT the next one is already preparing to enter the stage…
"Banks collapsed because they had crap IT. This is why Bear Stearns has a 20000% increase (yes, percent) in failed trades in the last two days of their life and didn't know about it. Bad IT also let them create these derivatives and have no idea how much risk was actually in them, hell, how much money was in them."
I think you have a good point, but you're stretching it a bit here. Bear Sterns was dead before the last 2 days of their life.
Bad IT also let them create these derivatives and have no idea how much risk was actually in them, hell, how much money was in them.
You sound like you think the bullshit derivatives etc were an accident? As if the people slicing & dicing bad mortgages into CDOs etc didn't know what they were doing?
I think a better explanation for this is the tragedy of the commons. Do companies want open source software contributions to keep up? Yeah. As long as those contributions are made on someone else's time.
The tragedy of the commons is a myth. It doesn't exist. If it's truly "common" the companies that have an interest in it contribute and, guess what, that's exactly what they're doing: IBM, Oracle, Redhat: everyone pays to have Linux developed.
The problem is that a lot of these "product people" don't perceive themselves as being part of "the commons". To them a lot of open source software is simply something that for some reason exists and can be had for free, not something that took effort to build.
To illustrate that the tragedy of the commons really is a myth, consider the recent complaints against Ubuntu: they were found to be freeloading on the commons of desktop Linux and were reprimanded for it by the other contributors and users of that commons. What did emphatically not happen is that other contributors followed their example. Red Hat continues to develop Gnome, for example, even though they know their work will be profited from by Ubuntu without Ubuntu contributing something back.
I guess I see it as a duty to some extent, plus I get a kick from contributing code. But honestly, the main reason is business. We want other companies to use our mapping platform, which uses route-me. When you get introduced to someone as a "route-me expert," it makes closing the deal about 1000X easier. Companies like Red Hat and CloudMade were built on that principle.
I also think the death of open source is greatly exaggerated. It's natural that contributions would fall off, as FOSS gets more mature, and just requires polish. As it turns out, it's not nearly as fun to polish software as it is to write something new. And there's endless polishing work on all software.
This may be the single reason why open source isn't more dominant - because you actually have to pay guys to do the dirty work at the end, or they'll go back to hacking something more fun.
> Consumer internet companies however are just not bothering with this. They frequently will use software and then slander the author of it claiming it's "crap".
I seem to remember a certain Debian article along those lines.
I do not use Debian. I have Ubuntu on a laptop to support my user base who use Debian, but I run ArchLinux, Fedora, FreeBSD, NetBSD, and OSX on all my other computers and servers. I also don't make money on these systems, or I pay for them, and I contribute back extensively. So don't compare me to the likes of Meebo and Twitter.
I also consider Debian to be exactly like these companies who take my work, butcher it, then pass the support costs and blame on to me. Considering I am a prolific contributor to the open source cause, and I've never butchered a Debian package when they've butchered my software, I'm completely justified in criticizing them for their actions.
It seems to me that distro packagers help lower the barrier to entry for would-be open-source developers. Even if your autoconf-based, or pkgconfig-based, or cpan-based, or gems-based project only builds half the time (the "works for me" release model), distro packagers (Debian included) make sure it builds and works for a large user base and on architectures the upstream developer might not have access to.
Respectfully, it is better not to criticize open source developers and maintainers publicly if you want more/better open source software. Everyone gets frustrated and at a certain point people take their toys and go home.
Criticism is fine, as long as it's respectful and constructive, which were two things that were in very short supply in Zed's Debian rant.
Also, Zed writes:
> I also don't make money on these systems, or I pay for them, and I contribute back extensively. So don't compare me to the likes of Meebo and Twitter.
Debian makes no money on its systems, and contributes back extensively too in many cases. So comparing it to the likes of Microsoft and asking for people to "attack" it was really uncalled for.
A web framework let you work on the back-end, but had the interesting quality that anyone who used it pretty much had to admit it or contact you.
I wonder about this. Seems like there are plenty of rails / django / joomla sites out there, but not sure how many proudly display the "Powered By" badge, or contribute back.
The rails-core guys would frequently hit a site, and then pull down the rails logo they silently dropped into everyone's directory. That or they'd look for Mongrel headers. Also, eventually all the employees at these companies leave and then you hear about who's using what because the employees tell you.
That's different than say a web server or chat protocol where you don't have to say at all what server it is, and it's usage is just about configuration rather than daily coding on it. With infrastructure nobody should really be talking to you if you've done your job right.
I don't know if this is specifically the reason, but PCI compliance requires you to hide the version number of your server software to make it harder to trivially scan your infrastructure. They may have considered this a website saying what framework they use to be a similar risk.
(If you consider that a dubious security measure, well, I'd be the wrong one to take it up with.)
I agree with most of the points in the article, but I'd point most of the blame on the rise of the Mobile Apps. Those who would have been the next generation of open source programmers are instead releasing closed source apps. Some of the reasons are the same as Zed points out (lower bar for 'making a company out of it') but some of the direction comes from the corporations backing the App Stores and selling the mobile devices.
For many common tasks, there are a plethora of Apps out there the do pretty much the same simple thing, in a mostly functional but considerably klunky manner. In the open source world, one of these would take the lead, incorporate the best features of the competitors, and then developers would pitch their efforts behind the winner increasing the lead even farther. Instead, every week there's a new closed-source work-alike.
It feels like a regression back to the pre-open-source days of shareware. Instead of a pooling of efforts, everyone is duplicating the work that's already been done. Instead of building a solid foundation, there's a glorification of throwing something together in an afternoon from "premade parts" and "stock libraries" --- perhaps they grow on trees --- and putting it out there for sale.
Android is considered the more open environment, but on my Linux based Android phone, I don't know if there are any open-source Apps that I use --- maybe the Camera is stock? In contrast, on my desktop (also Linux) I can't offhand think of any programs I use regularly that aren't open source (I guess Flash, if you count it as a program).
I don't think this is by accident. Why for example does Google have such a lousy closed-source email App? I feel certain a forked open-sourced version would be vastly improved within weeks, and anyone who didn't think so would still be free to use the original. Believe it or not, it's actually reasonably common practice to disassemble an App like this to byte code, and then try to patch this and reassemble it into a working App. (http://code.google.com/p/smali)
At one point I thought it was the phone companies that were setting this course, but now I'm not so sure. Microsoft tried to kill off open source through FUD and marketing, but surprisingly they didn't have the clout. But now Apple and Google might just kill it off by creating a thriving business for 99 cent Apps --- because who's going to release the source for a whole afternoon's work when someone might just steal it and put a closed-source version up on the App store and maybe become a millionaire?
No, I'm referring to the Google Gmail app. Although Google owns Android, there is a large distinction between the open-source Android base and the closed-source Google apps. K9 sounds like a fine improvement over the stock email app, and an example of what would happen if Google would release the Gmail app as open-source. Yet they choose not to --- why?
I modify every contract I sign to include stipulations for open-source software.
Most companies couldn't care less about releasing bits and pieces of their code base as open-source projects.
Business schools have been preaching to students for decades about how marketplaces have become consumer focused and not product focused. They already think that the really important part of doing business is to focus on finding out who wants what, regardless of what the product is.
As a developer, it is your prerogative to ask! If you run in to any hesitation from the higher-ups, just work on it for a little bit... it probably isn't going to run against their "big picture" objectives.
Could you clarify more on this? What stipulations do you add? To me it seems like there is a lot of legal risk to giving an employee the ability to release code, so they just put everyone under a blanket clause that says no to open source.
For one, I list open-source projects that I contribute to and plan on using and enhancing as part of whatever business objectives I'm being hired to work towards.
Also, I add in a clause that states I will more than likely release aspects of the project under an open-source license. Nothing binding, but I like to have it in writing on the same piece of paper that ensures I get paid for whatever I do. Their lawyers always find a way to bill a few hours worth of figuring out the language. :)
The only thing I ever get from people is something along the lines of "hmm, we don't normally get this request, but no one seems to have a problem with it."
Development teams and managers love it because it means you're writing nice, modular code.
I've never had anyone take issue when, instead of burying some specific bit of functionality within business logic, abstracting things out to a library. In fact, most people would agree that that is good habit to have. ;)
When it is finished you just talk to someone up the chain about releasing it. Normally saying something along the lines of "hey, we might get people who don't work for this company enhancing this feature for us" really helps to sway their decision in your (and my hippie-dippie share things for the greater good) favor.
Here's the language from a recent contract:
-------------
4 . Ownership.
A. Assignment. Consultant agrees that all copyrightable material, notes, records, drawings, designs, inventions, improvements, developments, discoveries and trade secrets
conceived, discovered, developed or reduced to practice by Consultant, solely or in collaboration with others, during the term of this Agreement and arising out of or in connection with performing the Services under this Agreement (collectively, “Inventions”), are the sole property of the
Company except that Consultant may contribute certain modifications to Open Source projects as set forth in Sections 4.A.1 through 4.A.3. Consultant also agrees to assign (or cause to be assigned) and hereby irrevocably assigns fully to the Company all Inventions and any copyrights, patents, mask work rights or other intellectual property rights relating to all Inventions.
( 1 ) Open Source Projects. A software project is said to be an Open Source project when its project materials such as source code are published publicly and its software license permits the combination of project materials with other software project materials without fee and commonly with no or limited exclusivity or other limits on use.
( 2 ) Combined Projects. Consultant may from time to time in the course of performing Services and subject to approval by the Company use Open Source projects exclusively licensed under the MIT License to develop Inventions. During and after the use of Open Source projects, Consultant may add, change, improve or otherwise make modifications to Open Source
project source code or other materials and may contribute these and only these modifications to the Open Source projects provided that these modifications do not contain Confidential Information and subject to the terms of the applicable Open Source project license and the project’s administrative rules.
( 3 ) Notification of use. Consultant has attached hereto a list of Open Source projects that Consultant may use to create Inventions and to which Consultant would like to contribute back non-confidential modifications. Consultant will provide prior written notice to the Company prior to using any additional Open Source projects to which Consultant would like to contribute back non-confidential modifications; and such use shall be subject to approval by the Company.
Our standard employment contract contains a clause saying that while IPRs of all software produced go to the company, the company will release all of it under OSI-approved open source license, and will maintain the developers in the authors list
One difference that I notice in FLOSS contributions, is that a lot of the Web 2.0 company/founder/programmer input is in the form of the pieces of software, quite often reinventing the wheel a tad bit. Probably because contribution to the bigger existing projects takes a lot of time that startup members don't have, and frankly, is often beyond the usual skill level of a lot of them… (inexperience, wrong language etc.)
> I believe, and you'll call me crazy, but the indicator for this second trend will be a focus on automated testing (not just unit testing)...
I get that for most companies that are developing software it is to support some other profit center and not their primary focus. They hire subpar engineers because that's all they really need (and they're not compitent enough to tell the difference), so a lack of automation in this context, especially test automation, is not surprising to me in the least.
But the idea that you would have a software based profit center that isn't automatically tested, especially with the competitive nature of the web requiring rapid turn around on features, absolutely blows my mind. Are people firing from the hip and hoping nothing breaks or clicking every link on your site? In which case you're either way too overconfident in your own abilities or have no value for your own time.
>I believe, and you'll call me crazy, but the indicator for this second trend will be a focus on automated testing (not just unit testing) and operations cost at consumer internet companies. Right now I think maybe 5% or 10% of consumer internet companies even run one bit of test automation, hell automation at all. Look for this as an indicator that they've figured out automation reduces costs and increases agility.
http://saucelabs.com/ is a company I know of in this space, but their product SUCKS (on Ubuntu/Firefox at least) and they didn't respond to my complaint emails (or fulfill their promise to remind me to cancel my trial subscription before I had to start paying for it). If someone wants to do automated browser testing right that would be awesome.
Not the founder, but one of the core committers does (full-disclosure, I also work @ meebo).
http://developer.pidgin.im/wiki/MarkDolinerhttp://www.meebo.com/team/ <--- look for the guy called "The Pidgin Guy".
That list is sorted by start date ... mark's been @ meebo for over 4 years now.
Another aspect that may contribute here is that more and more FOSS developers are doing it as full-time paid employees of big companies. When you move from intense, motivated programming to the conservative and meeting-full corporate environment, your productivity is bound the decrease.
I might be wrong, although I have a feeling that recent slowdown of opensource contribution is caused (at least sometimes) by the maintainers/commiters and "core teams" behind projects. You can check HN/Stackoverflow/Proggit/Forums for "how to start contributing to opensource". Answers are similar: find yourself a project, and be active there. But that's not that easy, most of time, due to time and knowledge boundaries.
Sometimes it's not like that. There's a lot of friendly people, who encourage newcomers, and realize that if they opensourced something, it's not theirs anymore, it belongs to community. I just wish there were more people who're that friendly and involve more and more team players to get stuff done in their projects.
For instance, i have some feature for my product, that requires extension of the framework I'm working with. My actions are following:
check whether it's already done -> ok, not done -> build a simple prototype, proof of concept -> go create an issue / start discussion / show your prototype to maintainers or community.
So, after the last step most of time i was getting stuck. Either I'm doing stuff in a wrong way, but most of commits that were followed by the same path, weren't getting through. First maintainer sees it, says that we won't do it since that's not in our primary field of interest, and closes the issue. Reopening and trying to involve more people into discussion doesn't lead to the success, since dominated opinion was already stated out, and people tend to agree with people they know and trust.
Second approach. Fixing the issues you're facing. You're using some stable version of software (not cutting-edge), and notice that something went wrong. First google request gives you a link to a patch. So, your work is not required anymore. If it didn't, you still should write a unit-test and prove that that stuff was caused by framework, not your software bundle. Having not much or no open source contribution makes that process long. If not - you succeed and provide a patch or wait until someone fixes it in a better way.
Third approach. You don't have any features that you lack, and you didn't face any unfixed issues during development. But you want to pay back to the community, since you're thankful. You go to the bug tracker, and try to find a suitable bug for yourself. Often by the time you come up with a prototype, gurus already get it fixed. So, you're out of process again. You should really dive into that and spend long hours to get to know source code very well first, get acquainted with active people there. It's never been easy.
Same as with layoffs, big corporations can use the "global financial crisis" to scale back OSS work if there only motivation was to not look like the bad guy.
Personally I see what's going on as just regular capitalism at work. A new thing was discovered (the internet) and people tried different ways of exploiting it to provide value. One of the tools people used was loss leader [1]. Now people seem to be putting less faith in the loss leader strategy for various reasons and switching back to a "pay up front" or "pay as you go" model.
It's true that a lot of companies have been consuming loss leader products but not the products that cover the costs (e.g. not giving the creator of the software a job, not purchasing an upgrade, etc.). This is equivalent to buying milk and nothing else at e.g. Walmart. They wont stop you. They probably don't even have a provision for people who buy nothing but milk over and over. They don't need one because they've spent a long time developing techniques to make sure you wont do that. In fact, if someone did start doing that it would be a good indication to the company that they need to adjust something. The internet hasn't been at this nearly as long as retail so it's no surprise that a feeling out process is going on.
Existing (stable) software has a very tangible value. With it you can accomplish much more than without it. You can take on more contracts and/or charge higher rates than you could without it. I think the fact that developers have previously been able to provide complete products by taking a smorgasbord of loss leader items and bundling them together with a little bit of their own glue was a market oversight that is now being corrected [2]. We can still be profitable if paying for the software we use. What would e.g. a home builder do if nails he used to buy at loss leader prices were suddenly priced at a profit? He wouldn't go out of business, he would pass the costs on one way or another.
Of course one could say "but I did pay them! I contributed 10 patches!", but this doesn't work because what happens if all clients "pay" this way? You have to have some way of enticing clients into buying your other products (e.g. hiring you into their company, etc.). In retail this works out ok in practice because companies tend to all do loss leader on the same things (everyone does milk for example). In software we're not all selling the same product so you can have situations where developer/company A has best-in-class product X as loss leader and product Y for a premium, while developer B has best-in-class product Y and sells Z for a premium. External parties take X from A, Y from B and Z from a vendor that is able to sell it cheaper because they aren't using it to cover losses on some loss leader product.
I think a lot of people have been blind to what's actually been going on because there has been (for a lack of a better phrase) religious zealotry involved. People saw (and participated in) "free software" and assumed that everything was changing. It was a bold new world where everything was going to be free! Except rent, groceries, etc. [3] It wasn't. It was just plain old capitalism that existed before we were born and will almost certainly still being going on after we're all dead.
[1] Give away your code and get one or more of:
a) a job based on your proven expertise (e.g. Alan Cox)
b) a paid contract for providing support (e.g. Redhat)
c) more traditional loss leader model of giving away part
of the offering while making the costs up elsewhere (e.g. "freemium", etc.)
d) advertising with the free product
[2] This would be equivalent to Walmart doing loss leader with meat, Safeway with bread, Target with vegetables, Home Depot with tables/chairs, Hobby Lobby with plates/silverware and us opening a hamburger shop.
[3] This isn't to say that e.g. the free software movement doesn't have a good moral foundation. I think they do. It was just never realistic to think that software can join this global gift economy while nothing else does. It would also be very unrealistic to think all other industries would look at what was happening and say "gosh! Lets give all our stuff away free to!".
I hate to be so snarky, but if you’re going to use a font for your headings that is so big the apostrophes are 20×20px, you might as well use proper quote marks instead of ASCII primes.
I think if committing has decreased over the past couple of years it's probably due to the so-called 'global financial crisis', I guess people have to work more and don't have so much free time to hack on open source.
Great, that's their prerogative... its MIT licensed software. But I can tell you, after this sort of interaction for years, I no longer invest my time in Orbited, and instead I bill $250/hr to share my expertise with consumer facing internet startup companies.
One actual data point to add this discussion anyway.
[ edit for spelling ]