RSS
Facebook
Twitter

Wednesday, October 12, 2011

JavaOne 2011: Roundup

Having been back in London for a few days I've had some time to digest the madness that was last week.

My lasting impression of JavaOne is almost entirely positive.  Granted, it was my first major conference, so maybe I'm just not jaded yet.  But let me tell you what I loved about it (yes, I did cover some of these in my last post):
  • First and foremost, the people.  I don't remember meeting a single grumpy person. Everyone I spoke to was there to get the most out of the experience, regardless of how many times they'd been previously.  In my experience, techies are not conditioned to be socially comfortable, yet introductions were made and the conversations flowed easily.
  • Of course it wasn't just the attendees who were friendly, the staff and organisers were approachable and helpful, and it was nice to have people hanging around to direct you.
  • One of the (few) advantages of having the event over multiple hotels was the outdoor space between them.  It's unfortunate that it rained,  but I really liked being able to hang around outside.  I especially liked that they had provided power points for your laptop, so you didn't have to be cooped up indoors to update your blog.  I also thought that having to walk between the venues was good exercise, given I didn't make it to the gym last week. However I can see why people want to move the event back to one central location.
  • I personally found the sessions less useful than the networking.  I mostly attended the high-performance / concurrency sessions, but I probably should have been to ones about things I didn't know (e.g. other JVM languages).  My favourite session was Martijn's Diabolical Developer session, but then I'm a fan of stand-up comedy.  
  • Another favourite was the Java Posse live podcast.  I'm ashamed to admit that I've never listened to one before (my excuse: I don't listen to podcasts at all because I don't have a long commute to work, which would be the ideal time).  I thought it was great how everyone felt like a part of the Java Posse and not a passive audience.
  • I really felt that Oracle was trying its best to invoke the spirit of community.  Maybe that's because when I wasn't in sessions or having random conversations, I was in Java User Group or Java Community Process events.  It seems pretty clear to me that the inclusion of SouJava and the London Java Community in the JCP EC has shaken things up a bit.  But then, I would say that - I'm biased.  But the vibe I was getting across the whole conference was that having the community involved in this key decision-making organisation is a step forward.  I would even go so far as to claim that it inspired a number of other players to seriously consider getting on board rather than complaining from the sidelines.
  • On a related note, I really enjoyed the final keynote on community. To me, that was an indication that Oracle takes our participation very seriously.  I liked that it was split into a lot of different interviews and panels, all quite short, which showcased the variety of the Java platform community.  I came out of that feeling pretty warm and fluffy about the future of our technology, and proud to be an active part of it.
Stuff I was not so bothered about:
  • Vendor keynotes.  Pretty dull to be honest.  I understand why they had them but after the first one I didn't turn up to any more.
  • The other bad points I already mentioned in the last post.
