RSS
Facebook
Twitter

Thursday, August 23, 2012

Interviewed at GOTO Copenhagen

I was interviewed at GOTO Copenhagen, about Java, the Disruptor, the Graduate Developer Community & London Java Community, and a whole host of other things.  So to make up for the lack of blogging this month, here it is:

Friday, July 27, 2012

On The Evil Of Stereotypes

I attended (one way or another) two events last week that got me thinking

The first was Girl Developers will Save the World - a session that had me a little confused as to whether that referred to me, or actual girls, i.e. those that are not yet legally classed as adults.  The second was the Remarkable Women Twitter party the following day.

Firstly, a caveat/disclaimer (as usual) - both events were useful, thought-provoking and overall worthwhile.  But the alarming thing to me was the number of times I heard "boys are…" or "women think…" or "girls prefer…".  And I know we often make generalisations to stress a point, but I'm becoming extremely wary of statements that group people together along some arbitrary boundaries.  

  • "Google+ failed because it's design by men for men" - no, it's because it's not designed for anyone.  Its only purpose was to compete with Facebook.
  • "Women are better at communicating and social activities" - what, all of us?  I'm better at communicating than every man I've ever met?  Than someone like Obama or Steve Jobs or John Stewart? 
  • "Women do better with female role models" - where are the statistics?  And do men do better with male role models, or do they do better with female role models too because women are so much "better at communicating"?
I'm not saying these statements aren't ever true.  I'm not even saying they're not true "most" of the time (although I want to see proof).  But any kind of strategy based on gross generalisations had better take into account the fact that these are generalisations, that they are based on Statistics1(and sometimes not even those), and that they frequently correspond nicely to things we'd like to think or we are trained to think.

Humans are great at categorising.  It's a survival skill - "yummy", "warm", "safe", "funny coloured = hurty tummy", "things with sharp pointy teethies like to eat me".  Without this skill we wouldn't have made it as a species.  And marketing people, who have to use psychology to get us to part with our money, understand this.  They identify trends and target their shinies to these trends (YuppieBaby Boomer, etc).  By identifying these groups and aiming at them, they make them real.  And since humans are a clan-based society, who (again for evolutionary reasons) need to fit in with their gang, these groups become aspirational.  Essex people drive BMWs and wear white stilettos?  I don't and I live in Essex, oh no! I'd better get on that right away, otherwise people will see I'm An Imposter.

So when people go around saying "Women are great at communicating", we believe it.  Those of us who are a bit sucky at it or maybe don't care about it wonder if we're aliens.  Or we believe we're great at it because we should be, and we don't work at improving our skills.  Men are terrible at cleaning?  Great!  I don't have to clean the toilet!  Women's minds aren't programmed for engineering because they're more communicaty than logical?  Fine, I'll teach physics instead of using it.

If I hear one more person say women don't do well in IT because they prefer more soft-skill-based roles, I'm going to scream. In that case, why are there more women entering accountancy than men? In that case, how do men ever get to manage people, and why does pair programming work so well?

If I hear once more that men put women off these roles because of the macho male environment, I'm going to drag that person through a tour of every office I've worked in - I'm constantly disappointed that my male colleagues enjoy football even less than than the girls I went to school with.

So, using stereotypes to try and address things like gender disparity in IT is not going to work.  The men in our industry are not beer-swilling, football-watching, womanising alpha males.  So why, when we talk about the missing women in our industry, do we assume they will be pink-obsessed, fashion-conscious, gossipy socialites who only hang around with other women?  Do you even know any women like that?  This is not Desperate Housewives, this is Real Life.

Really good marketing people don't target people as they are - no-one wants to be considered poor - you're a bargain hunter or great at identifying value.  Similarly, if you want women to use your product or  work for your company, you don't target to weight-obsessed, soap-opera-watching, child-caring fashionistas.  Instead you target how a person wants to be seen.  You might say using your product or working for your company makes a person look smart, savvy and awesome.  And who doesn't want to be all of those things?

Saying people in IT are sexy and intelligent and earn loads of money and have oodles of job options and can find work globally might be a compelling story for people.  Some of those people might even be women.  Some of them might even be the other missing minorities

Thinking in stereotypes can be damaging to everyone.  Gender stereotypes in both directions are so sweeping they are unhelpful, you can't categorise fully half of the world's population as one thing or another.  I hear men doing men a disservice by saying things that aren't even true for themselves, and the same for women.  It's something we're trained to do, and something the media loves to do.  But it's wrong.  

So the next time you find yourself saying "men prefer..." or "women are...", stop and think if this is actually true for all of the men and women you know.  And if it's not, just don't say it.



1Lies, damned dies and…

Wednesday, July 18, 2012

OSCON Day One

So, my first day at my very first OSCON.  I have to say that when Ben and Martijn told me I had to do OSCON, that it was one of the conferences to go to, I was sceptical - not because I thought it would be rubbish, but because I have enjoyed all the conferences I've been to for different reasons.

But I'm really impressed so far.

The program is packed with great topics and speakers, and so many things I want to see that clash with each other.  It's frustrating, and all the sessions get in the way of all that networking stuff!

