This website uses cookies to better the user experience of its visitors. Where applicable, this website uses a cookie control system, allowing users to allow or disallow the use of cookies on their computer/device on their first visit to the website. This complies with recent legislative requirements for websites to obtain explicit consent from users before leaving behind or reading files such as cookies on a user’s computer/device. To learn more click Cookie Policy.

Privacy preference center

Cookies are small files saved to a user’s computer/device hard drive that track, save, and store information about the user’s interactions and website use. They allow a website, through its server, to provide users with a tailored experience within the site. Users are advised to take necessary steps within their web browser security settings to block all cookies from this website and its external serving vendors if they wish to deny the use and saving of cookies from this website to their computer’s/device’s hard drive. To learn more click Cookie Policy.

Manage consent preferences

These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
Cookies list
Name _rg_session
Provider rubygarage.org
Retention period 2 days
Type First party
Category Necessary
Description The website session cookie is set by the server to maintain the user's session state across different pages of the website. This cookie is essential for functionalities such as login persistence, ensuring a seamless and consistent user experience. The session cookie does not store personal data and is typically deleted when the browser is closed, enhancing privacy and security.
Name m
Provider m.stripe.com
Retention period 1 year 1 month
Type Third party
Category Necessary
Description The m cookie is set by Stripe and is used to help assess the risk associated with attempted transactions on the website. This cookie plays a critical role in fraud detection by identifying and analyzing patterns of behavior to distinguish between legitimate users and potentially fraudulent activity. It enhances the security of online transactions, ensuring that only authorized payments are processed while minimizing the risk of fraud.
Name __cf_bm
Provider .pipedrive.com
Retention period 1 hour
Type Third party
Category Necessary
Description The __cf_bm cookie is set by Cloudflare to support Cloudflare Bot Management. This cookie helps to identify and filter requests from bots, enhancing the security and performance of the website. By distinguishing between legitimate users and automated traffic, it ensures that the site remains protected from malicious bots and potential attacks. This functionality is crucial for maintaining the integrity and reliability of the site's operations.
Name _GRECAPTCHA
Provider .recaptcha.net
Retention period 6 months
Type Third party
Category Necessary
Description The _GRECAPTCHA cookie is set by Google reCAPTCHA to ensure that interactions with the website are from legitimate human users and not automated bots. This cookie helps protect forms, login pages, and other interactive elements from spam and abuse by analyzing user behavior. It is essential for the proper functioning of reCAPTCHA, providing a critical layer of security to maintain the integrity and reliability of the site's interactive features.
Name __cf_bm
Provider .calendly.com
Retention period 30 minutes
Type Third party
Category Necessary
Description The __cf_bm cookie is set by Cloudflare to distinguish between humans and bots. This cookie is beneficial for the website as it helps in making valid reports on the use of the website. By identifying and managing automated traffic, it ensures that analytics and performance metrics accurately reflect human user interactions, thereby enhancing site security and performance.
Name __cfruid
Provider .calendly.com
Retention period During session
Type Third party
Category Necessary
Description The __cfruid cookie is associated with websites using Cloudflare services. This cookie is used to identify trusted web traffic and enhance security. It helps Cloudflare manage and filter legitimate traffic from potentially harmful requests, thereby protecting the website from malicious activities such as DDoS attacks and ensuring reliable performance for genuine users.
Name OptanonConsent
Provider .calendly.com
Retention period 1 year
Type Third party
Category Necessary
Description The OptanonConsent cookie determines whether the visitor has accepted the cookie consent box, ensuring that the consent box will not be presented again upon re-entry to the site. This cookie helps maintain the user's consent preferences and compliance with privacy regulations by storing information about the categories of cookies the user has consented to and preventing unnecessary repetition of consent requests.
Name OptanonAlertBoxClosed
Provider .calendly.com
Retention period 1 year
Type Third party
Category Necessary
Description The OptanonAlertBoxClosed cookie is set after visitors have seen a cookie information notice and, in some cases, only when they actively close the notice. It ensures that the cookie consent message is not shown again to the user, enhancing the user experience by preventing repetitive notifications. This cookie helps manage user preferences and ensures compliance with privacy regulations by recording when the notice has been acknowledged.
Name referrer_user_id
Provider .calendly.com
Retention period 14 days
Type Third party
Category Necessary
Description The referrer_user_id cookie is set by Calendly to support the booking functionality on the website. This cookie helps track the source of referrals to the booking page, enabling Calendly to attribute bookings accurately and enhance the user experience by streamlining the scheduling process. It assists in managing user sessions and preferences during the booking workflow, ensuring efficient and reliable operation.
Name _calendly_session
Provider .calendly.com
Retention period 21 days
Type Third party
Category Necessary
Description The _calendly_session cookie is set by Calendly, a meeting scheduling tool, to enable the meeting scheduler to function within the website. This cookie facilitates the scheduling process by maintaining session information, allowing visitors to book meetings and add events to their calendars seamlessly. It ensures that the scheduling workflow operates smoothly, providing a consistent and reliable user experience.
Name _gat_UA-*
Provider rubygarage.org
Retention period 1 minute
Type First party
Category Analytics
Description The _gat_UA-* cookie is a pattern type cookie set by Google Analytics, where the pattern element in the name contains the unique identity number of the Google Analytics account or website it relates to. This cookie is a variation of the _gat cookie and is used to throttle the request rate, limiting the amount of data collected by Google Analytics on high traffic websites. It helps manage the volume of data recorded, ensuring efficient performance and accurate analytics reporting.
Name _ga
Provider rubygarage.org
Retention period 1 year 1 month 4 days
Type First party
Category Analytics
Description The _ga cookie is set by Google Analytics to calculate visitor, session, and campaign data for the site's analytics reports. It helps track how users interact with the website, providing insights into site usage and performance.
Name _ga_*
Provider rubygarage.org
Retention period 1 year 1 month 4 days
Type First party
Category Analytics
Description The _ga_* cookie is set by Google Analytics to store and count page views on the website. This cookie helps track the number of visits and interactions with the website, providing valuable data for performance and user behavior analysis. It belongs to the analytics category and plays a crucial role in generating detailed usage reports for site optimization.
Name _gid
Provider rubygarage.org
Retention period 1 day
Type First party
Category Analytics
Description The _gid cookie is set by Google Analytics to store information about how visitors use a website and to create an analytics report on the website's performance. This cookie collects data on visitor behavior, including pages visited, duration of the visit, and interactions with the website, helping site owners understand and improve user experience. It is part of the analytics category and typically expires after 24 hours.
Name _dc_gtm_UA-*
Provider rubygarage.org
Retention period 1 minute
Type First party
Category Analytics
Description The _dc_gtm_UA-* cookie is set by Google Analytics to help load the Google Analytics script tag via Google Tag Manager. This cookie facilitates the efficient loading of analytics tools, ensuring that data on user behavior and website performance is accurately collected and reported. It is categorized under analytics and assists in the seamless integration and functioning of Google Analytics on the website.

