Saturday, August 25, 2007

20 things I learned at FullCodePress

Hmmm. I've been thinking again... and these are just some of the many things I learned at FullCodePress, based on how the Code Blacks peformed:

1. Great teammates


Jeffrey, Zef and Steve. When they pick you for the team, pray very hard that your teammates will be people you can get along well with - especially under stress. The Code Blacks were incredibly lucky in that, not only did we mostly know each other already, we also like each other - and I can certainly say that I like all the boys even more now that we've gone through FCP together.

I work with Thomas every day at Shift and we get on really well; Zef is one of my best friends - I've known him for years; Zef had worked with Jeffrey at Provoke for a couple of years before Jeffrey moved to Xero; I've worked with Mark at Shift in the past and we knew each other before that through the Welli dance scene; and I first met Peter a few months ago. In fact, the only person none of us knew before the event was Steve, our wonderful designer from Hamilton.

2. The project manager


Thomas in full flow. Hope for a geek as your project manager - it'll make all the difference in the world. Thomas has been using computers and doing internet stuff since before it was invented (almost!) - which meant that within moments of the final team-member (me) being announced we had a wiki, a blog, a bunch of domain names for the blog, a chatroom and even a Skype linkup with Steve for when we had planning meetings in Welli.

Thomas also twittered and blogged throughout the event itself, which kept us in touch with the outside world, and allowed people to see something of what we were doing, even when there was nothing to see on the server.

3. Team identity


The Code Blacks before the show. As soon as you can, figure out your team name, your team logo, style your blog to match, and get those T-shirts printed. It may not seem like much, but I think it gives you a tiny psychological edge, helps you to feel like a team, looks great in photos (and there will be many, many photos!), and gives you a web presence through which you can communicate.

I expect we'll pass our Code Blacks name, logo and assorted paraphernalia on to the next NZ team next year - although we might keep the T-shirts - but there's a screen made and paid for now, so they can always have more printed...

4. Know your judges


The very very pretty Kiwi judge, Natasha Hall. Take very careful note of who the judges are, what their specialisation is, and (most importantly) what they think about any potentially controversial issues they might be judging you on. Go read their blogs. Check out their websites, and for gawd's sake, if they have taken a stand about something in the world of, say, accessibility, make sure you use the methods they recommend. Or have a really really good reason why you have chosen to do it differently, and be prepared to defend it.

This one could have really bitten us in the bum - as we found out during our "judges grilling session" when a disembodied voice from a laptop (Derek Featherstone, accessibility consultant from Canada) asked us whether we were aware of the controversy over access keys - and why we had decided to use them. Ulp! Derek's not convinced they're a good idea - and we had to do some fast talking to show we'd thought about it and why we'd decided to use them anyway.

5. Setting up your workspace


Aim to set up your workspace so it resembles your RL workspace as closely as possible. Again, this might not seem very important, but believe me, after 24 hours of high-stress coding, it really makes a difference.

Me, my workspace, my robot arms, our client Debbie (and MrDebbie). And my saggy face. At about 6am. No-one looks good at 6am. If you're taking your laptop, and it's not the one you use at work, make sure you have the same software installed (and same versions if possible) that you're used to using at work. Ensure that your teammates know what software you're using, and check that everyone's versions are compatible.

If you need a test machine with stand-alone versions of IE - and you're the one who's good at bug fixing - take an extra PC laptop with you. I made a big mistake here and didn't take one with me - and my laptop is a Mac. I had to rely on using Steve's PC for testing, which was a stoopid idea because he was using it pretty much the whole time. I do have VirtualPC on my Mac but it's slower than a very slow thing - and therefore pretty much useless.

Take a mouse and keyboard with you if you're using your laptop. It might be fine messing about on the lappy at home while sitting on the floor watching TV, but when you're going 24 hours straight on a conference table that's not ergonomically designed to be a used as a desk, you really need your nice big external keyboard and your mouse. Borrow the bibles or the phonebooks from your hotel room to raise up your laptop so you're sitting comfortably. There's nothing worse for your back than crouching over a laptop on a table that's too low for 24 hours.

