I quit OSS
Amazingly comments are enabled on this (for now)
Last month (24th Jan) I took to taking down my Codeplex and GitHub accounts. My Codeplex account didn’t actually contain anything recent, but deleting stuff off there is a nightmare - you have to contact Codeplex staff and hope that they’ll do something about it. I tried about a year ago to do that - at least to delete some migrated/abandoned repos, but after the initial ‘sure, we’ll delete it for you’, nothing happened.
I digress - I’ve “quit” OSS. By that I mean my involvement in all projects I’ve contributed to has ceased - any that I “owned” have been taken down (save one, more on that further down). Several of the apps I’ve released in places like the Windows Store will continue but as closed source. Free, but closed.
So why did I quit?
There are actually many reasons, but they all boil down to the one thing - OSS ‘work’ had become unfun. At my heart, I’m a dev and I enjoy programming, but OSS was sucking the life out of it. I’ve taken up new hobbies (woodworking currently) to escape from OSS. That doesn’t sound particularly healthy, does it?
Ultimately I looked at the situation what do I want out of OSS, and what am I getting out of it? The answer being:
- to code
- stress, pain, rage.
OSS is great for your job prospects? I’m a hobbyist programmer. I’m unemployable. I have nothing to gain from sharing my code.
More details
If you’re running an OSS project that anybody else has looked at, you’ll know that it isn’t just code.
- There is documentation - lest people get annoying and hostile,
- There is a “website” - lest people get annoying and hostile,
- There is pushing releases - because people can’t compile releases themselves, that is too fucking hard
Then you can get to the almost code related things. There are then two major problems - issues and pull requests. Well, people are still the problem as at their core I have nothing against issue tracking or pull requests, but it is always people who get in the way and make things messy.
Note, this is a generalisation, not all people are bad. Just most of them.
Issues for my primary projects came in a few varieties
-
“Help how do I do X?” - in 80% of the cases, it was answered in the documentation that is launched every time you install the project. Another 10% of cases were always basic programming/framework problems - that is, not to do with the project in question.
-
“X is broken!” - I think maybe three times I’ve received an actual bug report with a repro. Maybe 50% of the time if I asked for one, after a few days/weeks/month (not kidding) I’d get a response of “oh, it was my code”. Another 30% of the time I’d get “whats a repro? A screenshot or something?”
-
“Broken! X! XXXX! XXXXXXX!” - My favourite is duplicate issues. Exact wording duplicates are the best, but at one stage I had three identical issues all with sequential IDs. The target/end user for this project is developers. If they can’t figure out issue tracking, what hope is there?
Pull requests are a monster like no other. Scott Hanselman has noted how ridiculous receiving pull requests that are a wall of line endings are, but I have had some truly awful pull requests sent my way.
My ‘favourite’ was from somebody complaining that I didn’t have a dotsettings file (settings file for Resharper) included in the repo, after I knocked back another one of his pull requests that changed every single file. He ‘helpfully’ submitted a pull request with a dotsettings file, but with no explanation of what settings it actually set. A short list (there were waaaaay more things included) included
- Regioning the hell out of the place
- Changing all the colours in the VS IDE to his personal preferences
- Setting line wrapping to a width he liked
- Changing the license from MS-PL to GPL, and to his company name
Surprisingly, I rejected this PR and he wasn’t overly happy. PR after PR was submitted slowly removing settings until I told him to just stop. He demanded that I provide one that I was happy with.
While an extreme example, not too far from the norm.
Ilya Grigorik sums it up best in what I consider a critical article for anybody involved or wanting to get in to OSS should read - Don’t “Push” Your Pull Requests. The comments on code reviews in that article represent what would be a wonderful PR - something I may have received half a dozen (out of hundreds) times. OSS PRs - at least to my project - are consistently
- Lacking an actual useful description, if they have one at all
- Changing the code styling - No regions in the project? No problem, I’ll add them all back for you!
- Any time they’re changing visuals - particularly around animations - there would be no visual indication of what had changed.
- Random ‘refucktoring’ changing code that isn’t understood as part of the PR to ‘help’
I used to think Linus Torvalds was a little crazy for not accepting GitHub Pull Requests, but given my experience with OSS/GH pull requests, I’m having a hard time faulting his stance.
OSS community thinks you owe it something
The OSS community in general seems to believe that whatever you publish online is owed to them. While I had dozens of projects online, only a few were popular and even then only one stood out amongst them all - MahApps.Metro. When that was gone, eventually people noticed that I was ‘gone’.
GitHub staff were offering to “help” me restore my account. I capitulated and let them restore that so ownership could transfer to Shiftkey.
It isn’t what I wanted, I just wanted to get rid of everything and move on with my life, but it is how it is.
This isn’t the first time you’ve quit…
No, but this is the final stroke for OSS for me. This time won’t result in a name change or dropping my blog (the brief period it was down was while I was finding a non-GitHub webhost).
Last year I quit Code52. Again, it was people. I was loving the project and concept but the people got to me. Trolls and haters. The OSS community bickering insane shit like semi-colons gets to you when all I wanted out of Code52 was to teach people.
Older posts
-
My Windows 8 stuff
19 December 2012 -
Fixing XBox 360 "S" PSU noise
23 November 2012 -
XBMC (setup guide with DVB-T)
22 November 2012 -
YarrMap for WinRT
17 October 2012 -
Bending GridView to your will - tricks, limitations and making a 'hub'
07 October 2012 -
Using Arduino to add ambient light adjustment to your monitor(s)
24 September 2012 -
Actually setting RichEditBox RightTapped
16 September 2012 -
Team City build agent certificate issues
10 September 2012 -
Getting a list of all fonts on the system in WinRT
07 September 2012 -
CharMap sucks, bring on YarrMap
05 September 2012 -
Windows 8 notifications from WPF
24 August 2012 -
Hg Fast Export Windows
14 August 2012 -
Git deployment of Pretzel on Azure
05 August 2012 -
Quantum Conundrum
14 July 2012 -
WebAuthenticationBroker alternative? No.
11 July 2012 -
Mechanical keyboards, whats the big deal?
28 June 2012 -
WPF List Filtering - Part 2
26 March 2012 -
WPF List Filtering
21 March 2012 -
Pretzels
03 December 2011 -
YumML, use YumML, not XML
21 September 2011 -
Disqus comment counters on static sites
10 September 2011 -
Photoshop batch script for generating WP7 tile icons
20 March 2011 -
Biscotti
07 March 2011 -
Codesnippet: Managed WMP plugin: WCF/IPC
14 February 2011 -
Codesnippet: Managed Windows Media Player plugins
13 February 2011 -
(Possibly) My Favourite Pizza
11 February 2011 -
Url Shortening with WCF Web APIs HttpClient
14 January 2011 -
Url Shortening with Goo.gl in C#
13 January 2011 -
Windows Home Server to Windows Server 2008 R2
03 January 2011 -
ASP.NET MVC Twitter Signin with Hammock
03 January 2011 -
My dad was a geek
11 November 2010 -
Building my HTPC: Software
10 December 2008 -
WPF Image creating file lock work around
01 December 2008 -
Build a Windows Home Server: Building Hardware
12 August 2008 -
Build a Windows Home Server: Case and PSU
10 June 2008 -
Arctic Accelero S1: Very chilly
29 May 2008 -
Build a Windows Home Server: CPU & Motherboard Selection
11 May 2008 -
Building my HTPC (Part V: Finale)
11 March 2008 -
Building my HTPC (Part IV: AMD Style)
27 February 2008 -
Building my HTPC (Part III)
24 February 2008 -
Building my HTPC (Part II)
16 February 2008 -
Building my HTPC (Part I)
04 February 2008 -
My first game: Snake2K1 in Turbo Pascal
25 January 2008