Case Study: How Implementing an ERP System Can Help Businesses Scale

  • 24138 views
  • 18 min
  • Mar 20, 2018
Gleb B.

Gleb B.

Copywriter

Vlad V.

Vlad V.

Chief Executive Officer

Tags:

Share

Growth is the ultimate goal for any business. Both startups and large enterprises are looking to expand and find ways to generate bigger profits.

However, before building ambitious plans and setting far-fetched goals, businesses need to be ready for growth. This sounds like a simple task, but it can be a real challenge that many companies stumble over.

Enterprises face a variety of challenges when scaling:

  • Lack of workforce to handle the growing scope of work
  • Workflows suitable for a small company may not work well for a larger company
  • As the team size grows, communication becomes more difficult
  • More work makes financial management complex
  • Technology toolkits have to be upgraded to match an increasing scope of operations

Growth doesn’t make things easy; on the contrary, it’s a challenge for businesses, and many fail because they can’t adjust to new conditions. Scaling a company for growth touches on all aspects of business management. These are the most important steps a company needs to take to scale:

  • Devise and adopt a relevant workflow to minimize effort and enhance productivity
  • Strive to automate as many processes as possible in order to streamline operations and avoid unnecessary work

One of our clients faced the challenge of scaling and reached out to us for assistance.

The background story