If you use any kind of ergonomic stuff for comfort and to combat RSI/OOS at work - take it with you if you can. I use Ergo Rests (aka 'robot arms'!) and I'm VERY glad I took them with me. I think my arms would have fallen off if I hadn't had them. Note that many conference tables are built with the base frame very close to the edge of the table top and that your Ergo Rests might not fit properly. Take the extra-high clamps with you just in case (as well as your normal ones) and be prepared to swap tables if you can find a better one, or beg the organisers for a piece of MDF to put on top of the table that you can attach them to.

6. Losing the plot


T.A.S.M.A.N Superhero (aka Thomas). Accept that somewhere around 2am your team will pass through an hour-long period of losing the plot. The work pace will slow to a crawl, things will start to get silly, Thomas will get a little too in-your-face and Ali will snap at him (considering this was the ONLY time during the entire 24 hours that there was the slightest bit of tension between team-members, I think we did pretty well - love ya, T-dog!).

Don't panic, though - the team will eventually break through the doldrums to get their second (or third or fourth) wind, and all will be well.

7. The timewarp


Collaboration. Thomas, Steve and Jeffrey - and the back of my head. Plan in advance for the fact that the first 12 hours will move at a normal pace - but that during the second 12 you will slip down an interplanetary wormhole, and end up in a place where time speeds up to twice or three times as fast as normal. You will NOT have enough time to do everything you want to. As time ticks down, start prioritising like mad, and use your time wisely.

8. Be nice to everybody


Duh! Yeah of course you're all nice people and this goes without saying, but there's more to this that simply representing yourself and your country in the best possible light.

For a start being nice to everyone (whether they be client, organiser, judge or volunteer) certainly won't do your cause any harm. In fact you never know when someone might wander back into the judges' room and say "Gosh those Kiwis are such nice people - they really deserve to win on sheer niceness" - and the message (especially if it's delivered at 4am when the judges have had a few red wines and are suffering from sleep deprivation) might stick in someone's subconscious just enough so that they give you an extra point when it comes to the marking - and that might make all the difference :)

Zef, MrDebbie and Debbie. Being nice to your client also goes without saying (and of course we're ALWAYS nice to our clients!) - and it really helps if you strike up a great bond with your client straight away, like the Code Blacks did with Debbie and MrDebbie (they were LOVELY!). Remember that, in the context of the FullCodePress competition, your client will be grilled by the judges and if she likes you, and if she feels that you "got" where she was coming from and delivered what she wanted (or more!) she's gonna say positive things about you - and that's a Good Thing.

Knowing deep in your soul that you're being nice to everyone will also help when you're too tired to think straight, and it might just help you to get through the meltdown at the 23rd hour when everything goes pear-shaped and you've got 5 cameras right in your face hoping to catch you completely losing it. Mark - you did an amazing job - if it'd been me I think there would have been blood on the floor (or me in a corner, weeping...)

9. Information out... and information in


Think about what you want the judges (and the watching world) to know about, and what you don't.

There will be many and varied volunteers and judges mooching in and out of your room as you work. They will catch you unawares and chat to you during dinner. They will then blog about your conversation and tell the judges what you said. They will drag you out of the workroom when you're least expecting it and interview you on camera when you're dog-tired and have no idea what you're saying. By the wee small hours you will no longer remember who's a judge and who's a volunteer and who's an organiser, and you won't really care either, because the pressure will be well and truly on.



If you're planning some amazing thingamybob for the website and you don't know if you're going to have time to implement it, it's a good idea to mention it to someone - anyone - because it's bound to get back to the judges. If they know you've thought about doing something, even if you didn't quite get it finished, at least they'll know it was in your head (and possibly in some state of (in)completion on the server). While we didn't consciously plan to do this, I think it might have happened anyway, and when there are only a couple of points separating the teams, that bit of extra information might just make a difference. Who knows if it did - but there's no harm in getting it out there anyway.

Conversely, if you have a completely brilliant idea at 4am and you don't want the other team(s) to know about it - don't mention it to anyone who's not on your team. It will be blogged or twittered about, and if the other team is on their toes (and you know they might be), they'll read about it. And you don't want them nicking your idea at 5am and doing it better than you did. Not that this happened - but better safe than sorry.

10. Sleep


Don't expect to get any sleep. You won't.

11. Food and drink


G - not V. Don't eat too much dinner - it'll make you sleepy and you will lose focus for an hour or so afterwards. Better to snack throughout the 24 hours to keep yourself going.

Keep your fluid intake up. Coffee (a must-have), water (another must-have), your choice of other caffeine-enhanced power drinks (not for me - I hatesss 'em!), alcohol (probably not until afterwards...).

Remember that there's no way you're going to want to stop for breakfast on the second morning, because by that time there will be only a couple of hours to go and you'll be panicking like mad trying to get it all done.

12. Get there early


Peter, Steve and Zef doing the touristy thing near the Opera House. If you can, get to the venue a couple of days beforehand. If you're coming from overseas you'll need a day or so to acclimatise and get your body clock somewhat sorted. It's also good for the team to have some time to kick back, do some touristy exploring stuff and generally relax before the Big Day. You'll all be feeling a bit stressed and keyed-up before it starts, so take some time-out and chill out.

13. Setting-up time


Give yourselves the maximum amount of time to get set up in the venue. You know the networks will be a nightmare to sort out, and that it will take you at least three times longer to get ready than you thought it would. Getting there as early as possible will also give you a chance to rush out and buy anything you forgot or couldn't bring with you - even an extra laptop if you have to.

14. Winding-down time


Flaked out. After the competition is over, plan to stay an extra day at least, otherwise you'll be totally buggered. Remember that once the 24 hours is over you won't be able to crash out straight away because you'll have to wait a few hours for the judges to deliberate - and you want to be awake when they announce you've won :)

Thomas and I flew home from Sydney on the Sunday night, which meant that by the time we got home we'd been awake for about 40 hours. Not a good look if you need to get to work the next morning (needless to say, I failed dismally on that score...). The rest of the team stayed until Monday afternoon, which meant they got 18 hours' sleep from Sunday afternoon until Monday morning - and were already sleeping soundly in their comfy hotel beds while Thomas and I were trying desperately to stay awake in the airport lounge...

15. In-your-face - and not looking your best :)


