Monday, 28 November 2011

Saturday was, hopefully, my last conference of the year. My lucky readers should start to see some posts which are not simply me gushing about another opportunity to hang out with awesome people and learn about interesting "stuff".

Who wants to propose a session?

In many ways the London Java Community Open Conference was my favourite one so far, and not just because it's near home and I helped to organise it. One of the awesome things about both Java One and Devoxx was the opportunity to travel, to see new places and to meet people you might not meet in London. The scale, and the opportunities to meet key players in the Java world, were the things I probably appreciated the most from both of those conferences. And you can tell from my posts I really enjoyed them.

But the LJC conference was probably perfect as my last one for 2011:

"How do you spell 'lightning'?"

Being on home turf with awesome people who have really helped drag me kicking and screaming into the conference scene really brought home to me what an amazing year this has been. This time last year, I felt I barely had the credentials to be a behind-the-scenes organiser for the LJC, and I didn't attend last year's conference because I wasn't sure how much I would get out of it. This year, I'm at the conference giving two sessions, having made my international début already.

With 120 people you feel like you can talk to everyone at some point if you want to. I don't think I managed that, but I probably chatted in one way or another with maybe half the attendees. The great thing about this is you see the wide variety of things people are working on - the technologies, the business problems, the team and company sizes, the methodologies. It's eye-opening and quite exciting.

It seemed that a small, open conference like this drives content based on relevance. We had no vendor pitches, although John was contractually obliged to mention Atlassian at least once every half hour (but as they paid for the beer, this was only fair). People vote with their feet, and attend the sessions that they will get the most out of. I liked this format a lot.

I presented alone for the first time, not hiding behind Mike or Martin. I found this surprisingly liberating. I love working with those guys, but without them providing a safety net I actually found my confidence increasing as I realised I was perfectly capable of answering things I would probably have let them field.

My second session was more workshop-like, and I wanted the audience to guide what we covered. I thought it went really well, I loved letting the audience guide it, and I enjoyed giving it.

I was honoured (and terrified) to be asked to be part of a Meet the Experts panel with people who actually know what they're talking about. I was very very pleased to get away with not being asked any questions about being a girl or the length of my skirt. We had a great discussion around writing high performance code, about different technologies and their applicability, and about the future of Java and JVM-based languages.

I loved the venue. The rooms were a nice range of sizes, all with projectors of course, but also whiteboard space and flip charts. It looked like a 1960s version of the future - all shiny white surfaces and curving lines. But it felt like a space to create and innovate in.

Mike's Hacking the Open JDK session in the morning was excellent. Again, this was another example of a workshop format working really well. He gave some good background to compilers in general, and a good walk through of some of the code that's there at the moment. He was happy to share stuff he'd learnt the hard way, and it made me want to get more involved in that side of things.

The food was awesome.

Clearly people haven't had enough coffee yet.

My sessions were User's Guides to the Disruptor - a beginner's and a more advanced one. The beginner's was an updated summary of the Disruptor stuff already covered in this blog - the ring buffer, writing to and reading from it, and configuration. The second session covered more advanced ideas: you don't need a ring buffer any more; cache lines and false sharing; worker pools; aggregate event handlers. This session was a lot less prepared and more collaborative, and I loved giving it. Maybe that's my teacher-genetics coming out.

The aim of both sessions was to give people an idea of how to actually use the Disruptor - developers are definitely interested in how and why it works, but we've been evangelising a lot and now there are very sensible questions being asked about how to get it to do various things. I'd like to run some more of these sessions in future, and to add more material to the blog.

And finally, a proper meal before more beer.

Back to the conference. Were there any downsides? Personally I had none. If I had to suggest an improvement for next year, it's that we would like to see more novice speakers presenting. The LJC has always been about nurturing this talent, and a small conference like this one with a friendly audience, many of whom you may already know, is a great place to practice. The lightning talks showed the great variety (and abilities) of our members, it would be nice to expand this to full sessions. As I found, filling a 30 minute session is not anywhere near as hard as you think!

I'm really looking forward to next year's LJC conference, and I'm totally buzzing from the positive vibe from this year's.

The panel went really well, we got decent interaction from the audience, and of course my fellow panel members were awesome. I managed to restrain myself from using the opportunity as my own personal soap box and allowed other people to speak occasionally. Sadly the only male on the panel stole the show somewhat, so Antonio won't be invited in future... Actually in seriousness, it was great to have a guy on the panel to present his point of view. It was interesting that he's a father, highlighting that parenting issues are not the same as women's issues, and conflating those two concerns hurts both genders. But Antonio's hair is far too shiny and pretty and he's funnier than I am, so I'm not standing next to him again.

