Tuesday, March 20, 2007

When Offshoring Your Development Team Means Buying a Boat

Play word association with most developers and the response to 'offshore' will most likely be a city in India. Starting my career in the oil and gas game meant offshore development has an entirely different connotation. Let me share my first experience as an offshore developer.

Offshore -- meaning 'out at sea'

Lesson 1: The sole developer of untested, mission-critical software, should expect to be going wherever the aforementioned software goes.
Sure you chose the oil and gas industry, but you joined as 'the lynch pin of a new technical department'. Sick of relying on external resources for their software, you were hired to write some for them.

By the time you realise their office isn't exactly in Portland, you're sitting in a 10' sea container floating in the middle of the Indian Ocean pressing a button every 108 minutes.

What three things would you bring to a desert island?

You're going 150km (95mi) offshore for 3-6 weeks where there's no broadcast TV, no radio, no phones, and absolutely no internet. There is a satellite phone, so if you're ready to pony up $1 / second you can reach out and touch somebody.

If the boat's orientation is right (and the stars are aligned) there might be a nightly email uplink when you can send / receive today's emails on a public, unsecured PC running Outlook Express. Nothing larger than 50kb and absolutely no attachments.

What to bring? The following are verboten : alcohol, women, drugs, explosives. The challenge? Your total allowance is 10Kg (22lbs) which includes a hardhat and steel-capped boots.
Note: If it's a decent sized job they'll do your laundry nightly, so a few clothes go a long way; just remember they wash them at around 150C, so don't bring any delicates. Or nylon. Or dark colours.
3 pair coveralls (pre-washed and worn to avoid that n00b look), hard hat, steel tipped safety boots, sandals, underwear, socks, t-shirts, and toiletries (the latter will last longer than you expect. Don't think about why).

Then the essentials:
  • Notebook computer, iPod, PSP.
  • Three weeks supply of candy.
  • Large collection of TV episodes and movies.
You mobilise from Karratha, a remote but booming resources town, and no-one but fellow but oil & gas workers are flying there at 6am on a Monday morning. Most smoke, and some look like they've prepared for 6 alcohol free weeks by drinking for the last 24 solid hours.

Three hours on the plane, then straight for the heliport. You catch a chopper out -- with any luck this won't be opportunity to put your HUET to the test -- and so far things are pretty sweet - even if the music piped in through your headset is less 'Flight of the Valkyries' and more 'Best of Tracy Chapman'.

No - that's not a fire exit. Questions? No, there is no fire exit.

You're in a part of the world where there are two seasons, hot / wet and hot / dry. Today it is definitely hot, and the humidity must be 150%. Perfect beach weather, but you're changing in to full length coveralls, boots, and a hardhat ready for your vessel safety induction.

Years of StarTrek means when you're told to 'report to the bridge' you have a brief Wesley Crusher moment. You're shown your muster station and which alarm means to head there -- and which one means you're better off going straight over the side.

You also get assigned a room about the size of a smallish walk-in wardrobe that you'll share with 7 others, each group of 4 on opposing shifts. You learn that your communal death trap room adjoins the engine room and there's only one entrance / exit -- up the stairs. If the stairs are burning you have no chance to survive make your time.

You glance sidelong at the DVD case when you hear the bridge crew talking about the scourge of piracy, but relax when you realise they're talking about actual pirates... until you realise they're talking about actual pirates.

Your induction moves on to the mess (where posters like this do little to quell concerns), the galley, the smoking room, and the rec room. More often than not, these are all the same room. The rec room has the TV and DVD player and houses the ship's library - filled with all the classics: Playboy, FHM, Barely Legal, People. The DVD selection is more mundane but all have foreign covers and a distinct homemade feel.

Next, before anyone can even think about heading to bed comes the 24 hour living nightmare known as 'mobilisation'.

Just like a LAN party, but with more water and fewer pizzas

You're building Windows boxes, installing software, and fixing bugs. Then you're stringing CATV and 440V mains leads around the back deck. Telemetry from the ROV has to be fed to survey on the bridge, then back down to you in your inspection shack, so you've got the RS232 breakout box in full effect. Four live video feeds need to be recorded onto four digital video recorder PCs, a frame grabber on the online inspection PC, the bridge, and also backup VCRs.

There's cables everywhere. Access to everything is awkward, and there're always three people trying to occupy the same piece of space, and work with the same piece of hardware. All this is happening on the back deck of a support vessel as it ploughs out to the field at full steam in 2m seas and 24knot winds, with green water coming over the back deck.

They paid for a qualified inspection engineer. Son I am disappoint.

Hourly cost of support vessel and crew: $20,000. Hourly cost of ROV crew and vehicle hire: $10,000. Look on your party chief's face when you tell him the software's crashed and will take 30mins to bring everything back up so everyone can get back to work: Priceless.

Lesson 2: Mission critical means if the software goes down, the job stops. When the job stops the company responsible starts footing the bill. Feel the burn.

You're a programmer, you know this and so does your employer. But the client paid for an Inspection Engineer and expects to get what he paid for.This would be less of a problem if your employer didn't insist on you doing both jobs, or if inspection shifts were less the 12 hours long, or didn't require your full attention.

Now, rather than being the cutting-edge developer on the front lines you're a barely adequate inspection engineer who seems more interested in the software he's using than the job at hand.

Don't try this at home

The job runs 24/7, no weekends, no downtime. You can simulate the daily offshore experience at home:
  • Put an uncomfortable plastic chair in your bedroom closet where you've hung 6 LCDs.
  • Have 3 video cameras recording the bottom of an aquarium, each at a slightly different angle but looking at the same empty sand.
  • Park a big-rig next to the adjoining wall (and leave it idling).
  • Turn on a humidifier at least 110% relative humidity. Every 30mins alternate between a heater at 45C with an aircon at 15C.
  • Invite five complete strangers into your closet.
  • Get in, sit down and watch the screens. You need to give a running voice-over that describes what you're seeing, as well as logging the action in software. Don't worry if nothing's happening, just say 'The seabed continues to be flat and featureless. No sign of debris.'
  • Have someone lock the door and don't let anyone out for at least 12 hours.
  • This is important, have your friends rock the wardrobe by about 30 degrees side-to-side continuously. Randomly have them drop it.
  • Every 2 to 4 hours have something on the camera change slightly for no longer than 3 seconds. If you miss it, you lose.

At 7am the sun's up and you've done the handover to your replacement. After downing a cholesterol loaded deep-fried heart attack, you should be heading to bed. Instead you're front line support for the day-shift, fixing bugs, and implementing features. Around midday you have one last 3 course meal before wedging yourself in to bed so you don't plummet from the top bunk when the boat rolls 30degrees.

You get up at 5pm and head to the mess for breakfast; a quick look at the menu and you opt for the low GI staying power of pork spare ribs and mashed potatoes with gravy. Breakfast of champions. The ROV crew is on midday to midnight shifts, so there's another full dinner put on at 11:30am and another at 12:30pm. Play your cards right and you can get 5hrs sleep a night and still squeeze in 4 full 3-course dinner meals every. Single. Day.

Do I know you from somewhere...?

Three weeks in you realise that this three week job is not likely to finish in the next 24 hours. You email your loved ones explaining that rather than being home by the weekend, you'll be out here for another month.

Time passes.

At 5 weeks the homesickness has replaced seasickness. You're swearing like a sailor and you've not shaved since day three. It's been a month since you've seen your girlfriend (or any other three dimensional woman). There's so much porn being watched that people remark on being genuinely surprised they've never met any of the actors in real life. You've fixed everyone's notebook at least once, have challenged and defeated the entire crew in a series of all-in Quake3 Arena death matches. It's time to go home.


Last night everyone worked 24 hours to get the demobilisation finished, those on night shift (like you) are heading for 36 hours straight. Everyone is barely recognisable having washed, shaved, and put on their 'good' clothes for the first time in over a month. The flight back to Perth is a blur of G&Ts. For the first few days home you're walking with a swagger and when attending to nature you still lean forward and support yourself against the wall (to counter the non-existent swell).

You sit back and reflect. Your bank account certainly enjoyed your trip, and you will never in your life know your code as well as you do now. Was it worth it? No. Will you be going again..? I was back offshore within a month and did almost a dozen stints over 4 years. I've worked with people who went on one job, got choppered off after 3 weeks and quit the second they hit dry land. Your mileage may vary.

[Based on a much earlier submission to Everything2]

Friday, March 09, 2007

Cricket World Cup 2007

World Cup 2007 is upon us; the squads have landed in the West Indies and a flurry of warm-up matches are already underway. The real action starts Tuesday March 13th, when host nation The West Indies take on Pakistan at Sabina Park.

As part of my preparations, I've scoured satellite footage for the exact location of each World Cup venue. Considering that construction hadn't started on some sites when the satellite imagery was taken, this was no trivial task! The good news is that Google Maps
/ Earth imagery for the West Indies is pretty freaking good. The better news is I'm sharing my results!

Tour the Venues in Google Earth

Fly to each of the 12 venues hosting matches in this years World Cup in Google Earth using the World Cup 2007 Venues KML file.

Live World Cricket Map

The Live World Cricket Map Google Homepage module is a Maps mashup that's updated constantly
to show every cricket match for that day on a world map -- pitch perfect positioning shows you exactly where the games are being played. For the duration of the World Cup the World Cricket Map is centered directly on the West Indies. There's also a bigger version of the same mashup available at The Cricketing Yak for your viewing pleasure.

I'm embedding this widget into my blog for the duration of the World Cup - check out the top right!

World Cricket Calendar

Keep track of the action on the World Cricket Google Calendar that now includes updated map references for all the World Cup venues. I'll be updating the Super 16's and finals details once we know who's playing in them.

The Cricketing Yak's World Test Venues Map

This Google Maps mashup features all the official Test cricket venues for each test playing nation, and now also includes the precise location of all 12 World Cup 2007 venues. As well as the exact location of each venue, you'll see live weather forecasts, seating plans, live webcam links, and a picture of the stadium.

Just The Venues

If you want the venues without the fruit, here they are for your viewing pleasure:

Three Ws Oval, Arnos Vale Ground, Trelawny Stadium, Sir Frank Worrell Memorial Ground, Sir Vivian Richards Stadium,Kensington Oval, Queens Park, Providence Stadium, Sabina Park, Warner Park, Beausejour Stadium, Queen's Park Oval.

Other Resources

For everything else CricInfo have created an outstanding dedicated World Cup 2007 microsite that's an unparalleled resource for all things cricket, so be sure to check that out.

For expert commentary from a member of the CricInfo commentary team, check out Will Luke's personal cricketing blog, The Corridor.

And finally, there's a distinct possibility that Google will be providing some tools to cover the action, check out http://www.google.com/cricket on Tuesday!