Tales from the jar side: Subscription Income, and Gradle
Welcome to Tales from the jar side, the Kousen IT newsletter, for the week of Jan 12 - 19, 2020. This week I taught a JUnit 5 class on Safari and the Introduction to Gradle course from Gradle, Inc, and worked on my Managing Your Manager book. I also had a new online course approved: Kotlin for Spring Boot will be offered on Safari in the next couple of months.
Before I get to any of that, in the last newsletter I mentioned that I was on vacation last week with some friends who were enthusiastic board/card gamers. A couple of people asked me which games they liked. Here's a brief list, as best I can recall:
(All links go to the BoardGameGeek review web site rather than the original publishers, just for simplicity)
- Skull
- Azul and a couple of its follow on titles
- Hive
- Unstable Unicorns
- Spendor
I'm not a gamer myself, so I didn't know anything about them before we played, other than Azul which we played in previous years. I know several other games were brought along, but those were the ones I remember. Make of them what you will.
The open source tool Gradle is backed by the company Gradle, Inc, which licenses to businesses a major product called Gradle Enterprise, which presumably runs Gradle on starships.
(Rimshot. Okay, I'm as eagerly waiting for the new Star Trek: Picard series as anyone )
The business model for open source projects usually comes down to service income: you make money by giving away the product, but selling training, customization, and support contracts. That, for example, was why MySQL was sold for $1 billion to Sun (now Oracle). The problem with service income is that it scales with the number of people, because you need workers to provide those services. As a service-based business myself, I get that. There are only so many hours in a day, and only so much you can charge for them.
The ideal, therefore, is to have a product to sell. That way you can wake up in the morning and say, "I wonder how much money I made last night?" Many open source projects try to go that route, often by selling an enhanced version of their free product. That also allows a company to create a "moat" (in business terms) between them and their competition.
(Interesting side point I saw in the Stratechery newsletter this week: Uber may be making a serious mistake trying to replace drivers with self-driving cars. Sure it would reduce their costs, but it also eliminates their moat. If they can contract self-driving cars, so can any other company, and then what do you need Uber for? If one company had "superior" drivers -- whatever that means -- that would provide protection from competition. It's an interesting argument that never would have occurred to me.)
One of the newer approaches to making money these days is subscription income. If you can convince users to send you dollars every month, especially using automatic renewals, you've got a guaranteed income stream. This combines very well with the Internet and its zero-cost distribution model. In the "real" world, we're seeing a major rise in online streaming video services, including Netflix, Hulu, Disney+, and CBS All Access (home of the aforementioned Picard series). This week NBC/Comcast had an investor call about their new "Peacock" service, which sounds abysmal based on the advertising model they intend to push.
I have a handful of newsletter subscriptions, chiefly to Stratechery for tech news, Joe Sheehan's newsletter about baseball, and the new Good Morning It's Basketball (GMIB) newsletter that used to be free from SB Nation but became a commercial product when the author was driven out by the new AB5 law in California. That's the law that was intended to fight how big tech firms exploit their workers by treating them as contractors rather than employees, so they don't have to pay any benefits, give vacation time, pay unemployment taxes, and so on. The unintended ramifications of that law have been devastating to people who report news stories, or truckers, or several other "independent" categories of workers.
I was briefly concerned that I'd run into that problem, too. After all, O'Reilly Media owns the Safari platform, where I teach a lot of courses as an independent contractor, and their headquarters is in California. I don't think it's relevant to me, though, partly because I'm actually a corporation (an S-corp to be specific). Nobody has mentioned any issues to me so far, at any rate. Maybe this newsletter will bring unwanted attention to that fact and next week I'll have a different story to report.
Speaking of subscriptions, I subscribe to several free newsletters, too. One of them, from baseball and movie writer Will Leitch, recently moved to the Substack client service because it lets you publish both free and paid versions. His newsletter is still free, but at least now he has the option of moving to a paid model. The GMIB newsletter also uses Substack.
The Substack front page says that if you have 800 subscribers paying $7/month, then you could be making $4440 every month!
(When hearing opportunities like that I'm always reminded of the original Muppet Movie. Doc Hopper, who wants Kermit to be the spokesfrog for Doc Hopper's French Fried Frogs Legs, says, "there's $500 in it for ya! Play your cards right, and you could be making this much every year.")
Somehow I suspect that if I started charging my subscribers $7/month, I'd be very lucky to make, um, roughly, $7/month. So don't worry about me going that route. I'm still very happy that any of you are willing to read what I have to say each week. That said, I may move to Substack soon, because it looks like their editor is much better than my current TinyLetter client at including links to tweets, videos, and more. Fortunately the Substack people make the porting process trivial, so nobody currently here would be affected. New subscribers would have a different link to go to, but that's it. I'll let you know.
The big problem with basing your business on subscription income is that users will only subscribe to so many services before they run out of money. That means it's yet another exponential model -- a few dominant clients get everything and everybody else starves. To be profitable you either have to get in early, or be much better than everyone else, or both. That's a tough job, though very lucrative for those few at the top who make it.
Getting back to Gradle, the philosophy at the company appears to be* that the more users of the Gradle build tool there are in the marketplace, the larger the potential market will be for Gradle Enterprise. It's therefore worth it to them to host a free introductory class online every other month, even if it doesn't result in new enterprise subscribers directly. At least, that's true so far. The number of attendees has been getting smaller over time (again, my own impression; I don't know the actual numbers), so we'll see at what point they decide hosting the course no longer worth the expense.
*Disclaimer: I work for Gradle as a contract instructor. I don't have any insider information on plans or strategies.
The class went well, but there was one unique quirk this time around. Between Day 1 and Day 2 of the Gradle course, the company released a new version of the build tool. Gradle 6.1 was announced Thursday morning, and my class was Wednesday and Thursday. As usual, the SDKMAN package manager I use notified me before that, so I updated my local version before class. Since the update was a "dot" version (from 6.0.1 to 6.1) and not a "major" one, I assumed all the exercises would still work, which seemed like a reasonable gamble.
Of course, I told the students about it. "How dare the company value getting a new version into the hands of their users more than the fact we're in the middle of a training course," I said, or words to that effect. Everything did still work, though, so no harm done. :)
I have a bad habit of updating software at the last minute, btw. Whenever I'm notified of a new version of some software I'm using, I feel compelled to update it right away. This software roulette approach can be dangerous. I remember at one NFJS conference I was notified by Apple that an operating system update was available ten minutes before I was scheduled to give a talk, and clicked OK without thinking, not realizing the update itself was going to take longer than 10 minutes. I had to do some quick tap-dancing when the presentation started, without slides because my computer was still locked up, but fortunately it came back shortly afterwards.
Since then I've become somewhat more careful. I've stopped updating my development environment the morning before training classes, and I don't use the beta versions of products. After all, if you're on the bleeding edge, you're liable to get cut. Still, it's a hard temptation for me to resist.
The JUnit class was fine, as usual. I really like that version, and I have a decent set of examples to work from now. It's been a while since I've gotten a question I couldn't at least address, which is good.
You don't need to consider that a challenge, btw. I'd rather risk being bored by answering the same questions over again than have to figure out something difficult on the fly. Actually, that's only partly true. It's just that my goal in any training course is to have all the answers to all questions immediately, and that's a rather high bar.
Geez, if I can pull that off, maybe I should be asking you to subscribe. But not yet. :)
Last week:
JUnit 5 Testing online at Safari
Introduction to Gradle online for Gradle, Inc.
Editing a couple more chapters for Managing Your Manager
This week:
What's New In Java online at Safari
Private onsite Groovy Programming class. Should be really fun, though it requires driving to central Pennsylvania