I'd love to make a note of all the issues discussed during the hour, but I'll be honest, I was too busy trying not to fall over in my girly six-inch stiletto boots to remember anything that happened. The video will hopefully be available on Parleys some time in the future, so I will link to it when it's there if it's not too horribly embarrassing.

Someone let me have the microphone again...

One question that came up more than once throughout the week was: IT/programming is not the only industry with a lack of women, why should we care? Maybe it's just natural?

I think we need to be very careful before writing off such an imbalance as "natural". We need to make sure first that we aren't discriminating against groups, consciously or through some unnoticed system bias. And for me, the thing is that we notice that women aren't well represented in technical roles, but we don't necessarily notice the other groups of people who might be being put off for similar (or maybe totally different) reasons. We can't so easily tell if gays, jews, parents, shy people, folks from poor backgrounds or any other less distinguishable sets of people are finding it hard to make it as a programmer.

We can see the figures for females. In the UK in 2008:

44.7% of people taking ICT (Information and Communications Technology) at GCSE (age 14-16) are girls. As in many other subjects these days, the girls get better results than the boys.

38.6% of kids taking ICT at A Level (16-18) are girls. Only 9.6% of Computing students are girls. Again, girls outperform the boys in both subjects.

19.4% of those studying Computer Science at university are women. This is down from 24% in 2003.

Through a not-very-scientific poll of the members of the London Java Community, it looks like approximately 15% of techies in industry are women. Interestingly, some companies have a much higher proportion than others, but I think that's something to explore another time.

The thing that worries me about these figures are a) the "pipeline" hints at a drop-off in interest in the subject, not a lack of ability, since the girls are doing well tech subjects but choose not to pursue them and b) the numbers are declining in some areas, specifically university applications. I've read studies that show the percentage of those in technical jobs who are women has been steadily declining since the 80s, but it's difficult to get specific figures, especially as I'm particularly interested in programming / technical roles rather than just the percentage of women "in IT".

If the numbers are declining, that seems like a smell to me. Not only do we have some sort of image problem which puts people like those who have two X chromosomes off from entering our industry, we're driving them away when they get here. And I don't believe that's because women find they're not good at it.

Other industries have been successful at attracting a higher proportion of women - for example, in 1950, only 15% of accountants were women. By 1985 half of all accounting majors were women, and by 1990 the majority of the workforce was female. It would be nice to think we could learn something from our friends in the Maths world. After all, the skills are not dissimilar. But they have a slight advantage over us - in many countries all children are required to study maths until age 16. However, there are very few 16-year-olds who have any programming experience at all. Either we need to accept that we're going to have to hire kids with other degrees and train them to be programmers, or we're going to have to do some serious outreach to interest kids in programming and technology long before they start to make their exam choices. In the UK, they need to choose their GCSE subjects at 14, which means we probably need to be targeting kids as young as 10 or 11. That's not inconceivable, when you think about it - how many of us were programming in BASIC aged eight or nine? Could we not teach kids to write an iPhone app or a Facebook app instead? I was very pleased to hear someone in our audience was teaching their daughter to program. At an even younger age, the least you can do is buy your kids Lego - I'm sure that exercises the right parts of the brain.

The point is, that I don't think we can conclude that it's "natural" for girls to not be interested in programming. The first programmer was a woman, and during the war and even into the '60s many programmers were women. I think that if we can work with schools to provide some tutoring in computing at a younger age we might be able to attract kids who wouldn't have thought about programming as a career choice before. Some of these may be women, some will not. That's fine, diversity is our ultimate goal.

Which leads me onto another point - special treatment of women. I've said it before I'm sure - I think singling out women to attempt to increase their numbers does more harm than good, for a number of reasons:

It makes women think that there must be something wrong in our industry if women need to be treated differently, or mentored differently, or need additional training to get by. Or it makes us think that we really aren't as good as our male counterparts because we're being given special treatment.

It builds up resentment amongst our male colleagues, so they soon begin to wonder if we're doing our job because we're good at it, or if we got there because we got lots more help, or because we're there to tick some sort of box

It's not solving the problem of lack of overall diversity - where are the programs for people who went to the wrong schools, for those who didn't think about programming as a career, for a million other special interest groups that exist out there?

Some of the ideas that imply special treatment are things like: all women events (you should know by now how I feel about those); free entry to conferences for women; higher pay for women at certain companies. Although I would benefit from all of these things, I hate them. I feel like I'm being compensated for this terrible affliction of being born female.

So, what can we do?

Reach out to those you want speaking at your conferences. This might include women, it might include people from other "minorities", or it might just be awesome people that you want there making your conference look good.

