Rapid Solution Delivery Via Remote Best Practices

Seamlessly ramping up productivity with our collaborative, friction-free engagement model

EXPERIENCES & APPLICATIONS

EXPERIENCES & APPLICATIONS

PLATFORMS & SERVICES

SYSTEM OF RECORD INTEGRATION

INSTRUMENTATION

IT & INFRASTUCTURE

Project Overview

Success Factors

  • Cost-Neutral IT Management
  • Seamless Tier 1 Support
  • Intentional Synchronous Communication
  • The right tool for the right job

Technologies

Java, Android, iOS, Unity framework, React framework, Postgres,Couchbase, Apache Kafka, Containerization (Docker, Amazon ECS), Test Automation (Selenium), CI/CD (Jenkins), AWS Cloud, among others.

Industry Vertical

  • Information Technology
  • Luxury Cruise

Development Methodology

Agile Scrum

Services

Software Development & Support

Project Duration

One Year

Team Size

5 – 7

About Client

Level 11 (L11) is a user experience design company based in Seattle, Washington.

Engineering the Experience Economy

Experience Design Engineering™ (XDE™): Innovative Next-Level Solutions

Business Challenge

L11 had partnered with the world’s largest travel leisure company to build an integrated guest experience platform.

While providing development and support services for different systems and modules of the guest experience platform,L11 faced some capacity issues.

They sought to ramp up their capacity with a highly effective technical team that could:

Level 11 Expectations

Seamlessly integrate with their 20-people team and act as an adjunct

Quickly come up to speed and make an immediate impact

Understand their proprietary software (like location and navigation systems) without delay

Provide 24/7 remote support, taking advantage of the timezone difference.

Why Marici?

icon-one

Product ownership
is in our DNA

icon-one

Agile
mindset

icon-one

Technically excellent
remote workforce

Strategy & Solution

Marici had to hit the ground running, and deliver increased net capacity while remaining cost-neutral, management wise.

This plan included hand-offs, overlap time, and a communication strategy.

Marici deployed a remote workforce to support mobile apps written in Unity and React, as well as an extensive backend written in Java, supported by a Kafka message bus.

While account management and governance were handled by L11, Marici developed systems that ensured that the client-facing representatives had the best information.

strategy

We sent our Solution Architect(SA) onsite at L11’s facility

The SA along with L11’s in-house IT team identified subject matter experts (SMEs).

strategy

Then the SA identified SME counterparts in the remote development team.

In just 5 weeks, we had a reasonable facsimile of L11’s way of working in our offshore development centre (ODC).

We created a virtual version of the ‘ship’ in our ODC.

connected spaces

strategy

We sent our Solution Architect(SA) onsite at L11’s facility

The SA along with L11’s in-house IT team identified subject matter experts (SMEs).

strategy

Then the SA identified SME counterparts in the remote development team.

In just 5 weeks, we had a reasonable facsimile of L11’s way of working in our offshore development centre (ODC).

We created a virtual version of the ‘ship’ in our ODC.

connected spaces

Technology Stack

Agile project management

Technical discussion on component level implementation

Code development platforms

Database management

Message streaming

Containerization

Quality Assurance

Branching Strategy

CI/CD & Release management

Cloud Computing

Project Monitoring

The Marici Engagement Difference

Our flex team model was organized along three main pillars: People, Process, and Project. We used a right-shore mechanism to deliver services to its customers globally. Various stakeholders from Marici engaged at different levels, ensuring that the right kind of communication happens at the right level.

During this project, the engagement was carried out in the following ways:

Cost-neutral external team management

The Marici team was fully integrated into L11’s PMS. Engagement owners were identified at the start of the project, and backlog grooming and planning only required one person from each shore.

All on the same page with Blue/Green and A/B deployment

Our custom CI/CD process helped to ensure that software release or patches match with hardware capability on each Ship.

Rapid assimilation of proprietary technology

Several parts of the project required us to work on the client’s proprietary software. We headed off any potential issues vis-à-vis documentation turnover, etc. with the following:

We deployed an on-site Architect for a series of sessions. The Architect created POCs for the technology transferred in each of these sessions. This way we demonstrated that we ‘got it’.

He turned over knowledge that same day, thereby collecting the questions required for the next scheduled KT session.

He used this time to also understand who the SMEs in each of the separate technology concerns were, as well as client operational procedures. This allowed us to optimize and schedule collaboration with the client team as required.

