Holland American Line

Holland America Line

Holland America Line is recognized as one of the undisputed leaders in the premium segment of the cruise industry.

“Thanks to the team from Hexacta for all of your assistance with this project.  This is a big accomplishment and we are very happy to share it and celebrate it with you.”

Director, IT Applications at Holland America Line

Brief description of the company

For over 150 years, Holland America Line is recognized as one of the undisputed leaders in the premium segment of the cruise industry. HAL has transported more than 11 million passengers from Europe to America, and to different destinations around the world.

Holland America Line’s fleet has 15 ships that offers more than 500 cruises to 350 ports in over 100 countries, territories or dependencies.

The challenge

In 2011, Hexacta worked on the “Friends and Family Project”. It was a small Project for the administration of the family group discounts.

After this initial project, Hexacta was involved in the maintenance of the “marketing sites”. These were two systems in charge of the company’s core functionality.

In 2013, a larger team was staffed to create the new HAL Architecture. The first project, the Booking Flow, which was developed by Hexacta, was deployed in production in 2014. The Secondary Flow project went live in 2015, which Hexacta was also involved in.

Today our relationship continues. The migration of Booking Flow to other HAL brands (like Seabourn) is still under development. In addition, Hexacta continues to support the marketing sites.

Solution

Project: Booking Flow

One of the main goals of the project was to reduce the “time to market” of new features. This goal could be accomplished by leveraging the modular nature of the new architecture.

An important additional challenge was to improve the user’s experience. New web standards were introduced, specifically designed for the booking system’s target audience (+50 years old people).

This new architecture allows both the integration of heterogeneous systems and the incorporation of new systems in an easy and elegant way, reducing the “time to market”.

The new UI reduced the abandon rate, which is evidence of an improved user experience.

Project: Secondary Flow

The client decided to develop the application using AngularJS in order to make the website responsive on different web browsers using a Single Page Application framework. In this way, compatibility issues between browsers and mobile devices were significantly reduced.

One of the main challenges was to add integration tests for both Backend side and UI as part of sprint’s definition of done. In this way, testing is also part of the same sprint, where the functionality was developed and the regression is immediate.

The second challenge was to add a continuous integration server to add and run integration tests, including other important tasks in the development process. By implementing this, finding of issues or errors was made earlier in the development process. Because of this, there were different environments for development and testing.

Applied technologies

  • Booking flow. The Front End uses Angular.js. The UI architecture has different layers (which follow the MVC architecture) and messages that allow UI component interaction with its context. This enabled re-using existing codes. It uses MongoDB for the content retrieval. Siebel CRM. Cybersource for credit card processing. Mainframe Polar system for cruise-industry. Integration with the Barclay Bank to obtain users credit information and to offer credit card promotions. The backend has a REST interface for its services usage.
  • Secondary flow. A web application was developed based on AngularJS (Single Page Application) and the connection to services is made by Rest Services.The solution is built from different Java web modules (HAL-ECOMMERCE, HAL-SHOPPING, HAL-GIFTSF, HAL-DININGSF, HAL-SHOREXSF, HAL-SPASF), which are focused on processing and filtering data that comes from other sub-systems (POLAR, Steiner). Each of them share resources by Rest calls. To ensure that the application will always work as expected, it was decided to create unit tests (this work must be done by developers) and run under PhantomJS. For integration tests in the UI, it was decided to use a combination of Protractor + WebDriver + Selenium. For HAL-DSSF (Backend), TestNG is used. In this way, all functionalities are safe and it can ensure that the application will work as expected, otherwise all tests will fail.