Use these people for marketing and role models - it is indeed possible that if you have some female faces on your conference site and posters, you might attract more women attendees. Actually, if you have more women role models you might attract more men, but hey, it's all about diversity.

Buy your kids Lego and teach them programming.

Treat women in your company like people the same as anyone else. We were asked about how to deal with a younger female boss. Kim's answer was perfect: "Like an older, male boss".

Get involved in mentoring programmes, not just for women but for people of all ages - kids at school, undergraduates, or people who are already in the industry and want to take that next step, for example to speaking at conferences or writing or leading teams or becoming CTO.

Since the panel I've been pointed, numerous times, to this excellent article which talks about racism, sexism, and meritocracies. I particularly like the line "Explicit diversity programs have the solution exactly backwards". Well worth a read.

Wednesday, 16 November 2011

European conferences are different (and cool) because you get to hear even more languages spoken than you usually do in London (apparently the most diverse city in the world for spoken languages). I think the idea of a Paris Devoxx with 75% of the talks in French is brilliant - I'm always banging on about diversity, we shouldn't expect developers to learn in English only.

Really great to meet up with some of the people I met at Java One and am starting to feel more a part of the global community.

Seems to me there are slightly more women here than at the other conferences I've been to, and not just because Regina and I pulled together four women for a panel on women technologists. And once again, a lot of guys asking why this is, because they want things to change.

A highlight was seeing my namesake, AutoTrish, up on a cinema-sized screen in front of hundreds of people at Dave Farley's Continuous Delivery presentation.

Building on from my twitter revelation at JAX London, I've found twitter very useful here for messaging people I want to meet up with, but also for chatting to new people and making new friends. It's not quite as intimate as JAX London though because there are billions more people here, so the chances of actually bumping into the twitter friends is much lower.

Have had lots of interesting conversations with people about the Open JDK, which I guess is the logical extension of the interesting conversations I had about the JCP In San Francisco.

A community event like this is different to an event like Java One, because a single organisation isn't calling the shots. It's interesting (and great) that Oracle and Google can both be here talking about the cool stuff they're up to.

The Diabolical Developer

Conferences are clearly something that appeal to me - I love meeting people and chatting about interesting and (sometimes) intelligent things; I love learning stuff and indexing it away, possibly for future references; I love hanging out with people like the LJC guys (Ben, Martijn and John); I love kicking around ideas of what more we can do at LMAX with our lot (Mike, Dave, Dali).

Dave's Continuous Delivery

I'm really looking forward to my panel this afternoon, I'm going to be ranting about how we target women for tech jobs. Should be fun.

Nice 'tash!

Shameless plug: Mike and Dali are raising money for men's health with their rather awesome 'tashes. It took guts to stand up on stage and present with that handlebar, please give a penny or two:

My purpose for attending was largely to present the Hardcore Concurrency for Beginners talk that Mike and I debuted at an LJC event a few weeks back. Almost as important was catching up with the aforementioned LJCers and meeting with as many people as would talk to me. After the disappointment of the sessions at Java One, sitting in a room being talked at was quite low down on my list of priorities.
Sometimes it's nice to be wrong.

The sessions at JAX were of a very high standard, and I learnt something from every one. I was pleasantly surprised by the calibre of international speakers that were there, and the sessions seemed to be pitched right for me personally, which was nice.

Downsides:

I'm going to cover these first because I like to end on a high note. Firstly, although I was interested in the Open JDK session at the community night, it was really on way too late (and after too much beer - i.e. more than none) to get the most out of it.

It's a bit of a shame that our session was the last presentation on the final day, by that time people's brains are fried and we didn't get as many questions, or as much interaction, as we usually would. Maybe that's because everyone understood and agreed with us. But we did get great feedback so I could be scraping the barrel for things to complain about.

The following sections outline the main takeaway points for me.

Software Craftsmanship / Design

Sandro did a great job emphasising that Software Craftsmanship is about professionalism, not beauty. We should be doing the right thing because we want to, because it makes everyone's lives easier in the long run, and because it is the right thing to do, not because some process dictates that we do it. The other thing that really struck me was how having a craftsman's mindset leads to us taking ownership of our career and investing in it. He also challenged us to stop being miserable and negative. If we're happy, we'll attract more (presumably happy) people into our circle.