Business continuity planning

Division of team into primary and secondary areas of concern to ensure that each person could pinch hit in case of unavailability of the primary.

Vertical schedule optimization

Creation of an engagement schedule that recognized the unique demands of cruise lines –certain days were busier and required 24/7 engagement.

Full – coverage Tier-1 support

Taking advantage of the time and cost difference was an instant winner in this engagement. We covered times that were difficult to cover during PST. We left two-hour windows that allowed for transition between teams in case a long running system abnormality was being worked on.

CI/CD process

The Marici side used Gitflow to implement a gated integration strategy. This way, the Marici team would never break the build.

Selective TDD

We selected critical areas for automated testing that became de-facto documentation. If the automated tests failed, either the code was wrong, or the specifications had changed.

Test automation & management

Used Selenium for automation of testing and integrated TestRail with Jira. This allowed automatic ticket creation with relevant metrics for each automatically generated ticket.

The Marici Engagement Difference

Our flex team model was organized along three main pillars: People, Process, and Project. We used a right-shore mechanism to deliver services to its customers globally. Various stakeholders from Marici engaged at different levels, ensuring that the right kind of communication happens at the right level.

During this project, the engagement was carried out in the following ways:

Cost-neutral external team management

Cost-neutral external team management

The Marici team was fully integrated into L11’s PMS. Engagement owners were identified at the start of the project, and backlog grooming and planning only required one person from each shore.

All on the same page with Blue/Green and A/B deployment

All on the same page with Blue/Green and A/B deployment

Our custom CI/CD process helped to ensure that software release or patches match with hardware capability on each Ship.

Rapid assimilation of proprietary technology

Rapid assimilation of proprietary technology

Several parts of the project required us to work on the client’s proprietary software. We headed off any potential issues vis-à-vis documentation turnover, etc. with the following:

We deployed an on-site Architect for a series of sessions. The Architect created POCs for the technology transferred in each of these sessions. This way we demonstrated that we ‘got it’.

He turned over knowledge that same day, thereby collecting the questions required for the next scheduled KT session.

He used this time to also understand who the SMEs in each of the separate technology concerns were, as well as client operational procedures. This allowed us to optimize and schedule collaboration with the client team as required.

Business continuity planning

Business continuity planning

Division of team into primary and secondary areas of concern to ensure that each person could pinch hit in case of unavailability of the primary.

Vertical schedule optimization

Vertical schedule optimization

Creation of an engagement schedule that recognized the unique demands of cruise lines –certain days were busier and required 24/7 engagement.

Full - coverage Tier-1 support

Full – coverage Tier-1 support

Taking advantage of the time and cost difference was an instant winner in this engagement. We covered times that were difficult to cover during PST. We left two-hour windows that allowed for transition between teams in case a long running system abnormality was being worked on.

CI/CD process

CI/CD process

The Marici side used Gitflow to implement a gated integration strategy. This way, the Marici team would never break the build.

Selective TDD

Selective TDD

We selected critical areas for automated testing that became de-facto documentation. If the automated tests failed, either the code was wrong, or the specifications had changed.

Test automation & management

Test automation & management

Used Selenium for automation of testing and integrated TestRail with Jira. This allowed automatic ticket creation with relevant metrics for each automatically generated ticket.

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Build & Release

  • Integration of the whole system

With multiple teams working on different aspects of business, overall system integration was crucial. Core to our strategy was:

img-inner
  • Code review was put in place before merging feature branches to make sure that the implementation was inline with the architecture and ready for integration.
  • CI/CD was introduced to implement proper build and release cycles with integration, testing and deployment.
  • The build was gated from our side even before making a pull request. No broken builds ever made it to L11’s code.
  • Timely Release

There was a limitation with the IoT and hardware related deployment and maintenance. Releasing hardware related features was only possible when the ship was docked. We did the following to handle this issue:

  • Proper planning on versioning and release of features was carried out using CI/CD for Blue/Green and A/B deployment.
  • Test automation was executed to manage the quality of release. This significantly reduced the time taken by a release cycle.

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Joining an ongoing project and becoming effective immediately

img-inner

With a comprehensive
onboarding process, our team managed to quickly gain domain/vertical knowledge, understand terminologies and become immediately
effective. The process
involved:

  • Knowledge transfer and access to documentation
  • Collaborative hands-on sessions
  • Knowledge checks by Marici-initiated POCs

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Implementing Agile methodology

