Why we still use Oracle DB

and will continue for the next 10 years

In 2017, I worked for a large conglomerate. When a company grows a certain size, change is never welcomed. “If it ain't broke, don't fix it” is the motto and software is the first victim. That's how you end up with core products still running on COBOL or FORTRAN. Microsoft still offers customized support for machines running Windows 2000 Server. But not in my company.

They decided enough was enough. Let's embrace the future. Let's find what the cool kids are using these days. Let's get new technology like PHP, MySQL, maybe even Angular! It was the most exciting change we had seen in years.

I inherited a small application they wanted to convert right away. It was mainly written in Perl, but the components that plugged into it were as diverse as a rainbow. It called bash scripts in some areas, python in others. Some components were written in C, others in C++. It was as if each developer that worked on the application used whatever tools they were familiar with. It's not like these components did something special that required a different set of features. They made HTTP requests, wrote to files, or called a database function. Nothing fancy. At least, the database was only Oracle DB.

Everyone in the team hated Oracle DB. It was slow, it was hard to optimize, and it was expensive. Our department was shelling upwards of $50,000 a year for a product that nobody liked. Every time there was an issue, it took so much time to fix. Something that would have been much easier to deal with in alternative databases. We decided to start by migrating all our applications to MySQL.

Deus Ex Machina. We migrated everything to MySQL in record time. One of the best things about MySQL is that all its quirks are heavily documented on the web. You can google an obscure unusual behavior and find an answer on page one. We were never happier with the switch. No user ever noticed the change, and new developers would have an easier time getting up to speed.

Our manager sent a request to end our licensing with Oracle, but it was denied. Apparently, our contract had just been renewed for 10 years. And the discounted price of 50k was only valid if we agreed to use Oracle in every new project in our department.

The power of Oracle or the old guards of technology is not in building great software. Their power lies in having great salesmen. Our first option was to pay the full 10 year price, and feel young and excited again. We were using better technology software. But we chose the second option...

We went through the painstaking process of reverting back to Oracle DB. When the last application was migrated back, there was an unspoken agreement that we would never speak of this again.


Rex :

Was there no option to continue using MySQL, keep migrating more things off of Oracle, keep paying 50k for 10 years, then decline to renew after your 10 year contract was up? I'd think you'd end up saving the man-hours of migrating back to Oracle and you'd be in a better position in 10 years to not have to renew the license. All new projects/projects that are being migrated are now managed by Department Y. Eventually Department X has no more projects. Department Y and Department X are staffed by the same people.

Seems it'd be hard to actually enforce the "discounted price of 50k was only valid if we agreed to use Oracle in every new project in our department."

Ibrahim :

It would have been ideal to keep using MySQL. Our mistake was to tell the accounting department about the migration, so there was paper trail.

There is no way for the third party to enforce the contract, however a large company of this caliber makes sure they are legally protected on every front. We once had to go through the process of renaming all internal project code names just because developers thought it was fun to name them after Pokemons.

Let's hear your thoughts

For my eyes only