Imagine a small, bustling city with a population of 6,000. Now imagine that the entire population of the city leaves, a new group of citizens arrives and the city trades all the goods and materials it needs to survive for a week\u2014all in a six-hour span.That's the kind of logistical problem Royal Caribbean International faces every time one cruise ends and another begins. So when I got the chance to visit the staff at Royal Caribbean Cruises Ltd. (NYSE: RCL), both at the IT office and aboard its largest ship, to see how it addresses logistics with software\u2026well, let's just say it wasn't a tough decision.All Aboard Allure of the Seas: Timing MattersMy visit starts at guest relations when Allure of the Seas is docked in Fort Lauderdale, Fla. I meet Jose Machado, director of software engineering, and James Defendis, an IT manager within software engineering. After a quick trip through customs, we board the gangplank and set foot on the floating city.A view of Allure of the Seas from the gangplank.The first thing I learn about the ship's software is the split in ownership of product. STX Europe, the ship's manufacturer, provides all the navigation software; this includes everything in the bridge that covers propulsion, fuel, weather, navigation and so on. Royal Caribbean provides the software to run the hotel, from reservations to guest relations to point-of-sale software at the shops. RCL also needs to provide Internet for guests, email for employees and, among other things, software to count the number of checked-out towels at the pool.My second observation is just how much technology is integrated into the customer experience. The company is the first I've seen to adapt touchscreen technology for this purpose and not just to create efficiencies at the point of sale. Every floor of the ship has a 32-inch touchscreen that can give interactive directions to guests' staterooms (they just enter a room number), help them find events sorted by time or type or locate the nearest restroom.Defendis shows me the technology, then explains how RCL built it: I note how quickly Royal brought the product to market, as I know of few companies that could develop the expertise on emerging Linux touchscreen technologies, integrate them with a database and have them in production right now. Defendis explains that the company outsources development of new and emerging technologies, then takes over maintenance.Anything a guest can see or touch needs to be new; the company essentially "rents" expertise to accelerate the development process. The applications that will never be seen by guests, on the other hand, including staff email, the reservation system or the towel check-out, have a lower priority, he says. They need to function, and the cost of maintaining them needs to be stay lower than the cost of a rewrite.How-To: Offshore Outsourcing Can Boost AgilityAt the end of our tour, we get a few minutes to visit the data center. It's not large\u2014there are perhaps eight racks, each with a half-dozen slots for technology hardware\u2014but it's extremely busy. While I'm there, the company is ripping and replacing its old satellite Internet connection. These are huge, gold-ball-like antennae that go on top of this ship. There's a deadline to meet, too; the ship's itinerary puts it on the island of St. Thomas on Tuesday.Ritchie Coombs, the company's director of shipboard IT operations, refers to this as "open-heart surgery." The team needs to take out Internet service and replace it without interrupting service long enough for anyone to notice.I leave Ritchie to his work and head back to land. Tomorrow it's time to visit shore-side IT operations.Royal Caribbean Gets the Most from Its 20-Year-Old Reservation SystemWhile Royal Caribbean is headquartered in Miami, IT operations are based 30 miles away in Miramar, Fla. The small office complex has a sign out front and a nondescript lobby, expect for the large model of Allure.The lobby of Royal Caribbean's IT officeI meet with J.P. Hurtado, the director of customer systems, and Jason Fortier, a manger of software engineering, who explains the complexity of the organization's software. It starts with RES, the company's core reservation system, with more than 9 million lines of RPG code that is more than 20 years old.Reservations come from a half-dozen directions. Guests can create them directly, through the Royal Caribbean International website or a call center, or call a travel agent. (Defendis says 85 percent of the company's bookings occur through travel agents.) Some use CrusingPower.com; others use a SOA-based public API that created in 2007.Feature: Hotel Chain Sees Mobile App Turning 'Lookers' Into 'Bookers'Whatever the source of the booking, it all goes through RES, abstracted away through a service oriented layer. Before the API was in place, organizations built custom, one-off integration points with RES, which required maintenance and retesting with every new release. Once the cruise API was in place, customers slowly converted over to it. Royal can re-use that same API on its website and in its call center, separating the actual reservation system from its clients.Now, with the code is isolated, the company can pull one piece at a time and replace it with a more modern system. One whiteboard I pass lists goals, by year, of percentage decrease in RPG code. Within five years, RES should be 10 percent (or less) of its original self, replaced with a Java system\u2014all with no risky cut-over, no multiple teams making the same changes in both systems, and no huge project that splits the engineering department in half.Agile Lets Programmers Experiment in Two-Week SprintsThe Java conversion is its own kind of open-heart surgery, albeit a continuous one that takes several years. To do that, the team is continuing to experiment with Agile and iterative models.Neena Vicente, program manager for the company's IT transformation effort, says the company has two types of projects, traditional waterfall and Agile. Aside from standup meetings, the Agile projects are true experiments, each trying a variety of methods. Specifically, project manager Ajay Singh tells me about a recent $1.5 million project that 16 team members finished in 21 two-week sprints. The team built, regression tested and deployed to production at the end of each sprint.Management holds the programming techniques with a loose hand, allowing the developers to try different things every sprint. Singh says some teams do test driven development, but not all. Instead of requiring formal pair programming, Singh connected every new programmer to a subject matter expert programmer. These experts are expected to spend 30 percent of their time on new development and 70 percent mentoring junior developers; this provides training and collaboration at the same time. On the same project, QA got involved before the programmers started writing code. This gave programmer the "answers" for what would be tested and let them program to those precise requirements.iPad Security on a Boat: Treat Tablets Like LinensAfter talking about agile, we spoke for a few more minutes about how the company deals with emerging technologies.Shortly after Royal deployed in-room interactive televisions, Apple created the iPad. Tablet technology suddenly became viable\u2014and the interactive television looked old and obsolete.Instead of fighting the change, Royal embraced it, creating one native iPad application to help customers select wine and appetizers and another native "folio"-like app for everything from scheduling excursions to ordering room service.Feature: 3 Ways Royal Caribbean Has Embraced Mobile, Made Customers HappyRoyal's next step was providing an iPad in each suite on board the Splendour of the Seas and Rhapsody of the Seas. Beatriz Rivero, the project's program manager, describes operational challenges such as testing streaming video on multiple devices on a floor running simultaneously. (To address this, Royal added routers and reserved extra bandwidth.) The devices also have cameras, which pose a privacy risk: Next week's guests seeing last week's guests personal photos. Royal deals with this by treating an iPad like a pair of bed sheets\u2014each device is replaced with a fresh one and wiped. Meanwhile, the technology group is working with vendors to lock down local-save features.Before leaving, we go to the QA lab to see what Royal is developing next for the iPad and how it's being tested: Moving Data As Important As Moving PassengersIn addition to the problem of getting 6,000 people on and off a ship. It turns out that Royal Caribbean has another challenge in getting data on board. There's the off-loading of credit card data, the final folio, customer loyalty preferences, pictures, health records and any and all behavioral data that can be stored, aggregated and used later to predict passenger behavior or otherwise optimize the customer experience.This is best done when the ship is docked and therefore has a fast Internet connection\u2014at least for now. Broadband rollouts start in 2013, with the biggest ships going operational first. As the amount of data expands, and the standard for customer service improves, the IT staff will be continually challenged to keep ahead. At times, it feels as if Royal Caribbean is an IT company, not a guest services company. In other to help employees understand the guest life, Royal has a special orientation program. After one year, staff gets a funded family cruise vacation.That's a problem I'd sure like to have.Matthew Heusser is a consultant and writer based in West Michigan. You can follow Matt on Twitter @mheusser, contact him by email or visit the website of his company, Excelon Development. Follow everything from CIO.com on Twitter @CIOonline, on Facebook, and on Google +.