About the Author:  Efrain Rios is the founder of Fortress Oil & Gas, LLC, a full-stream asset integrity solutions provider for the oil & gas industry.  For the last 20 years he has specialized in risk management, regulatory compliance, operational efficiency improvement and cost reduction strategies for mechanical integrity programs.  This includes the direct management and accountability of the asset integrity technology systems and governing processes for upstream operations spread over 12 countries.  Efrain is a member of NACE International and the API Sub-committee on Inspection and Mechanical Integrity (SCIMI).  He is also the leading expert on software solutions utilizing asset integrity management (AIM) systems and mobile data collection technology.


In “Selecting the Right IDMS,” readers were given an overview of the selection process and a minimum list of key considerations for any new application.  Highlighted within the article was the importance of creating, early in the selection process, a fully inclusive project team to develop a robust list of requirements for the new software.  It was also shown that combining the requirements list with thoughtfully prioritized grading criteria will help ensure the selected application is one that best aligns with the company’s needs.

There are cases, however, where selecting the best application for the company means that the end users will not immediately obtain all desired functionality.  In some instances, users must forgo desirable features to satisfy more valuable requirements of the company. For example, a “Scaffolding Required” checkbox in a CML data entry screen is important but may not be as important to the company as conforming to corporate cybersecurity standards.  It is obviously much easier to have programmers add a checkbox than it is to add complex cybersecurity features. It is also possible that none of the available software options contained a specific piece of functionality and a gap would exist regardless of the selected option. In a more likely scenario, a company’s work processes have evolved and the software that has been in place no longer aligns with the business needs.  In this article, readers will learn what to do when critical functionality is missing and why in-house customization is not always a great option.


As a company evolves, so do its work processes.  The software tools that a company uses must also evolve with the company or they become less useful and risk eventual replacement.  When addressing functionality gaps there are generally only four options, each with its own pros and cons:

  1. Select a New Tool
  2. Build Custom Features In-House
  3. Work Through Software Owners
  4. Work Through Independent 3rd Parties

Selecting a New Tool

As readers saw in part 2 of this series selecting a new software can be quite a daunting task.  Still, many companies choose to go this route. While it can be quite a consuming project, it can certainly provide several benefits.

Probably the biggest benefit to purchasing a new application is that the software is, in fact, new.  Being new gives it an advantage with respect to its longevity in the market. Newer applications typically utilize the latest programming language and provide functionality already conforming to the latest codes and standards.  They will often have modules that are ready for connection to external applications, such as maintenance and financial systems (Maximo, SAP, etc.) and may even take advantage of the latest industry trends in areas such as Risk Management.  Also, by utilizing the latest technology (mobile apps, artificial intelligence, etc.) these new applications can restructure their pricing models and provide more affordable options to potential customers. Monthly subscription fees have become a great way for software companies to lower the financial burden for their customers while continually providing them with the latest software updates.

However, the downside to the subscription model is that customers never really own the software.  Instead, they are perpetually renting it. Another challenge, and perhaps the largest that users face when changing their IDMS, is implementing the new one.  This can be a prohibitive obstacle when one considers the availability of personnel, funding, and data, in addition to competing priorities. Moving the data from legacy software to new software through mapping and migration exercises is often complex and labor intensive.  The process can be expedited by utilizing certain ETL (Extract, Transform, Load) tools, but this should only be done by specialized personnel as there is an increased potential to lose or corrupt valuable data if not performed properly. As you will see in Part 5 of this series “The Implementation Hurdle,” a new software application is not always the best option.

Building Custom Features In-House

Frequently, when faced with a list of gaps, companies opt to create a solution themselves.  The benefit is that they are in complete control. They will get exactly what they want, when they want it, for free.

However, in reality, the solution is not free.  It is created using internal resources, so the cost is just not immediately visible.  The maintenance costs are hidden from plain view in a similar manner.  Compounding this issue is the fact that customized solutions often require a high degree of maintenance and upkeep due to the potential for changes to have unintended consequences.  It is not uncommon for a single day of programming a particular custom feature to create over a week of impact testing.

Working Through Software Owners

In some cases, it is better to work through the company who owns the software to develop the missing features.  This can sometimes be arranged at no additional cost to the users.  The new feature will not typically have any issues integrating with other portions of the application as it was created by the same development team.

The drawback to this route is that the users do not own the functionality and programmers may need to develop new features in a way that works well with other pre-existing features, including those requested by other companies.  Their goal is to provide the functionality requested by everyone while preventing programming conflicts.  This will often lead to enhancements that are not always intuitive and easy to use.   The users requesting a new feature also do not control the pace of its development, testing, and release.  To obtain the new feature without incurring additional cost, users will likely have to wait for predetermined release dates.  Without controlling the budget, personnel, development roadmap, and schedule, users will often have to wait longer than desired.

The most effective way to work through the IDMS owner for new features is to assign a single point of accountability (SPA) who is responsible for coordinating with the software company.  This person must actively participate in Users Group meetings and conferences to help influence annual development plans and ensure the software’s ongoing alignment with his or her team’s evolving business needs.

Working Through Independent 3rd Parties

There are several well-known cases of software companies responding too slowly to the changing needs of their customers.  Their failure to adjust and continually meet customers’ needs has given rise to independent 3rd party companies stepping in to fill the void.  This is beneficial for users because a software-independent company has no allegiance to any specific application on the market and therefore will not try and sell their proprietary solution, which is usually another software application.  They can typically act very swiftly with competitive pricing to meet the needs. Using an independent 3rd party is often the best option as it effectively becomes a hybrid solution, providing the desirable customization of an in-house development project with the hands-free maintenance usually associated with development projects completed by the software owners.  The only real drawback to this option is that there are a few more administrative hurdles and there is now an additional relationship to manage.  One good example is using a 3rd party to implement mobile data collection technology in the case where the IDMS company does not have that capability.  In many cases, the 3rd party already has a solution available off-the-shelf which would help users bypass the development stage altogether and move directly into implementing a working solution.


There are obvious benefits and drawbacks to each of these options, and they should be carefully considered prior to deciding which route is best.  As you will see in part 4 of this series, “The Importance of Standardization,” aligning the software’s functionality with the company’s work processes is a critical first step toward standardizing how a business functions and creating an efficient data management program.

Want To Learn More? Contact Us Today!