The people are so friendly.  They smile at you randomly in the corridor.  They talk to you for no reason.  As a Londoner it comes as a bit of a shock to the system.  And it's nice!  Great conversations with different people.

The venue is set up for these encounters with plenty of places to sit with the laptop or mingle or meet and sit with people at lunchtime.

The exhibition area is not a total waste of time!  The booths are full of educated people not selling me "solutions" that I have no power to implement in my company, but engaging me in conversation about things that interest me as a developer.  Many of these are even useful for my day job - who knew!

Some of the sessions are being streamed so if you're not here, I highly recommend that - from what I've seen so far the quality of the video is good and it's the next best thing to actually being here.

I'm inspired, actually.  It's clear to me that Open Source is key to our industry.  Not just because of the technologies that have been created that help power some of our most successful companies.  But because with only the love of the thing you're doing to motivate the developers, community / cooperation / people / soft-fluffy-stuff is fundamental to success.  Talks here have highlighted to me that there are lessons that money-making companies can learn from this community around how to motivate your developers.  There are even lessons I have learnt today around how to improve relationships in my personal life.

Why isn't this community the poster child for our industry?  Why isn't this the entry point for everyone interested in development?  I know we say (even I've said it myself) that contributing to a project is a great way to advance your career, especially if you're junior.  But we can also showcase some of the really interesting stuff about being a developer by using the open source community - communication, cooperation, and working on cool stuff.

Why is it that even within our industry, the open source community is seen as being niche, and difficult to get into?

Sunday, June 24, 2012

The subject of women programmers is boring


I've been challenged to do a session at a very large conference around women in programming.  Which leads to two reactions from me 1) wow, what an honour! and 2) *sigh*.

The problem with these sessions is that you're preaching to the choir.  Those who turn up are a) women or b) men who are sympathetic and supportive to the cause.  People who are actively discriminating against women or, more commonly, those who don't know their actions are hurting diversity in our industry, are the least likely to receive the message.

This tends to lead to the same types of sessions - yes, our industry under-represents certain segments of society (i.e. women); yes, we all agree this is a problem; yes, everyone in this room is trying their best to do the right things; no, we have no idea how to fix it at the industry-level.

These sessions are boring.

How do you make this subject interesting, relevant, and appeal to the types of people it really should target?

I'm considering all sorts of games with the title, even going so far as to put "Boobs" in it.  I very much doubt that will make my final selection.  I'm thinking hard about the format, I definitely don't want it to be preachy, I want it to be informative, collaborative, and, preferably, funny.  Not too much to ask, right?

In programming, if something is difficult to do right, it's a sign of a smell - the feature being requested might be contrary to the purpose of the product; the application might not have been designed around the business's real requirements; there could be a large amount of tech debt that should have been cleaned up along the way but wasn't; the requirements might be fluffy, changeable, or simply outright wrong.

Does the fact that we can't get these sessions right point to a smell as well?

Are they pitched at the wrong people?  Are we saying the wrong things, suggesting the wrong ideas, tackling the wrong problem?  Should we even be talking about women in technology?

Or am I just the wrong person to do it?  I don't even want to be the spokesperson for women developers.  I can only be the spokesperson for me.

Overall I can't help but think we're missing the point again.  If I think that events aimed at girls are wrong, then I think that sessions at conferences aimed at highlighting the missing women there is also wrong.  But this is a great audience to reach - these are people who want to further their careers, who are likely to be putting in extra hours to improve themselves/their company/the industry.  Give a techy a tricky problem to gnaw on and there's no-one happier.  And what could be more tricky than the seemingly-unsolvable problem of attracting greater diversity into technical roles?

The answer might lie in shaping the problem such that it is interesting enough, difficult enough and technical enough for us.

Or maybe the answer is simply accepting the fact that you're not going to change those who are part of the problem, but you can change the message you are giving.  I know many men are tired of being berated about this issue because they're already doing the best they can.  I know many women are bored of hearing about it because they're already here.  Maybe it's time to look at the problem differently and suggest an alternative approach.

If only I knew what that was...

Saturday, June 16, 2012

Overheard: Development Myths

Continuing the theme of Things I Have Heard I Don't Think I Agree With.

To developers technologies are everything
I can't remember the context of this but I hear the same sentiment in different guises over and over again.  Often from non-techies, but more alarmingly from developers.

Is this true?

It's true for a certain tribe of techies, sure.  And creating and effectively using new technologies is an important part of what drives the current information age forward.  But I'd be worried if I thought that 99% of developers were like this.

In our day jobs, and also if we want to create something that makes any money, we need to be interested in solving people's problems and creating solutions.  Sure, we'll use technology to do that.  But if we were all only motivated by technology, we'd always be trying out the Next Big Thing when our customers wanted a simple CRUD web app.  Any organisation that encouraged this sort of technology um, infidelity?  playing the field? might find themselves with lots of fascinated and broadly-educated developers, but not a lot of productivity.

I always thought developers were drawn by wrestling with the machine to solve a particular problem, or to do something that hadn't been done before.  I didn't think we liked learning Ruby because we didn't study it at university, or switching to a functional language simply because that's the way the whole world is going.

We can train The Business to speak our language
I've heard a number of people talking about the Holy Grail of having business owners write acceptance tests.  At LMAX we have a (Java-based) DSL that theoretically could allow technical-ish non-developers to write our automated acceptance tests.  However, is this the right thing to do?  To make our jobs easier, and our code better quality, we need the business to become almost developers?

Our (very difficult) job as developers is to act as translator between the ones and zeros a computer speaks and the real life doman language our business guys (and girls) use.  Forcing the business to become more technical is just, well, lazy.

So if our business people shouldn't be forced to become more technical, how can we bridge the gap?  Is there anything that we as developers can do to move closer to the business?

Ubiquitous Language is a good start.  When a business user talks about an order, a developer should be thinking about the Order class, or something that implements an Order interface.  When the business talks about placing an order, a developer shouldn't be thinking "place order translates into the execute method", they should assume there's a placeOrder method somewhere they can use as a start point.

We certainly shouldn't be training the head of sales to start talking in terms of Java classes or technologies - "I want the Resin tier to validate the order while the OrderMatcherImpl checks for availability".  That would be silly.

Development is hard, that's why they pay us.  And part of that hard job is learning the business model we're implementing so we can mirror and support the business.  We shouldn't be inflicting our technology on the business.

Saturday, June 9, 2012

The birth of a new community

Topping off my mini-tour at the end of May, I was invited to Rotterdam to present to a brand new community of developers.  I was really interested in attending because my experience with user groups is pretty much limited to the London Java Community, and I knew this would be different due to being a) across a wider range of technologies and b) shiny and new.

