Don’t let the Toilet Coders intimidate you
A couple of months ago, I started migrating my personal projects from Mercurial to Git. This was not because I now prefer Git (I don’t) but because I’d been swayed by the popularity of GitHub and was beginning to doubt whether Mercurial could sustain its momentum in the long term.
But reading the 501 Manifesto has made me think again about this.
Most of the reactions I’ve seen to the 501 Manifesto seem to have completely misunderstood it. It’s not about having a go at open source or blogging or anything, and it’s not about wilfully switching out of code mode the minute you leave the office: the message of the 501 Manifesto is simply that we favour competence and professionalism over passion.
This is something that needs to be said, and forcefully. There is a noisy group of prima donnas on Twitter (they prefer to think of themselves as “high end developers” or “ninjas”) who are loudly promoting the toxic message that passion and competence are one and the same, or at the very least, closely correlated. If you don’t blog, if you are not contributing to open source projects, if you are not attending conferences in your spare time, if you are not on GitHub, if you don’t view software development as a lifestyle, then according to them, that automatically makes you incompetent.
The author of the 501 Manifesto calls these people “toilet coders.” People who push code to GitHub even while sitting on the toilet.
Here’s the deal: if you are using Bitbucket or Google Code or Codeplex, and you’re happy with it, stick with it. While you may get more contributions on GitHub, and while most Git users are fine, if it’s beneath anyone’s dignity to use Mercurial to send you a pull request, that automatically makes them a Toilet Coder and your community is probably better off without them. Heck, they should be thankful that you’re open sourcing your code at all and not charging a small fortune for it. The only valid reason for choosing Git and GitHub over one of the alternatives is that you prefer it.
Oh, and forget about all this “GitHub is your resume” nonsense. For every recruiter that follows this line of thinking, there are dozens of others who don’t. Besides, if they aren’t prepared to accept an online portfolio on Bitbucket or Google Code or Codeplex instead, then similarly, they are Toilet Coders, and you are probably better off not having them as a boss if you value quality time with your family.
The fact of the matter is that what you do with your personal projects, and in your spare time, outside of work, is entirely up to you. Just because you don’t want to use GitHub doesn’t make you incompetent. Just because you don’t contribute to open source projects doesn’t make you incompetent. Just because you don’t have any personal coding projects at all doesn’t make you incompetent. Just because you don’t use Node.js and CoffeeScript and Ruby on Rails and CQRS and all the latest over-hyped this, that and the next thing doesn’t make you incompetent. Just because you use Windows rather than Linux doesn’t make you incompetent. Just because you prefer Entity Framework to NHibernate doesn’t make you incompetent. Just because you don’t use vim doesn’t make you incompetent. Switching out of code mode when you go home doesn’t make you incompetent. The only thing that makes you incompetent is not knowing, or not being able to apply correctly, the baseline skill set required by your team.
Don’t burn yourself out trying to impress people you don’t work for who don’t understand the difference between passion, competence, and GitHub.
Comments (3) »

Posted at 07:00 on 23 April 2012.


Feel free to take a look round the site — if I
say anything that