Jason Gorman's Slow and Dirty presentation showed that ignoring quality slows down delivery not just in the long run, in terms of maintainability, but also in the short run - a TDD exercise of approximately 30 minutes took less time to get right when done in a test driven fashion, despite that fact that we all still think writing tests takes too much time. He pointed out that Twitter and Facebook are statistical aberrations - not every startup can afford to assume they will be bought out of their scalability problems. There was lots of interesting stuff here about quality, which was pretty inspiring at the time but in retrospect, as a team that already does Test Driven Development almost to the extreme, I wonder what's next for us to improve our quality even further.
Simon Ritter's keynote stated that code should be a joy to read, not simply easy to read, and Adam Bien's presentation talking about simplifying code: thinking about design, and not getting bogged down in unnecessary design patterns in order to implement something simple.

Concurrency / Parallelism / PerformanceRussel Winder's session around message passing had me thinking. It was particularly interesting to see him say things that are possibly the opposite of what we (the LMAX/Disruptor types) are preaching. For example, that programmers shouldn't care about the low-level details; that we should be using models (i.e. abstraction) to deal with parallelism; that you should let the JVM deal with thread management. However, I think he's fundamentally coming from the same place as us: "concurrency" in the past was not a good model, it was designed for old hardware that was trying to run multiple processes on a single core. With multi-core systems you need to be running code in parallel instead.

Dan Hardiker's performance testing presentation was another one that reinforced that testing first, finding what the real performance is, profiling and then targeted experimentation are all fundamental to getting good performance. There was a lot of good advice to how to write good performance tests too.
Another point from Simon Ritter's keynote reiterated that the performance free lunch was over, and we need to get better at writing parallel code.

Workshops
Both the Open JDK session and Ben and Martijn's "Spring cleaning your code base with Java 7" had me attempting to do things with my mac I never intended to do (i.e. write code). Thanks to Ben and Martijn's patience, I finally got IntelliJ playing nicely on the mac with Java 7, which was a challenge but I'm pretty pleased I've achieved it. The Open JDK one was not as successful for me personally, but I got a good feel for the process of building it (i.e. it's hard and it takes a very long time).

Other great stuff:

The keynote by James Governor from Redmonk was really thought-provoking. So thought-provoking I wrote no notes and can't remember any of it.

As last time, the Community night was really great. I met new people and I hung out with some old favourites. Dear God I must stop drinking with those guys. Hotel bars are particularly awful for losing track of time.

I heard about the Java 7+ features enough times from various people to be able to give an overview of the release plan to my geek friends in the pub on Friday (hey, they asked).

I learnt how to use twitter to bridge that gap between me and other attendees, and made new friends without having to do the scary thing of approaching strangers.

The lunches we rather good.

Going to a conference 20 minutes from home is a bonus. Nice to meet other London devs as well as the European ones too.

To me, it seems as if the relevance of the JCP is starting to seep out into the real(er) world.

The tables for laptops at the front of the rooms was an awesome idea. For a start, it encouraged people to get into the room early to get one of those seats.

I had a great time at the conference, I learnt stuff and met people, which is all I really want.

Wednesday, 9 November 2011

"What... exactly... were you guys looking to get out of today's event? Because..."

"Because we're girls?"

"Um... yes..."

Kim impetuously opts for The Truth: "We're here to meet men."

Our interrogator looks round dubiously.

"No, really, why are you here?"

Phew. My reputation is intact1

Kim eloquently describes what her situation is as Product Manager and the criteria she's measuring third party products against. I explain how LMAX aims to be the fastest retail exchange in the world, and therefore low latency is a tiny bit important to us. I talk about how we created The Disruptor on our path to achieve that goal. The guys gathered around us look a little... shell-shocked.

I'm exaggerating for Dramatic Effect. Before anyone starts getting upset about the only two girls at the event who weren't staff or hospitality being singled out, you have to give the guys credit. They approached us, engaged us in conversation, and had a very serious question about what we were after, and was there anything the vendor could do to either improve their offering or to make their sales pitch more appealing.

And don't get me wrong - it's brilliant being different in a situation like that, if people are brave / foolish / drunk enough to talk to you. It beats the hell out of sitting in a corner trying to get up the nerve to speak to Strangers (been there, done that).

But it is quite a contrast, even from the Java events (JAX London, Java One). There, I was in a select group of people of the female persuasion. But I was also part of a community, and treated as A Developer. At very specialised events (low latency, high performance in particular) diversity is almost non-existent. You can count the number of women on one hand (if you can see any at all) and even the developers wear suits (poor bastards). However it would probably be better if you could hide your surprise at hearing technical terminology coming out of a woman's mouth.

But... I kinda like it. Yes, I'm an alien. Yes, I'm special. But if it means you make the extra effort to speak to me, I can live with that.

1 "Extra extra, read all about it! Blogger And International Conference Speaker Only Does It To Meet Boys!" Not quite Jordan Stalks Rugby Ace For Sperm Donor. Which I really did see this morning.