We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Successfully retrofitting extensibility into established software products

Formal Metadata

Title
Successfully retrofitting extensibility into established software products
Title of Series
Number of Parts
150
Author
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
To be successful in the oil and gas industry, software products must be open and extensible to allow oil companies, who fervently protect their intellectual property from competitors, implement proprietary workflows, integrate their own algorithms, or leverage their home-grown computation engines. However, introducing extensibility to software products that were not built with extensibility in mind typically requires extensive re-engineering. More so, even products that were designed to be modular cannot afford to simply publish their internal APIs as they would trade extensibility for agility, ability to rapidly respond to market needs and consequently lose to competition. API stability is not easy to achieve for rapidly evolving products. It requires forward thinking design decisions and strict usage of API patterns that can evolve without jeopardizing investments in plugin code. Introduced in 2007, the Ocean* software development framework enables seamless integration of a company's specialized applications or intellectual property inside the Petrel* E&P software platform. It allows geoscientists to focus on new workflows to solve oil and gas challenges, and developers to focus on innovation rather than on infrastructure. Ocean was a major contributor to the commercial success of Petrel. Based on this success, Schlumberger decided to build Ocean framework for other commercial software products as well. As these are well established, but rapidly growing, software products, introducing a stable layer of APIs into the ever evolving codebase presents a challenge comparable to replacement of jet engine without landing the aircraft. Jan will present lessons learnt from retrofitting plugin extensibility into existing software products. Namely, this will include the architectural considerations and different plugin models, technology choices, different deployment challenges, assuring API stability and backward compatibility, testing strategy and process best practices for development of high quality evolvable APIs.