Skip navigation EPAM

Building an Enterprise Plant Management Platform to Improve Operational Efficiency for Commercial Laundries

For decades, commercial plants have been relying on third-party software to control machines, streamline operations and automate day-to-day tasks

As technology changes and client expectations grow, third-party software providers are challenged with upgrading their platforms while also ensuring that customer plants remain operational and productive.

In January 2016, one provider of enterprise plant management software for commercial laundries turned to EPAM to build an in-house enterprise solution and take over the project from a previous vendor, who EPAM had recently acquired. EPAM implemented its robust engineering and delivery practices to improve the state of the project and went on to build and roll out the platform in 30+ customer plants over the course of two years.

Key Challenges

  • Build a single in-house plant management software platform to serve the client’s global textile care customers
  • Eliminate hefty licensing fees on third-party software by building and testing an all-in-one proprietary solution
  • Enhance the user experience by modernizing user interfaces and reporting capabilities
  • Provide guidance for users to make timely decisions to optimize costs and plant efficiencies
  • Migrate 20 existing North America and Europe customers to the new solution

Solution Highlights

EPAM teams used best practices in QA, DevOps and Engineering Excellence (EngX) to speed time-to-market and save costs for the customer. Solution highlights included:

  • QA: EPAM decreased the customer case reopen rate and reduced the amount of manual testing needed for platform releases. Reopens were contained by conducting comprehensive bug review, and the regression suite was revamped using a risk-based testing approach to cut down the number of test cases from 3,000 to less than 500.
  • DevOps: There was originally no streamlined DevOps pipeline for CI/CD, so EPAM created the architecture from scratch to suit the project needs. Quality gates and gated deployments were introduced into the DevOps pipeline, resulting in faster feedback to the team, the elimination of human error and reduced overall deployment time.
  • EngX: There was very poor unit test coverage with glaring SONAR violations, lots of duplicate code and ineffective code reviews. EPAM teams created code review checklists and used tools like Resharper and SONAR Lint to optimize code quality and reduce code complexity.

How It Works: Solution Architecture at a Glance

The Results

After two years of work, the customer’s functional, all-in-one enterprise plant management platform is a testament to the success of a totally transformed project. Here are some of the key achievements from the project:

  • 30+ plants are up and running in production in North America and Europe
  • Customers using the platform are reporting decreased operational costs as a result of increased efficiency
  • Automation coverage has improved and the redesigned regression suite has reduced regression duration from three weeks with 11 QA engineers to two weeks with just seven QA engineers
  • Defects reopen rate has decreased from 35% at its highest point down to just 5%
  • Unit test coverage has improved from a mere 20% to nearly 60%


With EPAM’s assistance, the customer plans to roll out the solution to 300 customer plants by the end of 2018.

Technologies used

Server side:

  • C# .NET Framework 4.5
  • Castle Windsor Framework
  • MOQ Framework
  • Auto Mapper
  • Winnovative PDF/Excel tool
  • High Charts
  • MessagePack
  • ELMAH and Log4Net Framework

Client side:

  • BootStrap
  • Kendo UI Framework
  • jQuery Framework
  • Custom-built Object-Oriented JavaScript
  • TrimPath
  • Chromium Embedded Framework (CEF)

Automate PLCs:

  • TwinCat Data communication library
  • OPC Automation Library
  • Mitsubishi Automation Library
  • Data Communication Library


Hi! We’d love to hear from you.

Are you ready to design the business models of tomorrow?