Our client, Custom Communications Inc., is a well-established company in the communications infrastructure industry. Founded in 1998, Custom Communications has grown into a leading technology solutions provider in the southeastern United States with a team of over 250 professionals.

Custom Communications offers a wide range of services including design and installation of wired and wireless networks, VoIP systems, satellite fulfilment, and call center management. The company’s customers include Dish Network, Walmart, Amazon, Verizon Wireless, and other prominent names.

Before RubyGarage joined the project, Custom Communications didn’t have a universal tool to manage their increasing scope of business operations and required a significant upgrade to their workflow. The company faced a number of challenges:

  • Low productivity stemming from the difficulty of ensuring on-time and high-quality work order fulfilment.
  • Poor communication that made collaboration between departments complex.
  • Complicated financial management, making it difficult to receive and audit payouts as well as to handle payroll.
  • The human resources department was difficult to manage, making it hard to recruit, train, and retain employees.

This unproductive way of managing business processes was a major hurdle on the company’s way to further growth and development, and our RubyGarage team had to find solutions to help Custom Communications scale

Defining tasks

To get a full understanding of the project, we collected detailed requirements from our client. Based on the information we received, our experts determined the scope of work and defined the following tasks:

  • Conduct thorough research into the existing workflow at Custom Communications
  • Develop ways to enhance the company’s workflow
  • Analyze the enterprise software used in the company’s operations
  • Suggest enterprise software to match the company’s new workflow and automate business processes

The RubyGarage team decided to split work on the project into two main parts:

  1. Digital business transformation – We decided to carry out a profound change to how Custom Communications operates to streamline business processes, activities, and models.
  2. ERP system implementation – Our experts recommended developing a fully functional enterprise resource planning system to handle the company’s workflow and operations.

Five steps to the digital transformation of Custom Communications

Digital transformation is a complex process that goes far beyond adopting new technologies. It requires a deep transformation of all aspects of company’s operations – from processes and activities within the business to the ecosystem and organizational culture.

Therefore, our team carried out a thorough analysis in order to suggest a viable digital business transformation strategy. Here are the steps we took:

Step #1 Defined digital transformation objectives

First, our team closely collaborated with Custom Communications to get a full understanding of what objectives the company wanted to achieve through digital transformation. Among their key goals, Custom Communications wanted to increase productivity and streamline business management.

Step #2 Assessed the digital agility level

Next, our team moved on to determining how agile Custom Communications was in terms of adoption of new technologies. Digital business agility involves the following capabilities:

  • Hyperawareness – the ability to detect changes in the business environment
  • Informed decision-making – the ability to make optimal decisions in a particular situation
  • Fast execution – the ability to quickly implement changes

Step #3 Selected relevant technologies

Based on previous research, our experts were able to select the best technologies to transform the way Custom Communications does business. It isn’t enough to select any available technologies; instead, digital transformation requires picking the technologies that can bring the best results for a particular project.

Step #4 Developed a digital transformation roadmap

Digital transformation requires a lot of time and resources (both human and financial), so our team developed a detailed action plan. Our goal was to optimize the use of resources and get the ERP tool up and running on time.

Step #5 Implemented the digital business transformation

Having defined a scope of work, our team could start transforming business processes at Custom Communications. We relied on software development best practices to implement digital transformation without disrupting the company’s operations.

Reinventing an enterprise resource planning system for Custom Communications

Now that you know the strategy our team adopted, let’s have a closer look at the WorkFlow enterprise resource planning system we developed.

Before and After ERP System Implementation
Transforming the company's workflow with the WorkFlow ERP system

The WorkFlow ERP solution provides the following benefits:

  • Productivity. The ERP system automates lots of operations, saving time and eliminating redundant tasks. As a result, each employee is able to cope with a larger scope of work.
  • Security. The company has full control over business information and sensitive data is kept in secure cloud storage.
  • Collaboration. All departments of Custom Communications use the same platform so it’s easy for them to collaborate.
  • Integrated information. All information is stored in a single database, so employees can easily access the information they need.
  • Mobility. Being cloud-based, the ERP tool can be accessed from any computer or mobile device from any location.

The company’s ERP system is perfectly tailored to its business operations – it includes only the necessary functions. At the same time, the WorkFlow ERP system was developed with a vision of the future; new features can easily be implemented to make it more functional.

