Jul 5, 2011

True Community is What YOU Make it

Roy Osherove’s post on "True Community”™ has been making the rounds on the twitterz in the last 24 hours (or as some people have called it “Yet Another Leaving .NET Post”).  I feel like I should respond with some thoughts.

First up, let me say I applaud Roy for making his views clear and talking about the differences in the communities and the speed at which the Ruby/Rails community is driving forward.  I thinks it great that someone showed enough courage to switch from one technology to another and begin the learning process all over again.  What I have a problem with is the deriding of the technology/community you leave.  It’s a pretty simple reason too.

The Ruby/Rails community and the .NET community are different communities!  There’s no such thing as “True Community”, just community.  Calling your community anything else is simply hyperbole, elitism and idealism.

Of course the two communities won’t be the same! They’re made up of different people. Neither will one community be inherently better than another.  They are just made up of different people.  An apple is not inherently better than an orange or a banana, just because it’s a different fruit.  And just because you’ve decided that you like your new community because it’s more akin to your personal tastes, doesn’t mean that those in the other community are ignoramuses, fools, ill-treated and misguided or troglodytes.  These sort of attitudes won’t and don’t help anyone.

We’re all developers and we all want to make the best software we can using whatever our chosen technology is.  If you don’t like the way your technology or community is progressing or you like the look of other groups more and you leave, that’s fine.  Go for it. Be awesome no matter where you go.  However if you do leave, don’t then berate those who stay or point out only the negatives as you see them.  Constructive criticism is welcome.  Criticism that exists just to validate your decision to move is not.

The Ruby/Rails community is still quite small and young and thus is able to change rapidly and innovate quickly.  It won’t last forever, it never does, but there’s a lot to like about a community like that, and a lot that everyone can learn from it. I get that. Truly I do.  I wish there was more of that going on in the .NET space.  Look at the Java and .NET communities on the other hand. They’re much larger and more prone to innovation impedance, making it harder to change things and for .NET in particular when management places more focus on what Microsoft produces to the exclusion of better solutions there can be some real problems.

On the flip side, while Roy makes some strong points about Microsoft not valuing the community, I think they only apply to certain parts of the business.  It’s not like that everywhere, and it’s changing.  I was on an open source panel on the weekend at the DDD Sydney conference and stated that we’re seeing a gradual change of Microsoft’s attitude towards their open source developers and the developer community in general.  The move from closed source to grudging acceptance of open source to a willing approval and active contribution to open source in the community at large has been a slow transition, but it is happening.  Why? Because of the very community that Roy complains about is driving change! Groups like Alt.NET that are looking for ways to push things forward regardless of what Redmond says do have an influence.  We see the change because of outspoken and community focused people like Roy himself, and others like Ayende Rahien, Sebastian Lambla, Jeremy Miller, the Herding Code guys, the Microsoft MVC team (who have strong community roots) and many, many more.

People that realise that community is what you make it!

So, you don’t like something in a community you’re in? Then what are you doing to improve it.  If the answer is “nothing”, then either stop complaining or get off your butt and get active.  It’s pretty simple really.  Change your community or change your community.

On a side note, the keen eyed amongst you will notice that Roy’s post didn’t mention the JavaScript community? Why? There’s just as much innovation and excitement happening in that space, if not more.  What makes them different? Why don’t we see “I’m leaving .NET for JavaScript” posts? Is it because their community is inclusive by nature and the Rails community is elitist? Is it because the technology is server side agnostic? Is it something else?  You know what.  Who cares! It’s just another community.  One from which everyone can learn.

Nothing says you need to be exclusive.  You like .NET, Visual Studio & IntelliSense?  Wonderful.  Go contribute to your local .NET community.  You like Ruby and the Rails framework and enjoy the innovation in that space? Fantastic. Go contribute to your local Rails community.  You like Java and think there’s still a lot of improving that can be done there? Brilliant. Go contribute to your local Java community.  You like JavaScript and think modern browsers have the power you finally need to make some kick ass software? Excellent. Go contribute to your local JavaScript community.

You get the point.  The community is made of you so go influence your community.

Fin.

Jul 4, 2011

My Geek Origin Story, what’s yours?

Yay! It’s Meme time, people.  This one started by @delic8genius (Michael Kordahi) who wants to learn your Geek Origin Story and see how we all got in touch with our inner geek.  So here’s mine…

For me I remember it all starting with the Atari 2600 and a little game called Asteroids, though looking back at photos from my earlier years I can see that the Atari was merely the trigger that brought the latent geek in me to the surface. I mean seriously, look at this photo of me as a little tacker and just ask yourself if that’s not a geek waiting to happen!  And no, that’s not a laptop backpack I’m wearing, though it could be! :-)

Mini Richard

I spent days and weeks blowing up asteroids in space and leaping through jungles, swinging on vines and jumping over pits (Pitfall anyone?!), but that all faded to backstory when I went to a selective school and my parents decided it was good for my education if they splashed out on a Commodore 64.  The day that thing came home, my fate was sealed.  As a kid in primary school I remember the unboxing, plugging it into the TV along with the tape drive and an external floppy drive, turning it on and then seeing the blue screen, the blinking cursor and the READY prompt.  What now?! We could LOAD something from tape or disk, or we could crack out the programming books that it came with and explore the possibilities!  The games were great, but being able to type things into that C64 and watch them run was a revelation! Not only could I play games, and oh! how I played games, but I could write them as well!  I remember writing my own text based adventure games (they were crap of course) and building programs that would show animated running man sprites moving across the screen based on how the joystick was pushed.  It was a marvel, pure and simple.  Being able to make the computer do what I wanted based on my decisions and actions and see the results on screen.  Mwahahaha! The power! The unlimited, unfettered POWER!!! *Cough* *Ahem* Yes, what was I saying? I think I got carried away with myself there…

So I’m sure my parents wished I would go play sport with the other kids on the street more often than I did, but I knew I’d never be great at that.  Computers however? Different story.  I controlled the universe there.  They made sense to me.  I could figure out how it all fit together.  I could PEEK and POKE with the best of them.  I got so much joy, fun, fulfilment and square eyes from playing games and writing software that I knew what I wanted to do for the rest of my life.  You see, I’m a gamer, through and through.  I love playing games and programming is just another form of game.  A different form of accomplishment, but still the same sensation that you get from finishing a level or beating a boss fight.  Tell me you haven’t got some code working at times and fist pumped, or put your arms in the air in a victory pose! I’m sure this is how half of the world’s programmers started their coding careers – wishing they could spend all their time playing and writing games as cool and puzzling as Boulder Dash or Impossible Mission or Paradroid.  I’m no different.

So there you have it.  My geek origin story, what’s yours?