The quest by E&P companies and their service providers to gain a competitive edge through technology is driving a demand for higher standards in engineering software. Time to market is a critical success factor and is often viewed as contradictory to higher standards and other factors such as limited resources and budgets. An optimum approach to engineering software development can successfully satisfy both time-to-market and budgetary requirements while continually raising standards.
This paper will discuss software practices that have proven effective during a full oilfield engineering software application development life cycle. Although the process activities – including specification, design, development, testing and deployment – were conventional, they were sequenced in a non-conventional manner and augmented with techniques such as risk management, use cases analysis, software modeling and configuration management.
The paper presents a case study that illustrates how these practices were used in a sand control engineering software development project to successfully design and remodel an existing horizontal gravel pack spreadsheet application into a standalone desktop application. The new application provides a user-friendly interface to design and analyze gravel transport for solids of varying density in Newtonian fluids. A computation engine was developed as a plug-in component to perform various computations during the gravel packing process. An object-oriented architecture and framework were designed and built to avoid having to rebuild every new application from scratch. The authors will explain how the system was built and extended to incorporate new capabilities and how adopting optimized development practices has enabled reuse of software components in new applications and increased both the standards and cost-effectiveness of engineering software development.