Here are the modules that the WorkFlow ERP system consists of:

Order management

The ERP system facilitates order management, allowing the company to handle more orders and, consequently, be more productive. WorkFlow automatically checks partner websites for new work orders and updates information about those in progress. When new orders are available, they’re added to the ERP system for further handling.

Moreover, WorkFlow automates task distribution: when new orders are imported to the ERP tool, they’re automatically assigned to technicians. If for some reason an order hasn’t been assigned to a technician or if a technician can’t fulfil it, dispatchers can assign the order manually.

When technicians complete tasks, they fill out a special form in the ERP system describing what work they’ve done and what equipment they’ve used.

Thanks to this simple automated workflow, Custom Communications can fulfil more orders and provide services to more customers.

Order Management with ERP System
Order management in the WorkFlow ERP system

To implement order management functionality, our team integrated the WorkFlow ERP system with the APIs of telecommunications service providers to which Custom Communications delivers services.

Inventory management

The WorkFlow ERP system has an inventory management module that helps manage material resources (i.e. equipment used by the company). The ERP tool helps employees easily monitor movements of equipment, check current inventories in all warehouses, audit equipment, manage replenishments, and so on.

Inventory Management in ERP
Inventory management in the WorkFlow ERP system

Financial management

Custom Communications fulfils lots of orders every day, so it needs efficient financial management functionality. This module handles all financial information for the company: invoices, payments, payroll, and so on.

These are the major features of the financial management module:

Automated invoice generation

To get paid for completed orders, Custom Communications issues invoices for customers (i.e. partners). After fulfilling an order, a technician fills out a form specifying what services they provided and what equipment they installed. When the form is submitted, the ERP system automatically generates three invoices: two for the customer and one for the technician.

Invoice Generation Form in ERP
Invoice generation form in the WorkFlow ERP system

Immediate payments

Apart from invoices, the WorkFlow ERP system supports immediate online payments for additional services – technicians can specify what work they’ve done and charge accordingly. Customers can choose their preferred payment method, including by credit card.

We selected Stripe as the payment service provider as it offers multiple payment options.

Immediate payments in ERP System
Receiving immediate payments through the mobile version of the WorkFlow ERP System

Tax automation

The company’s ERP system automates sales tax filing. When a client makes an immediate payment, WorkFlow automatically calculates the sales tax so the company’s financial department doesn’t need to spend several hours taking care of tax returns every month.

To implement this feature, our team integrated Avalara in the WorkFlow ERP system.

Payment reconciliation

The WorkFlow ERP system handles payment reconciliation, comparing payments from customers against invoices to check whether all invoices are paid properly. If a payment doesn’t add up with its invoice, the ERP tool marks it so that the financial department can quickly address the problem.

Human resources management

With over 250 IT professionals on the team, Custom Communications needs a tool to store and manage employee information. Hence, the ERP system contains an HR module that streamlines human resources management and has the following features:

  • Employee information database. This database stores personal details (such as name, phone number, address, and payment information) of Custom Communications employees. The ERP system also keeps track of updates to personal information.
  • Employee database and records. This database contains a list of current and former employees.
  • Performance management. This feature allows managers to quickly check how many orders a technician has completed within a particular period of time.
  • Employee deactivation. Managers can deactivate an employee (namely, a technician) in case of poor performance, low quality of services provided, or for other reasons. Moreover, managers can leave a note specifying the reason for deactivation.
  • Employee onboarding. Getting accustomed to the ERP system can take time; to minimize errors and train new technicians, the first 125 work orders for each technician are highlighted in WorkFlow so that managers can keep track of them and provide help if needed.
Human Resources Management in ERP
HR management in the WorkFlow ERP system

Communication management

Efficient collaboration requires fast and direct communication, so our team implemented a communication management module. WorkFlow provides the following communication features:

Live chat

Live chat facilitates communication within the Custom Communications team: employees can send direct messages to each other, create channels, and share files.

Moreover, employees can create tickets, add descriptions, and invite people who can help to the discussion channel; all employees involved in a ticket can easily keep track of its resolution. This streamlines the workflow and enhances productivity of all departments.

