Wednesday, February 25, 2009

So Long, And Thanks For All The SSH

I read Jamis Buck's posting late last night, about how he was retiring from involvement with Capistrano, Net:SSH and a few other closely related projects. First of all, the community owes him a lot for doing so much work on these crucial parts of the Ruby on Rails ecosystem.

Seems like he has fallen victim to his own project's popularity. So many people using your code, and they start to expect things, and then demand them. I have seen friends in the Ruby community who are committers on a very popular tool, pretty much accosted at a conference, by fervent users of their project, who proceed to drag them off to the side to show them some obscure edge case. And like any good public servant, they go off to see whatever it is, regardless of whatever they were planning on doing the moment before.

Jamis was for sure getting burned out. I know that from personal experience, when programming pal Ari Lerner and I worked some patches for Net:SSH that solved a longstanding problem for public key authentication. Our first discovery on cloning the repo was that the original commit did not actually pass all of the unit tests. Then once we had corrected both that, and the original issue, and we contacted Jamis, he was pretty ambivalent. I am not knocking him here. Eventually, he accepted the patches. I think it was more that he had just had it with being a slave to his own creation.

Now we are on own, people. However, there does need to be some organization to the community. Github allows anyone to fork a project, sure. But having 25 different versions of the same project wandering around is too confusing for most people. New users would not know which version to install, the beauty of the standardization would be lost.

Jamis, you need to pick a successor to inherit the main responsibility for these projects, if for no other reason than this. Anyhow, we thank you again for all your efforts, and we look forward to seeing what you get into next.


mbuckbee said...

I'm not sure that he does need to pick a succcessor, one of the notably interesting things about Github that makes it so good for open source development is that anybody can hit fork and start their own thing.

Sure, maybe 25 people will jump in tomorrow, but by next week it will be 15 that have commits and in 6 months it will be abundantly clear that Jill's Capistrano (or whoever's) is the one to get.

- Mike

Ron Evans said...

Well, the first example that comes to mind of where a major project had its primary owner/contributor "retire" was Zed Shaw, and look how many people have switched over from mongrel to Passenger?

Admittedly, that is an entirely different case. But the point was more that perhaps other deployment tools like Vlad etc. will get traction now.

regularfry said...

I don't see the switch from Mongrel to Passenger as being because of Zed leaving. I don't even think they happened at the same time. It's just because, for a lot of shops, Passenger is a better fit.

Anyway, that's off topic. The immediate problem here is that there is now no immediately obvious "official" branch that's going to be maintained. For the next couple of weeks or so, until leadership is sorted out and a new development cycle is in place, I've got to have a better answer than "It'll be fine! Don't worry about it" for my clients who really aren't expecting me to be using abandoned software to get the job done, or to be running their own fork to make sure that bugs get fixed.

Jamis Buck said...

I will not be choosing a successor. It's the wrong solution to the problem.

What I want is for someone passionate about the project to pick it up. An assignment does not foster passion--it fosters a sense of duty and obligation. While that can work for a time, what happens when that successor discovers something else that they are really passionate about? At best, we're looking at another handoff of the project. At worst, the project just shrivels and dies.

I'm confident things will work out just fine. Best case: someone passionate about Capistrano begins advertising their patches and the community rallies around them. Worst case: no one steps forward, and the project stagnates, in which case the project wasn't worth promoting anyway. If it lives, wonderful. If it wants to die, though, let it die and make room for more worthy projects.

Ron Evans said...

That is a great comment, Jamis. A parent must eventually allow the child to fly free of the nest.

It does make things rather complicated for those who just want someone else to solve their problems for them. But it really is absurd for the community to expect the creator of a useful project to take on all their technical debt for them, and to continue to do so forever.

Once again, bravo, Jamis, and thanks!