Suspending efforts on my #riba2016 crowdfunding campaign, looking forward to my own Xmas
( If you want the text below narrated instead - watch the video, there is also an alternative comment thread on reddit )
On the 1st of October I launched a daring crowdfunding campaign. I asked over thirty companies directly relying on my open source work to split a rather modest bill, allowing me to exclusively focus for at least a year on several key parts of the Perl5 library repository (CPAN). Two months later, after a really promising start, the campaign is effectively dead.
I made multiple mistakes in the early stages, but on reflection there was one overriding problem - the narrative was severely out of focus. I tried so hard to put myself in the shoes of a potential sponsor, and focused so much on justifications and individual deliverables, that I omitted the very reason for my actions, the very mission so to speak for which I gathered the courage to seek funding. Nor did I make it explicitly clear that presently I am one of the very few if not the only "heavyweight maintainer" pushing for serious cultural change within Perl5's inner circle.
You see, for quite some time the main "Export of the Republic of Perl" has not been the rather clunky language itself, or its promise of TIMTOWTDI and "whipuptitude", nor its aging libraries, nor heaven forbid its community culture. In today's actual real world Perl5's only advantages, placing it light-years ahead of the alternatives, are its stability and ubiquity.
Over the past year or so it became painfully clear to me that the current course collectively taken by many central stakeholders threatens the ecosystem unlike anything I have seen before. It became painfully clear that without confronting and reversing this trend, any and all work I do within Perl5 is a waste of what little skill and talent I possess. It became clear that the stream of compromises and half measures is no longer sustainable.
Earlier this year I dedicated a scary amount of time getting the most prominent technical contributors to address some of the most pressing issues. My efforts fell embarrassingly short. At present the only remaining thing to try is "eradication by example". By gathering everything I know about inefficiencies during installation, compilation and runtime, and putting together a secondary, minimalistic dependency chain for a major project. By painstakingly measuring and documenting every point where current CPAN offerings fall short. And in the end by doing the thankless soul-crushing legwork of engaging with often outright malicious maintainers. Forcing their hand to incorporate the sorely needed fixes to our fundamentals. I believe that such a targeted effort has a small but tangible chance of reversing the "change at any cost" mentality currently raging at the lowest levels of CPAN.
This is a massive undertaking, with a time to a "minimal viable product" of at least 4 to 6 months. I lack this time, or more precisely the funds to survive while working on this. But more importantly I lack the "userbase mandate". A mandate to steer the core Perl5 technical community even more forcefully toward solving problems it explicitly marginalized. I tried to secure both missing pieces via this campaign, by targeting who I believed will benefit most: lead engineers at large companies. I gambled that their frustration with our ridiculously over-engineered library commons, combined with a hefty list of promised new features would make the tilt a dead-easy sell within a company.
So far only 2 such large enterprises answered this call to arms, accounting for just $8,000 of the nearly $30,000 pledged to date. The rest was contributed by two relatively small consultancies (Henry, Andrew, a special THANK YOU!), and by over 40 individual developers - my friends and peers. These numbers are really troubling, most notably the surprisingly small portion of corporate pledges. By now it is clear that the campaign completely missed its target audience.
I can not blame my peers for not recognizing the dire situation we are in. Similar to the sorry state of the web as a whole: things went downhill so far and so fast, that the mere memories of better experiences as recent as 3 or 4 years ago, seem like science fiction. If anything, the fault is mine for acting too late.
With all of the above in mind, it is time to move on. I am suspending all future effort on this crowdfund, and instead will use the very little remaining free time on one last set of releases of DBIx::Class and the underlying SQL::Abstract and SQL::Translator. The tilt campaign itself will remain open, in case there is an unlikely appearance of an "angel donor". I am, however, changing the deadline to the 25th of December, so that all refunds take place in the same calendar year.
In 3 weeks, on Christmas Morning, I will effectively leave CPAN. I will transfer my FIRSTCOME permissions to perl developers of my choosing, and will relinquish all COMAINTs I hold across PAUSE. Partially I want to do this for the psychological comfort of a "clean break", but an equally important practical aspect is protecting the quality of the libraries from any conflict of interest with future employers. Of course this only serves to remove me personally as a "quality attack vector", and does nothing to protect the userbase from my successor. Sadly the ecosystem does not yet offer a mechanism to mitigate this.
I sincerely thank everyone who supported me, even before I got my own thoughts straight. I really wish I were a better bet.
Does this mean you are completely leaving the Perl community and will no longer be a Perl developer?!?
Does this mean you are completely leaving the Perl community
As a contributor to CPAN libraries - yes. I might still end up doing things within App::, but other involvement would be contrary to "walking the walk".
and will no longer be a Perl developer
There is difference between Perl developer and Perl OSS developer. This writeup applies only to the latter.
If you think you cannot find a job that will sponsor your time on important (OSS) modules, I think you're wrong.
If you think you cannot find a job that will sponsor your time on important (OSS) modules, I think you're wrong.
This is a nice thought but it conflicts head-on with my experience.
Sorry this didn't work out for you. So much of the failures of the last few years has really lead to me wonder if the age of community driven free/open software is over...
I understand you're need to step back, I've recently been going though something similar with my involvement in Catalyst, and sometimes stepping back and getting away from banging your head on a wall gives you some time to clear the mind a bit. You definitely need to be happy and do what is leading you to personal fulfillment. I know we've not always agreed on technology choices, I know you value deep stability whereas I think stuff needs to evolve to keep pace with the wants and needs of current developers, but I've always valued having you as a peer. Hopefully that will continue into whatever open possible open source communities we find ourselves in the future.
Thank you for the kind words John!
I was indeed really sad to see you pushed out of #catalyst some weeks ago. Can only echo your words re "hopefully things will continue" ;)
I am sure things will find a new path that works, you're super smart!
Since this is a public channel I wanted to reply regarding #catalyst, I don't think I was pushed out, but just pushed in a way I didn't have energy to deal with, given all the things going on in my personal life. I don't feel I have the energy to deal with what feels like a broken communication and community process to me regarding the project, and that overlaps with my feelings about Perl in general right now. Its more than I can deal with. I logged out because that was what I felt I needed to do.
Take it slow, I'll be as OSCON this year just FYI
I share in some small way your disappointment. This does not augur well for Perl, as your presence on CPAN will be missed.
What with this campaign failing, I do not understand why my pledge was triggered: the pledged amount was deducted from my checking account yesterday. Given that I was to be billed if and only if you reached the goal, can you explain the charge to my account?
P.S. My contribution would not have made a material difference, but I was planning on "doubling down" :
Thank you so much for your contribution. The campaign triggered due to an internal problem in the tilt system. The resolution is ongoing. Please read more here
Sorry once again about this :(
I think if I had seen this explanation, rather than what I saw on the campaign page, I would have tried to get a donation from my company. Much of that was about was about DBIC and SQL::Abstract, which are great products that we should be using -- but since we aren't using them to great degree, it was hard for me to make a case. So I just donated a bit personally.
But reducing dependency chains is a worthy goal, and one that should improve everyone's life. And one I wish you had made a bigger effort to promote that aspect of your proposal on the campaign page. Because I'm more of a sixer by nature, I completely missed the subtext of your campaign that I would have picked up on had I been more involved in CPAN.
Different companies have different budgeting processes -- perhaps this would have worked better with a truly long fundraiser time.
As it is, I upped my donation by an order of magnitude, though it's probably too late. Anyway, I appreciate all of your contributions.
P.S. You really only have 35kUSD in debt? I can beat that easily!
How can I communicate with you in a non-public forum? Can you please send me a message? (No I'm not trying to make you change your mind, I just want to talk.)
irc.perl.org #perl11 willthechill
william DOT braswell AT autoparallel DOT com
I think if I had seen this explanation...
Arriving at this sort of clarity took me several years, left alone being able to put it into words. I feel in the end it's for the best, less tension on all sides is not to be underestimated.
perhaps this would have worked better with a truly long fundraiser time.
Hmmm... longer than 3 months? That's... an interesting thought for whoever attempts to do this next.
You really only have 35kUSD in debt?
Hehe. Well, I didn't get a chance at higher ed. so that probably helped ;P
I would add some general thoughts on fundraising, if we are talking about that, and maybe to some degree trying to write a lessons learned here that would be of value to anyone else that tried in the future. I worked for some non profits in the past that always did big fundraising so I do have some hopefully useful information:
1) Fundraising is like running a political campaign, you are always doing it. You need to treat it like a big marketing project. Always have your 'elevator pitch' ready. Its a marathon, not a sprint.
2) Rich people and companies don't contribute because its the right thing to do (even if it would help them be supporting projects they use). They contribute because fundraising is a prime way of measuring status between the uber rich, and its a primary tool they use to network with each other to improve their positions. That's why when you hold a big fundraising event its never really about supporting the cause its about getting rich people together in the same room so they can network. Inviting a few important people is helpful, people pay a lot of money to met a Clinton or a Mandela, so they can give those people much higher than themselves the 'elevator pitch' they have ready for the big new project they've been dreaming.
3) Asking for more is better than asking for less. Same reason why Amazon charges for Prime, they want you to think its something valuable.
4) Its easier to raise money off people than corporations. Remember a company has to answer to stockholders when they spend money, people can do whatever they want with there extra cash. It goes back to item 2, people donate because its a way to improve their person position, allow them to network with similar people of economic status, and give them a change to get in front of even richer people with there big ideas.
The other thing I recall is that a good way to get started is to get grants from existing non profits, because that makes you look like a winner to people for when you go to run the real, big fundraiser. The advantage of grants is that its really just paperwork and time. You don't get a lot of money that way, typically, but it lets you develop a portfolio of success in convincing people to give you money, which makes you look a lot more viable later on when you go to run the real fundraiser. Partnering with someone in academics that is good at grant writing is really helpful. It takes a team to do this.
Best of luck
I look back on many meetings with you, formal, informal, and otherwise. Most of the meetings taught me that you are very smart, and often not very diplomatic. Not being diplomatic does not mean that you weren't right. I am not a good coder, and you are, so it's not up to me to decide how right you were on proposals to change code. I do marketing in a shitty way, and I'm not the greatest diplomat of this world, so it's not up to me to decide how right you were on proposals to change policy or marketing. I do know it has almost always a pleasure working together with you, and I do thank you for the help you gave. Plenty of help. You are generous with your time. And I do hope I will meet you often in the coming years.