Live Chat in ERP
Live chat for employees in the WorkFlow ERP system

Notification system

The WorkFlow ERP system has a notification system for keeping employees updated on recent activities. It has the following features:

  • Email notifications. The ERP system supports newsletters for all departments. For example, technicians can receive emails informing them about new and updated orders.
  • SMS notifications. These notifications remind technicians to close orders in the ERP system. This tool is very helpful for technicians as they get paid for completed orders only.

Our team integrated the ERP system with the Twilio text messaging service and the Mailgun email service.

Reporting and analytics

The WorkFlow ERP system includes a reporting and analytics module that generates different types of reports about the company’s activities. For example, managers can easily get a report on all orders fulfilled within a particular period or generate a report on payouts received by technicians.

This module provides reports about the company’s performance for the financial department and executives.

Reports and Analytics in ERP System
Reports and analytics in the WorkFlow ERP system

Building an intuitive user experience

To bring maximum value, an ERP system has to be easy-to-use and convenient; if it’s too complex, then instead of enhancing productivity it’s likely to slow it down. Our team faced the challenge of creating a smooth and intuitive user experience so that users of WorkFlow are able to interact with the system easily.

Developing a user-centered UX design

Our aim was to deliver a streamlined and simple, yet efficient, UX design. To cope with this task, we adopted the principles of user-centered design – a design approach that focuses on the needs and requirements of users. In other words, user-centered design helps create software for the people who are going to use it. In the case of Custom Communications, we designed the UX for the company’s employees.

We passed through several stages while transforming the user experience for Custom Communications:

  • Analyzed the workflow for each role in order to get a clear understanding of how the company’s employees worked and what could be improved
  • Collected user requirements to find out what challenges users faced
  • Suggested potential solutions to users’ problems
  • Created low-fidelity prototypes based on suggested solutions
  • Tested prototypes in order to get users’ feedback

Our team developed a totally new user experience design tailored to the needs of Custom Communications employees. The WorkFlow ERP system, which is convenient and easy to use, provides assistance to employees in their everyday work and enhances productivity.

Creating a mobile version of the web application

As part of reinventing the UX design of the WorkFlow ERP system, our team decided to develop a mobile version of the web application. This mobile version helps the Custom Communications team conveniently interact with the ERP tool from smartphones and tablets.

The mobile version of WorkFlow helps technicians save a lot of time when fulfilling orders – they can easily view work order details, select hardware from inventory, handle equipment returns, close work orders, and so on.

UI of Mobile Version of ERP
User interface of the mobile version of the WorkFlow ERP system

We created the mobile version of the ERP tool from scratch. Our team was in charge of the UI/UX design as well as development. RubyGarage experts came up with a minimalist user interface that’s intuitive and easy to read.

Developing the WorkFlow ERP system

The RubyGarage team had to implement the WorkFlow enterprise resource planning system without interrupting the company’s ongoing business operations. Therefore, we had to adopt the right application development approach, and we started by defining potential technical disruptions.

Preventing technical difficulties that could create bottlenecks

As adepts at quality, our team set a goal of determining potential technical issues that, unless prevented in time, could grow worse and create bottlenecks for the company’s business operations.

We had to develop an application for moving Custom Communications forward instead of slowing the company down and putting its professional reputation at risk. In collaboration with our client, we defined the following technical challenges our ERP system had to be prepared for:

  • Scaling the application. The app architecture needed to be scalable so that the application remained functional regardless of the amount of data it processed.
  • Scaling the development team. As the application grew more complicated, it became reasonable to scale the development team. As usual, the team was split into several sub-teams responsible for particular functionalities.
  • Implementing new functions fast. Adding new functions to an application can lead to deterioration of code quality and incorrect app performance. Therefore, the application architecture needed to be built in such a way that adding new functionality was fast and trouble-free.
  • Testing the code. Testing is crucial for delivering a well-performing application that functions properly. However, testability largely depends on the app architecture; for example, database-centric apps are fast to build but harder to upgrade and test.

After conducting an in-depth analysis of these technical challenges, our team concluded that we needed to develop a scalable and updatable app architecture, automate key processes, and adopt web development best practices to deliver a full-fledged application.

