Rapid Solution Delivery Via Remote Best Practices
Seamlessly ramping up productivity with our collaborative, friction-free engagement model
- ANALYTICS & VISUALIZATION
- IT & INFRASTUCTURE
- EXPERIENCES & APPLICATIONS
- PLATFORMS & SERVICES
- SYSTEM OF RECORD INTEGRATION
- INSTRUMENTATION
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?
Product ownership
is in our DNA
Agile
mindset
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.
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.
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
- All on the same page with Blue/Green and A/B deployment
- Rapid assimilation of proprietary technology
- Business continuity planning
- Vertical schedule optimization
- Full - coverage Tier-1 support
- CI/CD process
- Selective TDD
- Test automation & 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
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.
- Build & Release
- Joining an ongoing project and becoming effective immediately
- Implementing Agile methodology
- Implementing UI plugins for each system
- Implementing multi-tenant system to handle heavy traffic
- Intermittent connectivity on Ship
- Real time crew and guest location tracking for better service and security
- Monitoring & Alerts
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:
- 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
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
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
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
- 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
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
- 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
- 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:
- 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
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
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
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
- 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
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
- 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
- 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.