img-inner

Implementing Agile methodology helped L11 in managing development across multiple teams in a transparent manner. Here are the key activities involved:

  • Sprint management through JIRA software.
  • Detailed documentation on Confluence.
  • Technical meetings, apart from daily meetings, to discuss the technicality of implementation & integration.
  • Intentional Synchronous Communication that understood that meeting time was valuable and needed to be prepared for. Most communication was via tools.

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Implementing UI plugins for each system

img-inner

Here is where we displayed our flexibility of thought. We didn’t insist on pure ‘best practices’, but knew how to balance
delivery and technical debt.

Console management
application provides system administrators and backend users an interface for
configuring and monitoring the system.

When separate teams work on the development of various backend systems, it’s very common in UI code to get regular conflicts that wastes a lot of development time in resolution. The amelioration was:

  • Separate UI plugins were developed for each component, where versioning can be added/removed into core UI by the admin. This enabled each team to work independently and revert back to the previous version if the new
    version is not stable.
  • Role based access control was configured for users to access plugins as well as various features inside it.
  • React-based composite UI was developed with responsive design to support any size of device like phone, tablets, laptops, and large console screens.

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Implementing multi-tenant system to handle heavy traffic

img-inner
  • Scalability
  • Designed the system using the microservices architecture for better scalability.
  • Used Docker for containerization of services.
  • Measures were taken to avoid edge systems to have any direct communication with the legacy systems.
  • Ensured that edge systems and apps worked offline and communicated only through cloud systems to maintain performance along with data integrity.
  • Large amount of data
  • NoSql database (Couchbase) was used to manage large amounts of data and support caching and in-memory data storage for faster data operations.
  • Ship voyage and navigation
  • Kafka cluster was utilized to handle NMEA data streams, which allowed updation of only the relevant data into the database. System’s
    performance was optimal as there was no loading of unnecessary bulk of data.

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Intermittent connectivity on Ship

img-inner

Data Integrity: Intermittent network connectivity on
the Ship moving across
the ocean is likely to result in data integrity issues
between systems located on Shore, Cloud and Edge locations (ship at the ocean). Resolved this
issue as follows:

  • Couchbase Lite mobile app database for devices at Edge locations (on ship) to work offline and sync with cloud systems whenever the network is
    available.
  • Couchbase sync gateway syncs data seamlessly to Couchbase cluster on cloud.
  • Safety and security services work with Edge systems that sync to the cloud.

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Real time crew and guest location tracking for better service and security

  • Accurate ship navigation
img-inner
  • Guests were provided with a card (BLE) or medallion (BLE
    & NFC), each with a unique Universal ID used to identify the user. To calculate precise location of a user via
    triangulation and trilateration, positioning algorithms were used on real time data
    received from BLE and NFC.
  • Kafka cluster with REST & MQTT proxy was used to integrate various IoT devices that were used for location and navigation.
  • Real time security updates
  • Events of drill or real life incidents as well as alerts on guests were streamed through Kafka message bus for communication between system services.
  • Web-Socket was utilized for real time updates on UI.

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Monitoring & Alerts

img-inner
  • Monitoring & Alerts: Almost all of the systems were mission critical. Matters can quickly become a matter of life or death if the guest experience
    platform’s safety and security systems fail. This critical issue was
    addressed using the tool Dynatrace:
  • Support staff have detailed monitoring and real time alerts on production environments with access to various health metrics and logs.
  • Synthetic monitoring and Clickstream Analytics enabled to get insight about performance and user experience issues.
  • Service call tracing to get insight of a call failure or performance issue.

Build & Release

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Build & Release

  • Integration of the whole system

With multiple teams working on different aspects of business, overall system integration was crucial. Core to our strategy was:

img-inner
  • Code review was put in place before merging feature branches to make sure that the implementation was inline with the architecture and ready for integration.
  • CI/CD was introduced to implement proper build and release cycles with integration, testing and deployment.
  • The build was gated from our side even before making a pull request. No broken builds ever made it to L11’s code.
  • Timely Release

There was a limitation with the IoT and hardware related deployment and maintenance. Releasing hardware related features was only possible when the ship was docked. We did the following to handle this issue:

  • Proper planning on versioning and release of features was carried out using CI/CD for Blue/Green and A/B deployment.
  • Test automation was executed to manage the quality of release. This significantly reduced the time taken by a release cycle.