Personal highlights:
  • Picking up the Duke's Choice Award (video - note: only seems to work in Firefox for me) for the Disruptor. Yeah yeah, I'll shut up about it at some point, let me have my moment of glory.
  • Co-presenting a session on the Disruptor with Martin.  He invited me to stand up with him when we realised I could go to the event, and I was terrified of the thought.  So I did it.
  • Meeting and being interviewed by the JDuchess ladies.  The video doesn't seem to be available, so maybe I was rubbish, but it was a cool thing for me all the same.
  • Talking about the Disruptor for the Java Spotlight Podcast and the Oracle news guys (again, I can't find the content for this yet).
I had a really brilliant time, and would love to repeat the experience again as soon as possible!

Tuesday, October 4, 2011

JavaOne: Initial Observations

So I've been at JavaOne for the better part of three days, it's time to record some of my observations so far:

  • The wireless access is rubbish.
  • <Gross generalisation> technical people are not natural public speakers.  Makes me feel better about the presentations I'm going to be giving (see A Beginner's Guide to Hardcore Concurrency).
  • The sessions are less useful than getting out and chatting.  I've had a really excellent time, I've met: people from other Java User Groups; the Duchess girls; other Duke Award winners; the Azul guys; guys (well, girls) from O'Reilly books; JCP members and many random and awesome people.
  • Everyone thinks that Large is an acceptable default t-shirt size (it's not).  Vendors - if you're really serious about appealing to The Other Gender you need to stock XS, if not actual skinny tees.
  • If you're running a conference, you should probably have your projection screens above the height of the audience members' heads
  • People at JavaOne are dead friendly.  I've ended up in a lot of conversations just by virtue of standing alone for longer than 30 seconds.  It is noticeably easier to talk to people here than at the conferences I've been attending in London.  Not sure if that's a location thing or a domain thing.
  • Socialising in London is great practice for this sort of event.  I am capable of taking advantage of free drink and still maintaining a conversation and staying upright in 6 inch heels.
  • I miss American breakfasts.  I've been gorging myself on pancakes, biscuits and gravy, and eggs benedict.  I'll be calling my personal trainer as soon as I return.
  • Haven't seen anything to contradict my view that San Francisco is not the Brit's typical view of California - the weather is rubbish.  London has been hotter and sunnier this week.
  • Sharing an apartment with your CTO is not as weird as you might think.  Especially if you relegate him to the closet (no, that's not a euphemism).
  • It's difficult to remember to Tweet or blog when you're totally engrossed in conversations with people.
Here's a photo of me representing LMAX as I pick up the Duke Award we won for the Disruptor:


 (Thanks to Martijn for taking the photo).

I was grabbed for an interview which should be available (un-edited - erk!) on java.net at some point, I'll post it when it's available (if it's not rubbish).

Tuesday, September 27, 2011

JavaOne 2011

So, I'm off to JavaOne next week!

This is an unexpected and very pleasant surprise.  I'll be there with Martin (of the Disruptor fame), and Martijn (that's not going to get confusing at all).  Martin will be talking about the Disruptor on Thursday, and Martijn is busy talking about... everything.  Most importantly for the LJC he's representing us in our shiny new JCP Executive Committee role.

I'm really looking forward to meeting pretty much anyone and everyone who'll talk to me.  It's the first international conference I've been to and I'm hoping to meet people I wouldn't normally get a chance to see in London.  It's also really cool to be able to represent both LMAX and the London Java Community. Hopefully it won't lead to some sort of split personality syndrome.

Almost more excitingly, I'll be doing a spot of shopping in New York on the way there and back. Because, well, it would be rude to fly over to the States and not drop in on my old home.

Maybe I'll get a chance to catch up with some of you in one of those amazing cities...?

Friday, September 23, 2011

First public appearance caught on video


Remember a while back I talked about my first public appearance?

Well, I chased down the video, because I'm masochistic, and here it is for you all to enjoy.  Pleasingly my mannerisms are slightly less of a camp man trapped in a woman's body, which was my impression the last time I saw myself presenting.  It helps that YouTube has made the video so dark you can't see me.

Slides are available for all to enjoy.

Special thanks to Playfish for hosting the event - as always, their hospitality was awesome.  The fact that they didn't serve wine is probably a Good Thing.

Tuesday, September 20, 2011

Are you an awesome developer?

We are hiring!

If you think we're doing something interesting, or if you think you can help us do our thing even better, come join us.  Your boss will be the dude who wrote Continuous Delivery, you'll get a chance to experience what Danny calls meta-Agile (or Agile Agile), and you'll really start to care about Domain-Driven Design.

Ideally we're after Java people, but at the heart of it we want people who are dead passionate about development.

Apply via the Stack Overflow Careers advert (you get extra brownie points if you mention my blog).

Saturday, September 17, 2011

What my hangovers can teach you about Agile

As a survival trait for living and working in the cites1 of London, I have a set of rituals to avoid hangovers. If you are not a single person living in a city like London, you might not understand how vital this is. Most networking, particularly in the financial services industry, is done in the presence of alcohol.

So preventing the inevitable hangover is quite important to the other part of the job – the actual working bit. I'll let you into a secret and tell you my nightly ritual:
  • Floss and clean teeth (OK I'll admit, I barely floss when I'm sober let alone drunk)
  • Cleanse/tone/moisturise (I'm a rubbish girl, this is a very recent ritual for me)
  • Apply cuticle cream
  • Do my calf stretches
  • Drink 500ml of water
  • Eat something, even if it's a dirty McDonalds (quarter pounder with cheese, no pickle no onion).
Prior to all this is the additional requirement “don't drink more than a bottle and a half of wine”. Everyone has their limits, lots of practice means I know full well what mine are.

This actually works for me. I won't claim to feel capable of being quite as high performance as the code I'm working on, but I won't feel like killing myself, and I will make it to the gym before work and do a whole day of productive coding.

If you were trying to solve a similar problem (“no debilitating hangovers”), you might try and follow my rituals. But you might decide that drinking the water was going to mean you had to go to the loo in the night, and strike that off the list. You might be on a diet, so you don't have the food, thinking the alcohol is calories enough for the night. And you'll follow everything else religiously, but still have hangovers.

Or you might ignore the alcohol intake guidelines, thinking the stuff that you do at home to repair the damage should be enough, and drink 12 pints of margaritas. Or you might be the sort of person who can only get away with drinking a couple of glasses of wine / pints of beer, and follow my rules perfectly, but still feel like dying the next day.

And when this happens you'll look at my rituals and think "What a waste of time! This person has no idea what they're talking about", and throw the whole lot out of the window and go back to doing waterfall development (oh wait, I'm getting ahead of myself).

Or you'll do the bits that actually prevent the hangover (the water, the food, restricting alchol) and go around telling the interweb I have no idea what I'm talking about because the other stuff is a waste of time.

The key point here is that this works for me. It's foolish of me to tell the world this will fix all their problems, and pointless for others to copy it without realising why they're doing it.

For example – why on Earth is “apply cuticle cream” on there? It doesn't actually fix the problem of dehydration due to excessive alcohol intake. But it's important to me, because I need to make the time to do the whole ritual to get my brain into the right place for sleep. It's also dead important for my subconscious – alcohol is basically abuse of my body, the beauty part of the regime is to remind my brain that its important to take care of myself too. It doesn't fix the immediate issue of hangover the next day, but it aims to prevent future problems of drowning my sorrows in alcohol. It's an important part of my Long Term Plan – these rituals need to be worked into the daily steps to lead eventually to World Domination.

And calf stretches? Well, I'm injured, have had shin splints for a million years. If I want to run the Royal Parks Half Marathon in October, I need to stretch 3 times a day. Doesn't matter if I'm drunk or not, it's not an excuse. The half marathon is a very important longer-term goal. But you don't need to do it. Well, unless you have the same issue.

The important thing is that all of these rituals are tied to a goal.  But they're not the same goal:
  • Floss and clean teeth. GOAL – don't get told off by the dentist. Don't require fillings - costs money and not great for overall health.
  • Cleanse/tone/moisturise. GOAL – prepare subconscious for sleep and remind brain that body needs love.
  • Apply cuticle cream. GOAL – prepare subconscious for sleep and remind brain that body needs love.
  • Do my calf stretches GOAL – Royal Parks Half Marathon
  • Drink 500ml of water GOAL – prevent Debilitating Hangover
  • Eat something, even if it's a dirty McDonalds GOAL – prevent Debilitating Hangover.
The thing here is that if I didn't do the stuff to aim towards longer-term goals, I might be more inclined to drink more out of boredom or despair, I might have worse hangovers in the future.

To paraphrase Eddie Izzard “...and that's like our Lord Jesus the agile process...”. Agile, in whatever form you take it (actually all processes) is supposed to enable you as a team / organisation to work better. Whichever cult you follow, there are practices designed to work for you to make you more productive. But you do have to continuously improve, gather and act on feedback, and, most importantly, to know why you're doing what you're doing. Otherwise it's just cargo cultism – you look like you're doing everything, but the results just don't arrive. I've worked for a scrum-but company – they had the cards, short iterations, invested customers.  But no single product owner, they never acted on the results of retrospectives, and most importantly the team didn't own the work they'd signed up to. They also had a project manager who told people what they were doing. This doesn't answer the question. This is drinking 12 pints of scrumpy and doing "cleanse/tone/moisturise", and wondering why it still hurts.

You have to understand the problem. You can't blindly follow the stuff that you fancy, the stuff you find easy. If it's easy, it's probably something you were already doing.  If you picked up agile to make a change to deliver more/better/faster, there is going to be some pain. Because if what you were doing before was working, you'd carry on doing it. So improvement is going to be hard. At first.

The key is to stick with it, to check progress, to continuously improve. To find what works for you.



1 Random fact of the day: London is actually two cities, the City of London and the City of Westminster.  But you probably already knew that.

Sunday, September 4, 2011

Effective Sketches

On Thursday I was at Simon Brown's Effective Sketches session at Skillsmatter.  Just because my pictures are pretty awesome doesn't mean there's no opportunity for continuous learning.

The points Simon made in the session really made sense to me, and I wish I could have had something like that as a primer when they taught us UML at university.  Without the context of what the diagrams were supposed to mean, to convey, all the boxes and lines made no sense to me back then.  I'm still not a fan of large chunks of UML because I think the convention sometimes gets in the way of real meaning.

My take-away points were:
  • Don't try and squidge everything onto a single diagram.  The reason lots of different flavours of architecture diagrams exist (e.g. logical view, infrastructure view, etc) is because you have different audiences for each of the diagrams and different things that are important when you're looking at it from one particular angle.
  • One diagram you particularly need, especially if you are producing a stack of documentation for a system (e.g. you're a consultant presenting findings to the client) is a really succinct, summary view of what the system is actually trying to achieve.
  • If you're not going to use UML, you should at least agree on consistency and some conventions - for example, does the direction of an arrow represent data flow or dependency?
  • UML tools make it easier to represent different views of a data model and retain consistency.  One diagram is less likely to contradict a different view if your sketching tool points this mistake out to you.
  • Yes, your code should be self-documenting.  But you can't give the code to your business customers or expect your hardware guys to figure out your requirements from it.  To pass knowledge around the business it's more efficient to have diagrams representing the shared understanding of the domain.
  • Architecture diagrams should show the intent and the vision of the system.
I also used my laptop to take notes for the first time.  In the past I've preferred not to use a laptop, because a) I like pencil and paper and it allows me to doodle and b) the temptation to read my e-mail or check facebook is not something I want to succumb to.  But using Evernote really worked for me, I could annotate the slides with my notes, and it made converting my notes into this post a lot easier.

PS it has not escaped me that this is one post without a diagram.  The irony is not lost on me.