It was hosted (rather awesomely) in a brewery, and until then I'd never given a presentation in a pub.  Frankly it's something I'm keen to do more of.  Due to a total technology fail on the part of all of us, we couldn't get the projector working with any of the various laptops.  However, with 30-odd techies, free wireless and slides available on Slideshare, we managed a novel and collaborative presentation approach, with people clustered around the laptops with the largest screens, and someone at each one valiantly keeping up with my quick pace through over 100 slides of stick-men drawings (a review of the evening is available).

I really enjoyed it, it was quite a change of pace from the conferences - my first attempt at presenting after imbibing probably a little toooo much wine, and a much more intimate venue which encouraged a lot of questions and discussion.  It's actually a format that worked, and maybe there's a way to get it to work even more smoothly, if the slides on all the laptops were synchronised, and there was some way for me to gesture wildly at the appropriate parts of the slides like I do when I'm on stage.  Hmmm, maybe that's actually a webcast now I think about it.

So I had an excellent time, thanks to the hospitality of the rather awesome Rotterdam-ians.  What I found fascinating  - as well as the venue and the novel presenting style - is the formation of a group of people with broadly similar interests.  One of the great strengths of a place like London is its size - you will find a number of people here with interests like yours, and sites like Meetup make it ridiculously easy to find them.  One of the weaknesses of London, however, is its size - there are so many people you could attract that you end up narrowing your search field.  You pick a very specific technology, a tiny geographical area, a single interest, to build a community around.

I've been thinking for a while it would be nice to have a community of people who aren't all the same, who share overlapping but different passions.  But how do you create something like that?  You need a single thing to draw those people together, otherwise they'll never find each other.

In smaller cities the geography limits the numbers, so you can have a broader range of interests represented.  In London, I can see something as (relatively) specific as a Java User Group becoming even more specific.  With nearly 2500 members, you could easily spin off Java-for-banking, Java-for-gaming, Java-in-west-London-zone-2 etc etc.  In fact, we've already spawned off a number of groups like the Graduate Developer Community, the London Scala Users' Group and so forth.  With nearly 2500 members, you cannot possibly meet them all, you can't even get a feel for what everyone's into.  How do you get the intimacy from a smaller user group without narrowing the scope so much that all of you might as well be clones?  The awesome thing about user groups is coming across new ideas, seeing solutions to problems you didn't even know existed, hearing about things people are working on that never occurred to you.  For that, you need diversity.

And one of the nice things about a city as large as London is you get plenty of diversity.  But how do you pull together that diversity?  How do you create a group that is diverse, when by necessity you need something central for those people to gravitate towards?  And if the diversity creates a large group, how do you create intimacy and feel personally involved, the stuff that comes for free if you belong to a smaller group where you know everyone?

In Rotterdam, at the Girl Geek meetup, I saw the advantage of using something other than a specific technology to gather together a group of interesting people - you get a wider range of experiences and passions.  How you can achieve this without using geography or genetics to select your participants?

Is it even possible to build a community when your goal is diversity?

Wednesday, June 6, 2012

QCon London: Disruptor presentation video

The "User's Guide to the Disruptor" presentation I gave at QCon London is now available on the InfoQ site.  This is the same presentation as the one I gave at Skillsmatter in March, but the questions are different.  Plus since I'm winging it every time, I probably cover slightly different things or explain some stuff better / worse.