I'll guess its not a problem of incompetent developers, its more a problem of NC-Soft dosn't give a ❤ ❤ ❤ ❤ about the community or the problems with bugs, as long as F10 works.
It took nearly 1,5 years to fix the "Stuck in Combat" Bug. Well it isnt realy fixed, nut it took Them 1.5 years to vome to the idea "we can let the players use the protals even when they are still in combat". Well this work around could have been published withhin a month after the first complains about the "Stuck in Combat" Bug.
Also NC-Soft doesn't give a ❤ ❤ ❤ ❤ about the friends list. Well it never worked properly but now more and more player have the problem that it doenst work overall. You dont see your friends online cause you have 0/0 friends, your friends doesnt see you online and the game is nearly impossible to play when you have this bug and you are not in a clan.
Some players are affected by this bug over 10and more month, i by myself are affected for now 8 month and support keep telling us "We know about the problem and working on a solution but cant tell when it will be solved"
It might be a problem with the database, a name with an uncommon character, a not correct escaped entry or something like that. At least nothing you cant solve in over 10 month.
A ❤ ❤ ❤ ❤ they do, honestly over 10 month? Not even a small compensation for affected players, nothing then empty promises...
Thats the best example how much NC-Soft cares about their players and that they just give a ❤ ❤ ❤ ❤ about when players leave as long as the cash from trove and rng-boxes keeps flowing.
Anyway, you are possible right that the coders are incompetent when i look at some mechanics.
Example: transfering Items from the your chest (where Login rewards, bought items and Daily Dash items are stored) to your inventory.
Instead of transfering the selected amount they transfer item by item. So when you transfer 30 Items it will be 30 times 1 item. WTF realy?
That means 60 times updating the database, 2 database updates per item, 1 for the chest and 1 for the inventory instead of transfering the selected amount and only need 2 database updates.
And you have to do it this way to keep redundancy so no items get lost when you for example crash during the transfer.
First thing you learn when coding, keep database updates at a minimum, cause they can produce high loads at large databases.
So yeah, when you dont have a high server load, create it by yourself. [/irony]