We are the leading experts in transforming Progress ABL applications using the FWD technology. We offer a full range of services to ensure the success of our clients' migration strategies.
Deep insight into your application, whether or not you plan to convert.
A mature Progress application represents years, even decades, of investment and development effort. It can be comprised of millions of lines of code, spanning multiple developers and even managers over time. When faced with modernization, refactoring, migration, or even maintenance challenges, a deep insight into the application can be invaluable. Golden Code Development uses the powerful reporting facilities in FWD to give customers a unique view into their schemata and application code. Although developed to support the conversion process, the standard reports are useful in their own right for understanding the internals of any application, even for customers not looking to move away from Progress. Every instance of every language feature used in an application is catalogued. Every variable, database reference, function, procedure, and parameter is detailed. Extensive analysis is performed to identify interesting and potential problem areas, including: buffer scoping, OCX controls, object oriented programming, dynamic database, interfaces with external and operating system APIs, I/O operations, nested triggers, accumulators, embedded SQL, security-specific code, key remappings, complex queries, and much more. A comprehensive review of these reports is a critical step in planning any transformation project. Since the reporting engine is syntax-aware and very flexible, we can create custom reports that pinpoint exactly what you want to know about what your application does, what features it uses, and what external dependencies it has. FWD includes a powerful call graph analysis feature which allows one to map the many call paths through an application's code base. It is not uncommon for an application to contain a considerable amount of code which can no longer be reached, due to changes made over time. Golden Code consultants can help customers use call graph analysis to identify dead code (include files or external procedures), program dependencies, dangling program references, external call sites and the consistency of schema triggers. Customers can use this knowledge to modernize and streamline their code base, whether or not an application will be converted.
Considering a project? Let us help you plan it.
Converting a mature Progress application to Java and migrating its data from the Progress database is a hugely complex problem. It can be difficult to know where to begin. The first step is to assess the application and to understand how the FWD technology can be used to create a solution. Golden Code consultants can help. Starting with inputs and domain/application knowledge provided by the customer, we parse the application's database schemata and source code to produce a detailed set of reports about the internals of an application. From these, we help a client understand which Progress language features are in use. Many ABL features already are supported by FWD, but gaps do exist. It is important to identify any such gaps up front, and to devise a plan to address them. Should standard support for a missing feature be added to the FWD conversion and/or runtime, or should these features be removed from or replaced in the original application? If a set of features is tailored to a particular application or customer, or has particular performance or other requirements, would it be best to write a custom Java replacement and create custom conversion logic to integrate it into the converted application? As part of the assessment phase, we pinpoint every external dependency on third party or native platform services. These might include native calls to an operating system API, shell-outs to operating system commands, other child process launching, integration with third party user interface widgets, and more. Each such dependency requires special attention and planning, to determine whether it will be supported in the future environment, removed entirely, or replaced. These choices may have implementation or deployment implications, which our consultants will highlight. During assessment, it is not uncommon to identify areas of an application which, though they could convert and run "as is", would be better replaced with an implementation that takes advantage of the new platform. For example, subsystems which were written years ago to approximate multi-threading by launching multiple child processes cooperating via database locks and polling, are likely to benefit significantly from leveraging the modern concurrency facilities of Java. We can help clients identify such opportunities, and suggest techniques for integrating carefully-scoped, custom rewrites of key functionality into an overall migration plan. Deliverables from an assessment engagement typically include a set of detailed reports about the application and the schemata it uses, along with a write-up of our findings and recommendations. This includes a feature gap analysis with expected effort and estimated cost to address any known gaps, and a recommendation of how to address any potentially problematic areas of the conversion. For a more in-depth engagement, Golden Code Development also can develop a detailed project and resource plan at a customer's request. Unless an assessment is part of a broader, fixed price engagement, pricing for assessment work is normally on an hourly, best efforts basis.
Proof of Concept
Ensure FWD will meet the needs of your application.
Deciding whether FWD is the right choice to refactor, modernize, or convert an application can be an overwhelming prospect. Every application is unique, offering its own set of challenges. FWD is itself a complex technology which takes a Big Bang approach: how will you know it works until you're done? Often the best course of action is to simplify the decisionmaking process by commissioning a Proof of Concept (POC). A POC can answer the question of whether FWD will handle all the most important features of your application, while minimizing risk and cost. The key to success is to scope the POC correctly: it must include a representative subset of your application's business flows, while excluding any known (non-trivial) feature gaps in FWD. No one understands your application as well as your team, and no one understands FWD as well as our team. We can collaborate to define the scope of a POC properly. Golden Code Development will assess the application code and identify any important feature gaps, which will inform your team in their selection of the application code for a POC. Working together, we can transform a subset of your application to address your concerns, helping you make the best decision about your application's future. Since the scope of a POC and the level of Golden Code Development's involvement is largely within the control of the customer, pricing for POC work normally is on an hourly, best efforts basis.
Manage or assist application modernization or refactoring efforts.
Golden Code Development provides consulting and implementation services in support of modernization and refactoring projects, enabled by the FWD technology. For example, we can help you identify and remove dead code in your application using the call graph features of FWD. We can extend FWD with custom conversion logic to deal with issues specific to your application, such as replacing an interface to a third party library or to operating system APIs with custom written Java code; replacing arbitrarily complex idioms/patterns used throughout your code base with something more modern or efficient; replacing an application's security model with a more robust one; expanding an obsolete, cryptic naming convention with a more descriptive and maintainable one. Our involvement can range from providing focused assistance in specific areas, to a turnkey conversion and migration engagement. Depending on a client's preference and the scope of our involvement, refactoring and modernization services can be provided on either an hourly, best efforts basis, or as part of a more comprehensive, fixed price engagement.
Automated Migration
Fully convert an application to Java and migrate all of its data.
Golden Code Development can help you use FWD to fully automate the conversion of your application from Progress to Java, and the migration of your data from a Progress database to a relational database management system. This offering represents a combination of many of the other services described here, with the ultimate goal of a Big Bang conversion to an entirely new technology stack. Our involvement can range from providing focused assistance in specific areas, to a turnkey source code conversion and data migration service. Depending on a client's preference and the scope of our involvement, migration services can be provided on either an hourly, best efforts basis, or as a comprehensive, fixed price engagement.
Technology Enhancement
Fill feature gaps or make custom modifications to the FWD technology.
The assessment phase of a conversion project can identify gaps in FWD's support of ABL features which must be addressed for a project to be successful. A customer might desire (or even contribute) specific enhancements to the FWD technology to improve the conversion or runtime behavior for their application. Customers can hire Golden Code Development to evaluate and make such changes to the core FWD technology, and to push these into the main code trunk. Generally, existing feature gaps are addressed this way. Custom enhancements are evaluated on a case by case basis to determine the best course of action: they normally are included in the main trunk if they (1) do not break the contract of compatibility with the legacy environment; and (2) are deemed (and possibly determined through testing) to be beneficial or neutral to other users. If either of these requirements are not met, a custom FWD build line or a change to the original application may be better options to manage such issues. Pricing for FWD Project Enhancements depends upon the nature and scope of the requested changes.
Assistance with any aspect of the FWD technology.
The FWD technology is incredibly powerful, but by necessity it is complex. For clients who prefer to take the lead with their transformation project, but need assistance along the way, Golden Code Development offers hourly consulting. This might include planning, analysis, project implementation, prototyping, debugging, advice or even help in automating testing.
Test Automation
Provide tools and assistance realizing an automated test strategy.
Automated testing represents a worthwhile investment in its own right, but it becomes particularly important in a conversion project, to verify the converted application faithfully replicates the function of the original. Golden Code Development has tools and experience for terminal application testing, which are unique in the market. We plan to extend these tools with GUI support, database comparison analysis and other features. Assistance is available on an hourly basis to help customers plan and implement an automated testing strategy.
Prepare your team to support and maintain a converted application.
Although a converted application behaves identically to the original, it runs on a technology stack which is entirely different from the original. A client's team will carry its application domain expertise forward, but will need to know how to support, maintain, configure, and run the new incarnation of the application, as well as the supporting technologies upon which it relies. Golden Code Development offers on-site, classroom style training and materials to get a client's team quickly up to speed on the new environment.
Defect Support
Service Level Agreements available.
Customers who require a dedicated level of defect support can establish a defect support agreement with Golden Code Development. These agreements may define service levels to ensure a client can support its converted application's user base appropriately.
Custom Build Lines
Enhanced defect support tailored to your development cycle.
Golden Code Development offers the option to maintain a custom FWD build line for a client. This represents an enhanced level of defect support for clients whose application release cycles are slower than FWD's, and who require select fixes to be integrated without a full FWD version upgrade. Fixes made available for newer FWD revisions can be selectively backported, until the customer has the opportunity periodically to synchronize to a later FWD version. The custom build line would then be maintained from that point forward.
Integrated Regression Test
We proactively run your regression testing suite.
This offering represents an enhanced level of defect support, designed to reduce regression risk for a client. Golden Code Development periodically runs a customer's automated regression test suite to proactively detect and fix regressions. The intent is to reduce the risk of a regression which affects the customer's application from making into the main code base.
We help deploy your converted application.
Java applications enjoy a substantial advantage in deployment over the legacy Progress 4GL equivalent. By using FWD to migrate to Java, your 4GL application can be delivered very easily in any modern cloud or on premise. A full range of implementation techniques is available including a traditional "bare metal" installation, virtual machines or by using container technology such as Docker. FWD includes standard Docker images which can be built into custom deployments for your converted applications. These same Java technologies are easily deployed and managed using popular DevOps tool sets such as Ansible. Golden Code consultants can assist with your DevOps requirements, from providing guidance on approaches, to the implementation of fully automated container or virtual machine deployments. With decades of experience in automation and systems integration, combined with its deep understanding of FWD, Golden Code Development will help your organization step into a modern DevOps future.