Optimizing Processes through Software Automation

We recently worked with a construction company in Texas.  As their business grew, their internal back office processes were holding them back.

For example, data was out of sync between systems; some data had to be entered two or three times across different systems; accounting did not know when to invoice for work completed.

Their frustrations involved practically every aspect of the job management process: invoicing, materials, labor, project management, communication, job status, and metrics tracking.

While they had software to manage segments of their processes, these systems were not working together, creating huge inefficiencies and crippling their business.

Identifying the Problems

Before kicking off the project, we worked with the customer to identify all of their issues. The following is a list of those issues.

Complex Excel spreadsheets not scalable

Excel spreadsheets were being used to track materials and labor costs, and manage the job and were painful to edit and maintain.

Lack of communication between third party tools

Several third party tools were being used: Quickbooks, Acculynx, Excel, and PlanSwift in particular. None of these tools communicated with each other, causing differences between tools. For example, if an estimate was updated in PlanSwift, meticulous accounting was needed to reflect the same change in Excel and Acculynx.

Ability to automate purchase order (PO) generation

While the data for generating POs was available in Excel and PlanSwift, there was no easy way to extract this data to automate the PO generation process for materials and labor.

Ability to measure job performance (estimated versus actual)

Although job metrics are tracked in several systems, the customer lacked a comprehensive way to compare estimated and actual costs on a project, as well as the ability to run complex analysis on their jobs once completed.

Lacking clear understanding of business metrics

Because data was not managed in a comprehensive platform, the customer lacked a clear understanding of their business performance and potential issues/pitfalls.

Lacking communication with the field

The customer needed a solution for better communication with employees in the field, particularly as it pertains to job status, roadblocks, and project management. In addition, some jobs had billing milestones based on job completion, so having a grasp on project status and completion was important to their invoicing processes and collecting payment for their services.

Business Process Management Tools did not work

While the customer investigated some business process management (BPM) tools, these tools did not take into account industry-specific needs (for example, PlanSwift, their estimating software). Essentially, BPM tools only alleviated a small percentage of their pain points.

The Solution

After consulting with the client about their problems, we decided to deploy a standalone software solution that integrated with their existing software, while also introducing a new software solution for communicating with the field.

As part of this solution, we developed a web-based dashboard, which acted as a central location for all of their business needs. The following outlines some of the features of this dashboard:

Importing data from third-party software

In order to work with existing software and processes, we created a platform that allowed integration with their other third-party software solutions using an application program interface (API). This allowed us to collect data from these systems and consolidate in the dashboard system. In cases where a software solution did not have a public API, we were able to process data from those systems using data exports.

Push data to other third-party systems

As part of the solution, we did not want to replace any existing software if possible; instead, our strategy was to leverage the capabilities of existing software while supplementing needed functionality in the dashboard application. This had the benefit of (1) being more cost effective and (2) allow existing employees to continue using their existing processes.

Eliminate unnecessary tools

As part of this process, we were able to obsolete their project management tool (Acculynx) because the new software provided more traceability and insight into their projects than Acculynx.

Automation of purchase orders

The generation of purchase orders was automated, allowing the PO number to be automatically generated based on the selection of certain criteria (materials, labor, etc.) and then sent to the vendor.

Metrics tracking and job performance reports

Metrics and performance tracking was a big focus. With all the data consolidated in one place, we were able to provide both simple and complex reports. Examples of reports include estimated cost vs. actual cost, total job cost, breaking costs out between material and labor, etc. In addition, report data can be exported to Excel for additional analysis.

The Implementation

In order to facilitate the needs of our customer, we chose an implementation using a non-proprietary industry standard solution. We also wanted to choose a solution with a wide variety of resources for development and maintenance.

As a result, we chose PHP, which is a programming language used by many different technology providers, including Facebook and WordPress.
We also chose a PHP web application framework known as Laravel. This framework provides a nice starting point for an application, such as an administration system for users, an application programming interface (API) for interfacing with other apps, and a templating system for managing the look and feel of the application.

Interfacing with field employees

We also licensed an existing technology called Fast Field Forms. This solution provides the ability for users in the field to communicate with the office via a mobile or tablet application. This essentially allows the central office to create simple forms that get deployed to the field. Through these forms, field employees can submit photos of jobs, report job status, and enter issues that need to be addressed at the central office.

When an employee fills out one of these forms, the data is imported into the dashboard application. Other metrics such as job status or percent completion are updated based on the data coming from submissions from the field.

Conclusion

By understanding our customers needs, we were able to develop a solution that automates existing software systems and processes while providing supplemental functionality through a dashboard application. In addition, we introduced a new licensed software solution for communicating with employees in the field (Fast Field Forms), integrating it with the dashboard application.

The customer now has a back office solution that is efficient and optimal, allowing them to focus on improving their business.


Click here to download the PDF of this case study.

Dustin DeVries

Dustin DeVries

Living and breathing software strategy and architecture, Dustin has been building software for over 20 years. He really enjoys working with clients to determine the right technology, whether it’s a web application framework like Django or NodeJS, or a simple CMS solution like WordPress. He received his BS in Computer Engineering from Texas A&M University. During his spare time, Dustin enjoys reading, gardening, cooking, playing guitar, running, and hanging out with his family.