HVAC Manufacturer Heats Up the Future of Its ERP System with Visual Studio and Modern DevOps
Since 1969, Sheet Metal Connectors, Inc. (SMC) has kept the construction industry moving (and HVAC contractors happy) with the company’s fabricated commercial sheet metal products. From its start supplying installers with slip and drive connectors, the family-run business expanded to vane and rail, then round pipe, rectangular ductwork, spiral pipe, and beyond. Today, its state-of-the-art manufacturing facility provides high-quality, high-performance HVAC systems at a competitive cost and with short lead times.
Instrumental to SMC’s growth has been its workhorse ERP application, which comprises several modules including Accounts Payable, Accounts Receivable, General Ledger, and Order Processing. The application runs on Windows and is written in Synergy DBL, a robust business language at the heart of Synergex’s Synergy/DE product suite. Originally based on industry-specific software, SMC’s application has been heavily customized and maintained for 30-plus years, mostly by one key developer.
To maintain business continuity and accommodate growth, SMC needed to modernize its development environment to reduce operational risk, employ industry-standard developer tools, and enable collaboration.
Challenge
SMC had been very happy with its ERP application, known internally as the Synergy System. It got the job done. And they were also happy with their development process. It worked just fine for their developer guru who had been developing and maintaining the system for decades. However, with business growth putting increasing demand on the application, and the developer heading toward retirement, SMC faced an existential challenge. The company needed to move quickly to ensure the application’s future and business continuity.
To protect its application and its business, SMC needed to bring in a new development resource to take over management of the application. They hired a skilled developer who dug in but soon struggled with the development environment. He was used to working with more modern tools and knew how much more efficient he could be. He left SMC after a few months but provided them with recommendations for their development process.
Realizing the broader scope of their situation, SMC then chose to partner with Synergex’s Professional Services Group (PSG). PSG is a team of experienced field experts in Synergy application development and deployment. PSG started their engagement by performing an application assessment [see sidebar] to identify vulnerabilities and opportunities in their development process and application.
The application assessment found a number of areas for improvement (many of the same challenges identified by the departing developer), including the following:
- The entire Synergy system—source code, executables, and all data— was stored on a single server, meaning development was done on the same system as the production system. This setup didn’t lend itself to work with multiple developers.
- Code changes were saved via multiple copies of the source code as there was no version control system. The longtime developer knew what was what, but that would be hard to communicate to others.
- A generic text editor was used to edit the source code. While adequate for developers highly experienced with the specific code, this editor limited productivity for anyone new and was a deterrent in hiring. (Modern development environments provide a tremendous amount of assistance to developers.)
The system assessment also identified a number of limitations and opportunities in the ERP application. For example, integration with other systems is text-file based and not real time, and some parts of the ERP system are not connected well to each other, requiring manual input in some cases to move data between modules. These limitations put heavy demands on developers, from code maintenance to new feature requirements. In addition to removing these limitations, the system assessment identified modernization opportunities, such as updating the UI/UX.
SMC knew they wouldn’t be able to continue moving their application—or their business—forward with the development process that had gotten them this far.
The Synergy Application Assessment
The Synergy Application Assessment accelerates time-to-action for application modernization initiatives. It helps PSG consultants quickly learn about technology products in use and the architecture of those products so they can identify and document potential changes or improvements that could positively impact the company’s products, practices, or productivity. The three-step process accomplishes the following:
Defines the problems and opportunities.
A questionnaire and analysis is followed by a series of in-depth, interactive discussions with key application and business stakeholders. This provides a business and application overview, source code and environment review, and supportability summary of the company.
Validates the problems and opportunities.
Using the detailed findings and its Application Maturity Model, PSG creates a benchmark of the current state of the company’s application and development environment against its desired state and its future state. This process gets everyone on the same page.
Provides a roadmap.
With its Post-Consulting Report, PSG provides a detailed set of recommendations with an action plan, resource requirements, deliverables, and timetable for collaboratively solving the problems and pursuing the opportunities.
Goals
To position SMC to move into the future elegantly, SMC and PSG defined an initial project to modernize their development process, with these goals:
- Capture, codify, and preserve developers’ knowledge for future developers.
- Create and configure a system separate from the production system for development and testing.
- Clean, organize, and version-control the application’s source code.
- Be able to build the whole application from scratch (important when upgrading to new Synergy and OS versions).
- Improve developer productivity and attract new developers through modern tooling.
- Modernize development operations to take advantage of current, more efficient tooling.
- Enable multiple developers (in different time zones) to make updates to the application and collaborate with each other
"Synergex’s PSG team has been fantastic and very responsive. They’ve helped us identify limitations in our application and potential obstacles to our business continuity. We now have a clear path forward for our business-critical ERP system."
Jim Myers, President
Solution
To meet the goals of this project, SMC and PSG worked together to complete the following steps:
Create a separate development system and implement source code control.
First, the team configured a system separate from the production system so developers could make and test changes without risking the stability of SMC business operations.
Next, to centrally store and manage SMC’s Synergy DBL source code, PSG recommended Microsoft Azure DevOps Git. Azure DevOps “supports a collaborative culture and a set of processes that bring together developers [and others] to develop software,” and Git is an industry-standard, distributed version control system. (Microsoft currently offers Azure DevOps for free for up to five users.) To move SMC’s sources to Git, the team created a new project in Azure DevOps, created a Git repository in the project, migrated SMC’s code to Git, and took the time to remove obsolete code.
Git expedited tidying up the current code so that only clean, active production code is now stored in a centralized place. SMC no longer needs to create copies of code because Git keeps an audit trail of changes to the production code. It’s also possible to compare versions of the code to see where bugs may have been introduced. And code is now easier to audit for compliance with government, industry, and other regulatory requirements and standards.
Upgrade the development environment to Visual Studio.
PSG proposed moving development to Microsoft Visual Studio, an industry-leading, modern interactive development environment (IDE) used by a broad base of developers. Also one of the departing developer’s recommendations, a more modern IDE would help SMC onboard new developers faster and get them up to speed quickly in supporting DBL applications.
Synergex has invested significantly in integrating Synergy DBL with Visual Studio. Visual Studio is aware of Synergy DBL syntax, parameters, and data types; its IntelliSense technology highlights errors immediately for developers. You can work on multiple source files simultaneously, easily switching between files and drilling into key source information. You can do remote debugging in the IDE—even for code running on Unix or OpenVMS, target older runtime versions, speed development with Microsoft Engine Build (MSBuild) integration on Windows, access Visual Studio third-party extensions, and be more agile working with Synergy code.
To set up SMC for development in Visual Studio, the team
- Installed Synergy DBL Integration for Visual Studio (SDI).
- Created a solution in Visual Studio for the SMC application, then created projects for each executable, library, and windows script and added these to the solution.
- Added code files, .INCLUDE files, and other artifacts to the projects.
- Created environment variables to run the soware in Visual Studio.
- Built each project individually, starting with low-level libraries and debugging and correcting errors as needed before moving to the next project.
Setting up the Visual Studio solution and building the project components highlighted several bugs that had previously gone undetected and which could have affected runtime operation (this is common when companies first move to Visual Studio). For example, it showed where there were extra parameters being passed to subroutines. The team debugged and corrected these issues, resulting in a more robust system.
Now with the separate development and test system, all code stored in Git, and the application building in Visual Studio, SMC has a centralized development and quality assurance infrastructure that enables distributed development and testing. Developers can work independently from their laptops on automatically synced copies of the code. They’ll be able to accelerate development timelines, plus avoid disruptions or delays to the live production system, now that they’re no longer constrained by a single developer updating the live ERP system.
Upgrade to the current Synergy version.
The team also upgraded SMC’s application to the current Synergy/DE long-term support (LTS) release, 12.1, as SMC was using an old version that was no longer supported. This upgrade provided SMC with quality and security improvements, as well as the assurance that they’re running on a version that will be supported for at least three more years. Synergy/DE 12.1 also has several new features, including global I/O hooks, which are used for SQL replication, and the JSON API, which will be used for integration with other systems and is a big part of Harmony Core, Synergex’s application integration engine.
Use Azure Boards for team collaboration.
Throughout the project, the SMC/PSG team took advantage of the Boards feature in Azure DevOps to collaborate, which was especially helpful with team members in different time zones. For example, a team member running tests logged tickets for bugs by putting them on the board and assigning each to the appropriate team member, and then that team member fixed the issue and reassigned the item for QA. They also used boards in regression testing: SMC put all testing tasks on the board and then moved each one from left to right as it was completed. This enabled all team members—including the project manager—to see the current status of the testing, i.e., how many regression tests remained to be run and approximately how long those would take.
Outcome
With Azure DevOps Git and Microsoft Visual Studio in place, SMC can continue to expand on the investments made in their application. They can more easily address the identified limitations, develop new functionality, add new technologies or platforms, increase performance, and improve the user experience. And they have a clear path to modern DevOps: Azure DevOps offers other capabilities in addition to the boards already in play, including test plans, application deployment, and wikis, which SMC may take advantage of to enable even more collaborative development down the road.
This modernization of SMC’s development environment and process will extend their application’s lifespan. Development is now faster, systematic, and cumulative. And their unified code base will be easier to maintain and extend for new functionality. By retooling development using cost-eective, industry-standard tools, SMC can now enable the broadest base of developers, allowing large-scale development to occur with the best chance of success. Perhaps more importantly, the business continuity risk has abated.
SMC is already seeing the tremendous benefits of their new development process as the team turns their focus to application improvements. And, as a testament to the strength of the new process, SMC was able to rehire that skilled developer mentioned above, who was able to get up to speed quickly on the new tools. Currently he, PSG, and (for a bit longer) SMC’s developer guru are working together in the new environment. They use Git’s pull request feature, which enables the new developer and PSG to propose code changes for SMC’s developer to review and accept before the changes are made available to QA and ultimately pushed to production.
SMC smartly turned an operational challenge into a business opportunity. It organized and preserved its invaluable IP (its source code and logic) while dramatically improving its development processes with the attendant benefits of improved developer productivity and creativity.
SMC envisions a future-state Synergy system that is resilient, supportable, extendable, and scalable and can be maintained and developed by decentralized resources. SMC’s business-critical applications (and their users) should enjoy continuous operation for the foreseeable future.
"I can now retire without worry, knowing that our code base—my professional legacy— is prepared and ready to power the next 50 years of SMC’s growth."
Sherwood “Wood” Quiring, Master Developer
What’s Next
SMC is continuing to work with PSG to consider and implement other recommendations that came out of the Synergy Application Assessment, including
- Updating its Synergy ISAM data files to the current revision of the file system to get the latest improvements, and also reorganizing the files to remove deleted records and resequence indexes to improve access performance.
- Implementing a Synergy repository. All Synergy legacy modernization projects are underpinned by Synergy/DE Repository, a data dictionary that provides a centralized location for an application’s data definitions.
- Replicating its data to Microsoft SQL, making data universally queryable. This project would leverage Synergy/DE Repository and Synergex’s CodeGen tool to generate SQL commands for the data that will be replicated.
- Creating RESTful web services APIs using Synergex’s Harmony Core platform to expose their application’s logic and data via industry-standard interfaces. These can be consumed by any modern web development technology and are understandable by web developers.
These initiatives could be achieved without expensive new software, onerous licensing, or an extended digital transformation project.