Horrendous picture of me. Don't look! DON'T YOU LOOK! Recognise that, as an international celebration of all that is geek, part of FullCodePress is that your every move, thought and inspiration must be blogged about, twittered about, photographed and Flickr'd or filmed and stuck up on YouTube. That's part of what makes FullCodePress so special, and you just have to accept it, and go with it.

It means they will be in your face when you have a meltdown (see point 8), it means they will be constantly taking pictures of you and trying to interview you when you're trying to concentrate, and it means that you are guaranteed to see bloody awful pictures of yourself looking your most haggered at 3am when most normal people would be tucked up in bed with no-one to see them but the moon, their SO and their cats. You will look like shit, you will seem to make no sense when you review those videos on YouTube the next day, and you will wish you'd at least smiled when the cameras came round - and that you didn't look so serious and/or double-chinned and saggy when you're concentrating.

Let.it.go.

It's part of the fun - and honestly - who wouldn't look like shit after 24 hours of coding?

16. The dreaded brain-freeze


Frozen Peter. Accept (and expect) that you will suffer complete brain-freeze for at least the first hour after you get stuck in to whatever it is they selected you to do. I know that Mark, Jeffrey and myself all experienced this when we each began coding/programming during the competition.

Something that you could normally do without breaking a sweat suddenly becomes an impossible task which you can't figure out for the life of you. You can waste half an hour trying to see why something isn't working, only to realise that it's 'cos you made a typo 30 minutes earlier. The simplest bit of coding is beyond you - you start to panic and think "Oh my God! I can't do this! I'm going to let the team down! The whole country is going to hate me once they find out I was completely crap!"

Do not panic. This too will pass. Stick your iPod on and disappear into the music that you work by. Do something so easy that even brain-frozen you can manage it, and move on from there. Go for a walk around the block, or a cigarette, or whatever you normally do when you need time-out. Surf the net for 5 minutes and laugh at the crappy photos of all your team-mates. Run up to your room, scream into your pillow, and come back down again.

You know you can do it. You do it every day. You're one of the best in the country - that's why they picked you. After a while your brain will stop doing "deer in the headlights" and it'll start clicking back into gear. It's scary when brain-freeze happens, but it will get better. I promise :)

17. Give yourself time to fix the bugs


How do you do an unordered list again? I forget... This is a tough one, because it all depends on how long it takes to get things up-and-running, but... we learned that trying to tidy up pages of text with 20 minutes to go, when you've been coding for over 23 hours and you can't actually see straight any more - is not an easy task. You will not complete it if you don't have enough time - and that's annoying 'cos it'll look messy when it should look perfect.

