I work for an entity with approximately $14 billion in expenditures this fiscal year. Not a Fortune 500
I hear you. I had to build my own Excel spreadsheet tools to pull relevant data when and how I want them because the existing databases (yes, plural) are such patch jobs.
The real beauty is we started our upgrade probably... five years ago (give or take a year and ramp up) and we're only about half way through. Even better it's live and no one can find the source code to finish the remaining portion for the project. All of the people from the beginning of the project retired.
So I get to sit here and decide whether I want to craft new queries or use Perl to massage the UI data into something useful.
Good luck on your project
Note that my comments in no way shape or form is intended to give WotC an excuse on their crockery. I'm of the firm opinion that WotC discarding the DCI and not porting the data to the new architecture is either lazy or a cost cutting measure or both. Neither of which is excusable.
whats so difficult about merging it? couldn't they just have a field that asks for dci number when you create/update an account - that's pretty basic isn't it?
i mean its a minor thing, but it definitely feels like another in the many small missteps that alienate players and disconnect the company further from them, especially veteran players.
It may be a "minor" thing on the surface but underneath the hood, it's possible that the DCI database is horribly complex. When the original database was born, it very likely had a very small number of tables with a limited amount of interaction across them. But I guarantee that as the years went by, the original developers probably left. New developers came in. Time marched on and some pointy haired boss told those later developers to add a new feature or start tracking something else. They probably looked at the code and the table structure, looked at the clock, and said, "screw it, I'll just add a new table with some new keys and call it done." And that's exactly what they did. Added a new feature without ever actually touching the old code or old database. Then someone else came along looked at those tables , query strings and old code with orders to add a new feature. So instead of changing the table which would likely break old code, they added another table, or two, or three then added more code. Then some feature was obsoleted and that table sat disused but never dropped because dropping that table would break code somewhere else.
So twenty years later, you have a database with dozens upon dozens upon dozens of tables, half of which the programmer has no idea what they're for or why they're there with so much legacy code that they just write they're own functions to do their own thing because they have no idea what a similarly named function actually does and they don't have the time to figure it out because the boss said they have to produce the code by Monday 9AM and it's already 2AM. Oh, and don't forget that they have to fix an entire block of code they wrote 3 years ago on a whim because they read all about refactoring in "Code Complete" Chapter 24 but completely ignored all the commenting requirements because they thought they would never forget what they wrote at 2AM.
So yeah, there are times that a simple box that allows a specific entry can be extremely convoluted and far more complex that it seems on the surface.
This is cute, but it is nonsense.
We can still query the database successfully, even through the customer-facing web API. That means WotC can still query its database on the backend. Therefore they can still extract data from it to populate the new architecture with legacy customer data.
(I teach database design and I right now in the private sector I am transferring legacy content to a new database architecture)
You assume all businesses maintain ideal database architecture and content? You also assume that their existing programmers can actually untangle what previous programmers actually did? It must be nice but such ideals do not exist whole hog across all companies. It's something to always strive for, sure. But it's hardly a reality for everyone.
whats so difficult about merging it? couldn't they just have a field that asks for dci number when you create/update an account - that's pretty basic isn't it?
i mean its a minor thing, but it definitely feels like another in the many small missteps that alienate players and disconnect the company further from them, especially veteran players.
It may be a "minor" thing on the surface but underneath the hood, it's possible that the DCI database is horribly complex. When the original database was born, it very likely had a very small number of tables with a limited amount of interaction across them. But I guarantee that as the years went by, the original developers probably left. New developers came in. Time marched on and some pointy haired boss told those later developers to add a new feature or start tracking something else. They probably looked at the code and the table structure, looked at the clock, and said, "screw it, I'll just add a new table with some new keys and call it done." And that's exactly what they did. Added a new feature without ever actually touching the old code or old database. Then someone else came along looked at those tables , query strings and old code with orders to add a new feature. So instead of changing the table which would likely break old code, they added another table, or two, or three then added more code. Then some feature was obsoleted and that table sat disused but never dropped because dropping that table would break code somewhere else.
So twenty years later, you have a database with dozens upon dozens upon dozens of tables, half of which the programmer has no idea what they're for or why they're there with so much legacy code that they just write they're own functions to do their own thing because they have no idea what a similarly named function actually does and they don't have the time to figure it out because the boss said they have to produce the code by Monday 9AM and it's already 2AM. Oh, and don't forget that they have to fix an entire block of code they wrote 3 years ago on a whim because they read all about refactoring in "Code Complete" Chapter 24 but completely ignored all the commenting requirements because they thought they would never forget what they wrote at 2AM.
So yeah, there are times that a simple box that allows a specific entry can be extremely convoluted and far more complex that it seems on the surface.
The real reason why Wizards of the Coast is doing this is because In-Store Play at Local Game Stores (LGSs) are now prohibited due to COVID-19.
Yeah... I'm going to have to call that out as false. Catalyst? Maybe. But the real reason? No.
It was bound to happen. If not now, then sometime in the next few years.
I'm going to agree with some of the other posters, this is a lazy move on WotC's part. To be honest, I was puzzled as to why Arena didn't utilize the DCI for registration when it first came out. Then it hit me while working on my own company database. The DCI database is probably so old and so kludged together that no one at Wizards really understands how it works anymore. How long ago was the DCI number introduced? About 20 years? How many admins worked on it and how many features were added during that time?
So the Arena guys probably came on board and, due to some combination of inexperience and hard headedness, decided to build the Arena player database from scratch. Or it could have been managements plan the entire time. Either way, management probably decided the cost of maintaining or exporting the old database to a new system wasn't worth the cost so they decided to drop the tables.
Changing databases isn't easy or cheap but it is always doable, it's just a matter of how much money anyone wants to throw at it.
Private Mod Note
():
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I hear you. I had to build my own Excel spreadsheet tools to pull relevant data when and how I want them because the existing databases (yes, plural) are such patch jobs.
The real beauty is we started our upgrade probably... five years ago (give or take a year and ramp up) and we're only about half way through. Even better it's live and no one can find the source code to finish the remaining portion for the project. All of the people from the beginning of the project retired.
So I get to sit here and decide whether I want to craft new queries or use Perl to massage the UI data into something useful.
Good luck on your project
Note that my comments in no way shape or form is intended to give WotC an excuse on their crockery. I'm of the firm opinion that WotC discarding the DCI and not porting the data to the new architecture is either lazy or a cost cutting measure or both. Neither of which is excusable.
You assume all businesses maintain ideal database architecture and content? You also assume that their existing programmers can actually untangle what previous programmers actually did? It must be nice but such ideals do not exist whole hog across all companies. It's something to always strive for, sure. But it's hardly a reality for everyone.
It may be a "minor" thing on the surface but underneath the hood, it's possible that the DCI database is horribly complex. When the original database was born, it very likely had a very small number of tables with a limited amount of interaction across them. But I guarantee that as the years went by, the original developers probably left. New developers came in. Time marched on and some pointy haired boss told those later developers to add a new feature or start tracking something else. They probably looked at the code and the table structure, looked at the clock, and said, "screw it, I'll just add a new table with some new keys and call it done." And that's exactly what they did. Added a new feature without ever actually touching the old code or old database. Then someone else came along looked at those tables , query strings and old code with orders to add a new feature. So instead of changing the table which would likely break old code, they added another table, or two, or three then added more code. Then some feature was obsoleted and that table sat disused but never dropped because dropping that table would break code somewhere else.
So twenty years later, you have a database with dozens upon dozens upon dozens of tables, half of which the programmer has no idea what they're for or why they're there with so much legacy code that they just write they're own functions to do their own thing because they have no idea what a similarly named function actually does and they don't have the time to figure it out because the boss said they have to produce the code by Monday 9AM and it's already 2AM. Oh, and don't forget that they have to fix an entire block of code they wrote 3 years ago on a whim because they read all about refactoring in "Code Complete" Chapter 24 but completely ignored all the commenting requirements because they thought they would never forget what they wrote at 2AM.
So yeah, there are times that a simple box that allows a specific entry can be extremely convoluted and far more complex that it seems on the surface.
Yeah... I'm going to have to call that out as false. Catalyst? Maybe. But the real reason? No.
It was bound to happen. If not now, then sometime in the next few years.
I'm going to agree with some of the other posters, this is a lazy move on WotC's part. To be honest, I was puzzled as to why Arena didn't utilize the DCI for registration when it first came out. Then it hit me while working on my own company database. The DCI database is probably so old and so kludged together that no one at Wizards really understands how it works anymore. How long ago was the DCI number introduced? About 20 years? How many admins worked on it and how many features were added during that time?
So the Arena guys probably came on board and, due to some combination of inexperience and hard headedness, decided to build the Arena player database from scratch. Or it could have been managements plan the entire time. Either way, management probably decided the cost of maintaining or exporting the old database to a new system wasn't worth the cost so they decided to drop the tables.
Changing databases isn't easy or cheap but it is always doable, it's just a matter of how much money anyone wants to throw at it.