Implementing solutions for building a fully functional ERP system

The solutions our team came up with were aimed at optimizing the time, effort, and expenses of application development, ensuring updatability of the ERP tool, and delivering clean and secure code.

Here are the steps the RubyGarage team took to get the WorkFlow ERP system up and running:

Selected a domain-centric architecture

Many applications have a database-centric architecture that treats data as the most important part of the application. Despite some advantages of this approach (such as faster development), it proves less efficient when it comes to building large-scale applications. Custom Communications is a growing company that needs an upgradable ERP tool, so we suggested going for a domain-centric architecture.

In a domain-centric architecture, applications are designed according to the business domain, focusing on elements of this business domain, their behaviors, and their relationships. A domain-centric architecture helps us build web applications with concise code that’s easy to test and upgrade.

Built a scalable application

Custom Communications handles scores of orders every day, and their number increases with the growing scope of operations. Thus, the enterprise resource planning system has to be scalable and function well regardless of the number of orders in progress.

Our RubyGarage experts decided to host the WorkFlow ERP system on Amazon Web Services (AWS), a global leader in cloud computing services.

We selected Amazon EC2 for secure and scalable cloud-based hosting. To ensure scalability of the app configuration, our team used Elastic Load Balancing and Auto Scaling. These services automatically adjust capacity to conditions.

The Custom Communications ERP tool needed to quickly provide information, so it needed fast and reliable storage. We used Amazon S3 for object storage, Amazon RDS as a relational database service with PostgreSQL for the database engine, and Amazon ElastiCache for Redis as in-memory data store and cache.

ERP System Technology Stack
Technology stack behind the WorkFlow ERP system

Optimized the software development workflow

To get the WorkFlow ERP system up and running on time and within budget, our RubyGarage team needed a streamlined software development workflow. We decided to automate development processes to avoid unnecessary time-wasting manual work and deliver clean and quality code faster.

For this purpose, our team adopted the following practices:

  • Infrastructure as Code (IaC). To manage the cloud-based infrastructure and maintain its integrity throughout the release pipeline, we adopted IaC – a key DevOps practice of managing an operations environment through writing provisioning scripts. IaC helped our team automate server management and minimize downtime (as new servers are deployed automatically in case of critical errors). To implement IaC, our team used Ansible, a reliable configuration management tool.
  • Continuous delivery and continuous integration. Deploying new features can cause so-called integration problems – errors that appear when new code conflicts with the existing code base. To ensure smooth, fast, and reliable releases, our team adopted continuous delivery – a development approach of producing software in short iterations and keeping it deployable at any time. Continuous delivery works alongside continuous integration, a practice of merging changes to the code base as frequently as possible. We used CircleCI to set up a continuous integration server.
  • Automated testing. Continuous delivery and continuous integration involve intensive testing. Not only every new piece of code is tested, but the whole code base is tested to ensure correct performance after each piece of code is integrated. Our team wrote automated tests with the RSpec framework for every single feature we added; we also used CodeClimate for code analysis.

These software development practices helped our team set up a productive development workflow and deliver an updatable and maintainable application. RubyGarage continues working on the project, and new functional updates of the WorkFlow ERP system are planned.

Ready to boost your business with digital transformation?

Developing and implementing a digital transformation strategy has helped Custom Communications turn business opportunities into tangible results:

  • Increased productivity – The ERP system has streamlined the workflow, helping Custom Communications perform better and more efficiently.
  • Simpler business management – Managing the company’s business operations has become fast and simple.
  • Enhanced customer satisfaction – The WorkFlow ERP tool has helped the company improve quality of services.
  • Flexibility – The ERP system has made scaling the company’s business processes easy and trouble-free.

However, each business requires a unique digital transformation strategy to deliver maximum value. If you want to transform your own business operations or build a useful enterprise resource planning system, share your ideas with us.

CONTENTS

Tags:

Authors:

Gleb B.

Gleb B.

Copywriter

Vlad V.

Vlad V.

Chief Executive Officer

Be the first user to rate this article!

Nay
So-so
Not bad
Good
Wow
0 rating, average 0 out of 5

Share article with

Comments (0)

There are no comments yet

Leave a comment

Subscribe via email and know it all first!