One extremely useful thing we discovered is that using the same HTML/CSS techniques can be invaluable when you're pressed for time. With an hour to go we finally got to see Jeffrey's templates in IE6 - and they looked a bit sorry for themselves. You know what IE's like - it's a nightmare for bugs! The nav was all over place, and half the links were missing. However he'd used the Sliding Doors technique to build the main nav, so it was a two-minute job for him to add a couple of things to the stylesheet (cribbed from my own website where I've also used Sliding Doors) and bingo! He'd recreated his perfect main nav in IE6. Phew!

18. Courting controversy


Mark - who, me? Realise that if you do something unexpected - like attempting to build a full CMS, database management system and website from scratch in a single day (as opposed to adapting an existing CMS), people will not only think you're completely mental (and will tell you so), they'll also talk about you (and it) all over the internet for days afterwards, and demand that you explain yourself.

This is a good thing. You will be forever known in geek circles as "that crazy Kiwi who built an entire custom CMS during the inaugural FullCodePress" - and you will be able to put it on your CV and explain that, yes you were insane to even consider doing it - but you made it work.

19. It's supposed to be FUN!


Happy Jeff and Steve. Do not take yourself (or the competition) too seriously. This is supposed to be FUN. If you are too intense and serious about it, you will lose the fun-ness of it.

Yes, yes, I know if you're a Kiwi you will suddenly understand how the All Blacks feel before a big game, and if you're seriously into your work and set great store by how well you do it this will be difficult but...

Let.it.go. Just a bit.

Just enough to enjoy the experience and get the most out of it that you can (while putting the most into it that you can). This the most intense thing I've done since the days of The Gathering, and once I got over myself, I had a ball.

20. Win or lose, we're all winners really


As the judges deliberated in their secret enclave, I think most of us Code Blacks didn't think we had won. We hadn't finished everything, there was stuff broken on the site, and there were a bunch of things we'd wanted to do that we hadn't been able to do in time. Jeffrey was confident (he says it's because he's an Arrogant American!), but I'm not sure any of the rest of us were. I certainly wasn't.

Victory dance. So when they announced that the Code Blacks (NEW ZEALAND!!!!) had won by 2.7 points out of 100, I about fell off my chair in shock. (I was actually sitting on the floor at the time, but you get the idea).

I felt really sad in a way that there had to be a team that didn't "win". The Aussies (Koding Koalas? Web-savvy Wallabies?) did an awesome job and they were all lovely people, so I felt sorry that they didn't get to jump around for joy at the end.

In the end, though, we were all winners because we'd achieved amazing results in just 24 hours.

And the MOST important thing - which was at the forefront of our minds from the moment we each applied to take part in FCP - was that two charities got a brand-new website built by some of the best web professionals in Australasia.

We've developed a really strong bond with Debbie, and we're going to maintain and grow that relationship over the next year at least. In the short-term we're tidying up and finishing off the site, ready for their big launch in October.

In the longer term we want to see how we can use the website to develop and strengthen the work that the Grampians disAbility Advocates Association already does, and leverage their web presence to create a real community amongst disAbled people and their carers in Victoria. That way, as well as standing beside the people that they help, the GdAA can help them to help themselves, and to support each other in their daily lives.

And that's truly winning, however you look at it.

The Code Blacks and Debbie Verdon.
From left to right: Thomas, Mark, Steve, Ali, Jeffrey, our client Debbie Verdon, Peter, Zef

Technorati tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , .

3 comments:

Mike said...

Ali, that's a great post! And wonderful to have your thoughts, tips and impressions down like this. The only thing I could possibly take issue with is the judges and organisers having too many red wines in the middle of the night. One can't have too many red wines!

John said...

Your blog's informative is very rich in contents. I like your way of
presentation. At times I disagree with your views but thinking about it who
presents views that are acceptable to everyone. Keep posting your good
blogs.

Anna Sebestyen said...

Really great post, and congrats on the team's achievements (and basically the Full Code idea as such). If you happen to come by New Orleans, let us know: you've just been invited for a dinner. :)

(drop a line here if you come: annasebestyen at gmail dot com)

PS: looking at your list of books -many of them I share with you - you may also appreciate Philip Pulman's His Dark Materials thick trilogy.