Joining an ongoing project and becoming effective immediately

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Joining an ongoing project and becoming effective immediately

img-inner

With a comprehensive
onboarding process, our team managed to quickly gain domain/vertical knowledge, understand terminologies and become immediately
effective. The process
involved:

  • Knowledge transfer and access to documentation
  • Collaborative hands-on sessions
  • Knowledge checks by Marici-initiated POCs

Implementing Agile methodology

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Implementing Agile methodology

img-inner

Implementing Agile methodology helped L11 in managing development across multiple teams in a transparent manner. Here are the key activities involved:

  • Sprint management through JIRA software.
  • Detailed documentation on Confluence.
  • Technical meetings, apart from daily meetings, to discuss the technicality of implementation & integration.
  • Intentional Synchronous Communication that understood that meeting time was valuable and needed to be prepared for. Most communication was via tools.

Implementing UI plugins for each system

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Implementing UI plugins for each system

img-inner

Here is where we displayed our flexibility of thought. We didn’t insist on pure ‘best practices’, but knew how to balance
delivery and technical debt.

Console management
application provides system administrators and backend users an interface for
configuring and monitoring the system.

When separate teams work on the development of various backend systems, it’s very common in UI code to get regular conflicts that wastes a lot of development time in resolution. The amelioration was:

  • Separate UI plugins were developed for each component, where versioning can be added/removed into core UI by the admin. This enabled each team to work independently and revert back to the previous version if the new
    version is not stable.
  • Role based access control was configured for users to access plugins as well as various features inside it.
  • React-based composite UI was developed with responsive design to support any size of device like phone, tablets, laptops, and large console screens.

Implementing multi-tenant system to handle heavy traffic

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Implementing multi-tenant system to handle heavy traffic

img-inner
  • Scalability
  • Designed the system using the microservices architecture for better scalability.
  • Used Docker for containerization of services.
  • Measures were taken to avoid edge systems to have any direct communication with the legacy systems.
  • Ensured that edge systems and apps worked offline and communicated only through cloud systems to maintain performance along with data integrity.
  • Large amount of data
  • NoSql database (Couchbase) was used to manage large amounts of data and support caching and in-memory data storage for faster data operations.
  • Ship voyage and navigation
  • Kafka cluster was utilized to handle NMEA data streams, which allowed updation of only the relevant data into the database. System’s
    performance was optimal as there was no loading of unnecessary bulk of data.

Intermittent connectivity on Ship

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Intermittent connectivity on Ship

img-inner

Data Integrity: Intermittent network connectivity on
the Ship moving across
the ocean is likely to result in data integrity issues
between systems located on Shore, Cloud and Edge locations (ship at the ocean). Resolved this
issue as follows:

  • Couchbase Lite mobile app database for devices at Edge locations (on ship) to work offline and sync with cloud systems whenever the network is
    available.
  • Couchbase sync gateway syncs data seamlessly to Couchbase cluster on cloud.
  • Safety and security services work with Edge systems that sync to the cloud.

Real time crew and guest location tracking for better service and security

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Real time crew and guest location tracking for better service and security

  • Accurate ship navigation
img-inner
  • Guests were provided with a card (BLE) or medallion (BLE
    & NFC), each with a unique Universal ID used to identify the user. To calculate precise location of a user via
    triangulation and trilateration, positioning algorithms were used on real time data
    received from BLE and NFC.
  • Kafka cluster with REST & MQTT proxy was used to integrate various IoT devices that were used for location and navigation.
  • Real time security updates
  • Events of drill or real life incidents as well as alerts on guests were streamed through Kafka message bus for communication between system services.
  • Web-Socket was utilized for real time updates on UI.

Monitoring & Alerts

How did we help?

Marici helped out L11’s team by addressing the following critical areas:

Monitoring & Alerts

img-inner
  • Monitoring & Alerts: Almost all of the systems were mission critical. Matters can quickly become a matter of life or death if the guest experience
    platform’s safety and security systems fail. This critical issue was
    addressed using the tool Dynatrace:
  • Support staff have detailed monitoring and real time alerts on production environments with access to various health metrics and logs.
  • Synthetic monitoring and Clickstream Analytics enabled to get insight about performance and user experience issues.
  • Service call tracing to get insight of a call failure or performance issue.

System Infrastructure

System Architecture

Guest Genome

We make our customers' lives easier.
We can't wait to help you, too.
Get In Touch