Not to disparage the 100:10:1 method, but I do disapprove of this implication. I don't want people to refrain from putting things out there, just because they don't want to feel obligated to support them.
I have a public blog, where I try to maintain quality, and a semi-private blog where I try to allow myself to post stuff I'm not sure about, stuff that's not interesting to anyone other than me, stuff I don't necessarily want associated with my public persona, and so on. I know others do similar things.[1]
I think there's no particular mechanism to do that with open source, but it might be valuable. Perhaps I could have two github accounts, one where I'll put anything I feel like, and one where I put stuff I'm proud of and want to remain proud of. If something's on my "real" github, I'm saying that if you ask for support I'll try to help you, if you report a bug I'll try to fix it. If it's on, let's call it my shithub, there's no social contract. Take a look if you want, and feel free to report bugs, but I might just say "yeah, that's a bug". Or even just "not interested in that project any more, I'm not going to bother confirming this".
Then, if you want to follow this method and also want to make most of your code public, you can write down the 100, put the ten on your shithub, and publish one to your github.
[1] E.g. http://slatestarcodex.com/ versus http://slatestarscratchpad.tumblr.com/
http://blog.codinghorror.com/responsible-open-source-code-pa...
"As Markdown's "parent", John has a few key responsibilities in shepherding his baby to maturity."
https://plus.google.com/+TomDale/posts/CkmmbjmvebM
"And if you release, don't release more than you can realistically maintain."
https://opensource.com/business/11/7/responsibility-open-sou...
"open source project leaders [...] have an on-going responsibility to make it easier for community members to contribute"
That is not what was being discussed, here.
I do think that if you're not shithubbing, you have a level of responsibility which perhaps[1] Gruber and TJ (the maintainer in the second link) weren't taking. And it's not clear to me how much you can claim to be shithubbing if you have lots of users and are discussing the project direction and taking pull requests. (It looks like TJ has since handed over maintenance of n to someone else, which I'd say was the right decision.) The third link also seems to be talking mostly about projects which can't be described as shithubbing.
The main thing I want to get at, is that you should be able to put something online without having to take responsibility for it. (Perhaps we need to distinguish "online" from "released".) That doesn't mean you never have any responsibility.
[1] To be clear: I don't know much about these two incidents, but the actual details aren't particularly important right now. I'm discussing them to bounce intuitions off them, not to pass judgment on anyone.
Also, don't forget to update those notes if things change.
For instance, it's enormously helpful, in the aggregate, that people have repos that are simply "example of an application that uses Foo with a Bar adapter."
I will add as a side note, if you can't maintain something anymore, put a big heading on the README.md saying so. If it's popular, point people to a maintained fork.
(Nothing I write is extremely popular but I'm going to go through and "deprecate" a few things of mine tonight)
At least you'd get a hint at the intention behind the release.
I agree, anything I put out comes with one expectation on my part, I may be contacted regarding it. I do not feel any obligation to support it, I have no relationship with someone randomly contacting me over something.
Though, I put anything I want to be kept private is on bitbucket.
Have a just witnessed the moment of inception for a fantastic new word?
"Team, we've got to stop all this shithubbing and really start properly testing and documenting our code."
If you're reading this, chickenshit, I hope you make good use of that name.
But I think perhaps the core isn't just the license, but also the readme, and guidelines on naming/"trademark": eg: when it comes to markdown, the issue (as mentioned in a sibling comment) was more one of "I don't think what you want do do deserves to be called 'markdown' -- that named was coined for my vision of 'rich plain text'".
I'm generally in favour of strong copyleft licences, because of the need to maintain user (as opposed to, in addition to developer) freedom. But when it comes to stuff that's basically just some ideas that maybe someone else might want to run with -- I think it's important to give them away as unrestricted as possible. Technically trivial snippets of code aren't under copyright -- but with how hostile the "intellectual property" climate is -- I think it's important to be clear when sharing something unfinished that if someone else builds on it, one will not retain any ownership of/claim on the result (beyond what copyright law forces one to keep, hence CC0 etc).
I went the opposite direction (kinda) from the author. I realized that people assuming I would fix what I put up didn't matter to me. Sometimes I would make fixes, or check issues, sometimes I wouldn't. Some people got mad, some understood, some were drive by so they never checked back in anyway. Whatever, it's up there, if it really bothers them enough, they can fix it, or use it. It's up to them, not me.
However, I'm still a little like the author. I have a bunch of projects that are "good enough" for my use, but definitely not for someone else (for example, I wrote a password safe[1] cli program because I needed something that would work on FreeBSD. It only handles the features I use and may croak on a file that uses all field types). I keep these off my github.
More power to anyone who has that sort of energy!
For many ideas, an MVP can be a five-line CGI script in bash. Or even a static HTML page. Minimal means minimal.
The MVP is the most trivial thing you can do that will still give you useful information and guide future development. The purpose is exactly to be able to try things without investing significant energy.
If I went with a rule, I think Google's 80/15/5 rule is worth further exploration. Many of the best projects start with a clear need to solve a problem. Picking one of them and making it happen should be 80% as others will appreciate the problem being solved. Especially true if author understands that domain. A significant step out of the domain or re-application of an effective concept to new domain might be a 15%. A 5% project might be a wild idea with potential but high risk and/or way outside author's domain expertise. The main energy will go into 1-2 80% projects while the 15% and 5% projects are a mental break from that.
This model seems more productive while still letting a person screw around on side projects that might be fun, good learning experiences, or time-wasters with a limit on the waste.
In that blog post he recommends reading several books simultaneously and abandoning boring books with no regret.
At any given time, I have 2 books, one fictional and one technical, open (made some progress in reading it, maybe not literally open ;) ). I probably could handle an extra technical one.
If I was reading only one book, some evenings I'd be like 'meh, don't feel like reading it tonight'. But when I'm reading simultaneously, I have no excuse to read a bit every single evening, which evolves into a habit and it is definitely a nice habit to have.
TL;DR as a software developer, I find my primary occupation is reading, and not just code. Secondary is typing. I should get a better keyboard.
So lately I have new criteria for how and when to write open source projects: (1) when I realize that I have need to automate something, (2) and it won't take more than a weekend to get a basic functioning version up and running. Anything else, and I nope on out of there. I've got too little time and too many things to do already, I'm not about to waste it creating more unnecessary software. The world has enough of that already.
EDIT: adding links as requested
[1]: https://github.com/sdegutis/AppGrid (note: I started to rewrite this in Swift locally, because Accessibility API sucks without generics, and the Objective-C version is a bit buggy)
[2]: https://github.com/sdegutis/choose (note: I started to rewrite this in Swift, but the Objective-C version gets the job done just fine)
There are 20M+ repos on there. Which leads to a serious discoverability + signal/noise problem around 'true' open source projects. As someone who wants to put up an open source project for collaboration (with willingness to maintain), it's hard to get the right eyes on it. Too often, it seems like no one cares. Conversely, as someone who wants to contribute to open source projects, it's a little hard to find small early ones where I feel like I can make a meaningful contribution (yes, the big ones maintained by well known companies are easy to find, but I much rather work on something put up by an individual programmer).
How do you cut through the noise on GitHub to find projects you actually want to work with (and want you too)?
Or go the other way, and train a searching algorithm based on a data set of actively maintained open source projects on Github, with things like commit history/contributors/etc as features.
I think your blog posts do a good job of answering lots of questions for a lot of people at once - isn't this a more efficient way than answering emails one-on-one?
You can see some of his posts on it here:
http://www.jamesaltucher.com/2014/05/the-ultimate-guide-for-...
http://www.jamesaltucher.com/2012/04/how-to-have-great-ideas...
http://www.jamesaltucher.com/2015/07/the-magic-of-idea-math/
Or maybe you know. If so, you are better not following his advice.
I'm gonna try writing these ideas down. Thanks for the idea!
It is not for me to decide whether something will be useful for someone else or not, that is up to them. Just give people enough facts that they can make an informed decision.
However working on 10 projects simultaneously is not feasible imho. 3 or 4 is more realistic, more maintainable and worthwile in the long-term.